Page 1 sur 1

[resolu] Generer une skybox spatiale en 3D selon ma position.

Publié : 17 Déc 2018 14:40
par FriteCoca
Salut, je cherche à faire un système de skybox dynamique qui change en fonction de ma position dans l'espace ( comme dans la vraie vie quoi, le ciel n'est pas le même sur Alpha Centauri que sur Terre ).

J'aimerais un résultat de ce genre :
Image

Vous pouvez aller dans chaque étoiles que vous voyez, les seuls éléments de skybox classique sont les nébuleuses.

Dans mon script actuel, il est impossible de passer d'une étoile à une autre directement, il y a un chargement entre deux. ( Vous ça de la même manière qu'on fait dans Star Wars ).

L'auteur du jeu explique ça très bien ici : https://www.reddit.com/r/skywanderers/c ... he_skybox/

Donc j'aimerais avoir un peux d'aide, au moins théorique au minimum sur comment faire un script de ce genre pour les skybox en générant des milliers d'étoiles sans perdre de performance.

Merci.

Re: [MY-AL] Generer une skybox spatiale en 3D selon ma position.

Publié : 20 Déc 2018 10:55
par Sebela
Salut FriteCoca !
Du haut de mon humble expérience, je dirais qu'il faut que tu te penches sur du LOD (Level of Detail), c'est à dire qu'une planète qui est à quelques années lumières n'a pas besoin d'afficher 4000 vertex, contrairement à une autre qui est juste devant tes yeux. Tu modifies donc le niveau de détail de tes étoiles selon leur proximité à la caméra.

https://docs.unity3d.com/Manual/class-LODGroup.html

Re: [MY-AL] Generer une skybox spatiale en 3D selon ma position.

Publié : 20 Déc 2018 11:37
par boubouk50
Pas sur de suivre ton idée.
Tu veux une skybox différente pour chaque endroit de la galaxie?
Tu veux la générer automatiquement? Est-ce que cela implique que lorsque tu reviens sur une planète déjà visitée la skybox sera la même ou pas forcément?
Autant les étoiles/planètes/astres peuvent être spatialisés donc être en place et affichés avec des particules (ou autre) autant le "derrière" (espace, nébuleuse, etc), lui moins.

Re: [MY-AL] Generer une skybox spatiale en 3D selon ma position.

Publié : 20 Déc 2018 20:40
par FriteCoca
boubouk50 a écrit :
20 Déc 2018 11:37
Pas sur de suivre ton idée.
Tu veux une skybox différente pour chaque endroit de la galaxie?
Tu veux la générer automatiquement? Est-ce que cela implique que lorsque tu reviens sur une planète déjà visitée la skybox sera la même ou pas forcément?
Autant les étoiles/planètes/astres peuvent être spatialisés donc être en place et affichés avec des particules (ou autre) autant le "derrière" (espace, nébuleuse, etc), lui moins.
Salut, on m'a finalement dis dans un autre endroit que je pouvais faire ça avec des particules Et concernant la galaxie :

Elle est générée aléatoirement,
Il faut une skybox à différentes à chaque endroit de la galaxie et bien sur avoir la même si je reviens.

La j'ai déjà compris comment régler le soucis pour les étoiles mais pour les nébuleuse la ça coince toujours

Re: [MY-AL] Generer une skybox spatiale en 3D selon ma position.

Publié : 21 Déc 2018 16:55
par Alesk
Dans l'idéal, il faudrait être capable de complètement générer ta galaxie de manière procédurale.
Tu pourrais ainsi être capable d'en faire un rendu depuis n'importe quelle position... Mais ça va demander un gros taf ;)

Pour commencer, il faut étudier l'aspect des différentes galaxies répertoriées, et identifier celle que tu veux imiter.
Si par exemple c'est une galaxie spirale, il faut te faire un générateur de galaxie en spirale, qui va positionner les étoiles toujours de la même façon, peu importe combien tu mets d'étoiles.

Ensuite, il faut générer des zones de gaz où tu pourras placer des billboards qui serviront à colorer tout ça...

C'est vraiment une description approximative, mais c'est un point de départ.

Quelques liens utiles :
http://martindevans.me/game-development ... -Galaxies/
https://www.youtube.com/watch?v=kpnWe6luD-o
https://www.youtube.com/playlist?list=P ... yri4WL6zsS

et tu en trouveras plein d'autres sur google avec "procedural galaxy generator"

Re: [MY-AL] Generer une skybox spatiale en 3D selon ma position.

Publié : 21 Déc 2018 17:45
par FriteCoca
Alesk a écrit :
21 Déc 2018 16:55
Dans l'idéal, il faudrait être capable de complètement générer ta galaxie de manière procédurale.
Tu pourrais ainsi être capable d'en faire un rendu depuis n'importe quelle position... Mais ça va demander un gros taf ;)

Pour commencer, il faut étudier l'aspect des différentes galaxies répertoriées, et identifier celle que tu veux imiter.
Si par exemple c'est une galaxie spirale, il faut te faire un générateur de galaxie en spirale, qui va positionner les étoiles toujours de la même façon, peu importe combien tu mets d'étoiles.

Ensuite, il faut générer des zones de gaz où tu pourras placer des billboards qui serviront à colorer tout ça...

C'est vraiment une description approximative, mais c'est un point de départ.

Quelques liens utiles :
http://martindevans.me/game-development ... -Galaxies/
https://www.youtube.com/watch?v=kpnWe6luD-o
https://www.youtube.com/playlist?list=P ... yri4WL6zsS

et tu en trouveras plein d'autres sur google avec "procedural galaxy generator"
Salut, niveau génération de ma galaxie je suis déjà au clair avec ça et c'est déjà fait même.

Puis j'ai finalement déjà trouvé comment faire ma skybox sans perdre trop de performance mais merci quand même pour la playlist ( https://www.youtube.com/playlist?list=P ... yri4WL6zsS ), mon problème est résolu.

Re: [resolu] Generer une skybox spatiale en 3D selon ma position.

Publié : 23 Déc 2018 13:46
par Alesk
Ha ben super !

On peut voir ce que ça donne maintenant ? ça m'intéresse :)

Re: [resolu] Generer une skybox spatiale en 3D selon ma position.

Publié : 31 Jan 2019 22:02
par FrenchMan
Hey ! je suis entrain de faire un système similaire mais je ne trouve pas comment le faire sans générer des mesh avant puis utiliser camera.RenderToCubeMap.

Je génère mes mesh avec un shader et un compute shader en tant que particule comme l'a dit l'auteur mais je trouve que ça fait très bricolage. j'ai donc ce résultat la : Image

Après avoir capturé un rendu de ma scène je met ma cubemap en tant que skybox et je désactive le rendu.

je voudrais donc avoir une petite indication niveau script sur comment rendre les étoiles et changer leurs positions en fonction de la position du joueur directement dans la sykbox