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

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
FriteCoca
Messages : 17
Inscription : 16 Mai 2018 13:39

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

Message par FriteCoca » 17 Déc 2018 14:40

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.
Dernière édition par FriteCoca le 21 Déc 2018 17:46, édité 1 fois.

Avatar de l’utilisateur
Sebela
Messages : 141
Inscription : 25 Juin 2014 21:39

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

Message par Sebela » 20 Déc 2018 10:55

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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

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

Message par boubouk50 » 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.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

FriteCoca
Messages : 17
Inscription : 16 Mai 2018 13:39

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

Message par FriteCoca » 20 Déc 2018 20:40

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

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

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

Message par Alesk » 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"

FriteCoca
Messages : 17
Inscription : 16 Mai 2018 13:39

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

Message par FriteCoca » 21 Déc 2018 17:45

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.

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

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

Message par Alesk » 23 Déc 2018 13:46

Ha ben super !

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

FrenchMan
Messages : 1
Inscription : 31 Jan 2019 21:01

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

Message par FrenchMan » 31 Jan 2019 22:02

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

Répondre

Revenir vers « (C#) CSharp »