Skybox - Problème avec l'UV

Questions à propos du scripting Shader.
WoemNightly
Messages : 8
Inscription : 18 Jan 2019 17:08

Skybox - Problème avec l'UV

Message par WoemNightly » 11 Fév 2022 16:34

Bonjour,

Aujourd'hui je viens vers vous parce que je cherche à créer un shader de skybox procédural.
Mon problème est que j'ai de la peine à appréhender l'UV de la skybox et à faire précisément ce que je veux en gardant le tout seamless. Je dois avouer que les maths, et plus précisément la géométrie, ne sont pas mon fort.

J'ai suivis un petit tuto pour projeter correctement mon shader sur une skybox avec les noeuds suivants que j'ai converti en SubGraph :
Image

Mon but final, est d'obtenir une "ligne d'étoile et de gaz" comme celle de la voie lactée comme on peut le voir sur cette image (pas pas nécessairement avec cet angle) :
Image

Donc je cherche à créer un masque que j'appliquerai ensuite sur une génération Voronoi pour mes étoiles/nébuleuse/etc... J'appliquerai également un bruit procédural sur le dégradé pour le rendre moins régulier.
Je n'en suis pas encore là (ça je maitrise plutôt bien déjà).
Cependant, j'aimerais pouvoir faire pivoter cette ligne à mon aise. Mon projet se déroulant dans l'espace, nous sommes amené à naviguer sur différentes orbites en conservant toujours la même rotation relative à l'étoile (pour des soucis de lumière sur la scène (mon projet est une sorte de mélange entre FTL et Starmancer pour ceux qui ocnnaissent) et donc l'inclinaison de cette ligne n'est pas toujours la même (et faire pivoter toute la scène n'est pas une option, nous ne naviguons pas librement autour d'un objet de façon dynamique en utilisant la physique, je ne refais pas KSP lol)

Problème, je n'arrive à faire quelque chose de propre que quand je la fais pivoter à 90° comme ici :
Image

Là c'est seamless, pas de problème.

Mais si je change le degré d'inclinaison :
Image

Et évidemment une fois sur la scène, on obtient le même résultat sur la skybox.
Je comprend qu'il faut déformer mon dégradé pour qu'ils suivent la projection des UVs de la skybox et qu'ainsi il reste seamless. C'est là que je bloque et j'espère donc pouvoir obtenir de l'aide ici.

Je ne sais pas si je m'y prend mal. Si le problème vient carrément de la façon dont je projette les UV, bref je suis un peu perdu.
Quelles sont les opérations et les noeuds que je dois utiliser pour être libre dans le degré d'inclinaison de cette ligne?

Je remercie d'avance ceux qui me donneront des pistes.

ReMix
Messages : 13
Inscription : 26 Oct 2018 15:57

Re: Skybox - Problème avec l'UV

Message par ReMix » 11 Fév 2022 19:30

Le problème c'est que tu essaie de faire une rotation 2D sur des coordonnées non cartésiennes (les UV de ta skybox sont "basiquement" une sphere).

Le plus simple pour créer ton masque serait d'utiliser les coordonnées 3D et non 2D, comme ça la rotation se ferait directement en 3D.

WoemNightly
Messages : 8
Inscription : 18 Jan 2019 17:08

Re: Skybox - Problème avec l'UV

Message par WoemNightly » 12 Fév 2022 03:03

J'ai trouvé comment faire. En fait le plus simple était la solution. Ne pas projeter le dégradé sur l'UV de la skybox, seulement le bruit. Avec ça j'arrive à obtenir un résultat seamless peut importe l'angle du dégradé

Je commence à me rapprocher d'un résultat satisfaisant même si je suis loin d'avoir terminé :
Image

Mais maintenant, je rencontre un autre problème. Lorsque que je bouge la caméra, les étoiles hors de la bande galactique scintillent. Je suppose que ça vient de la résolution (d'ailleurs, on ne les voit même pas sur la miniature de mon screenshot, comme quoi... Cliquez dessus pour l'agrandir et mieux voir), certaines étoiles font surement parfois moins d'un pixel selon l'angle et la position de la caméra et du coup certaines d'entre elles ne s'affichent pas à tous les coups.

J'ai tenté de réduire la densité des cellules du Voronoi mais si je la réduit trop le résultat n'est plus très satisfaisant.
Je ne vois pas trop comment faire pour réglé cela. Une idée?

Répondre

Revenir vers « les Shaders »