2011-01-22 6 views
1

J'essaie de créer un shader qui simule la position du soleil et la lumière qu'il reflète dans un objet.shader sun position - glsl

Pour simuler la trajectoire du soleil, j'ai une minuterie, et la position lumineuse est définie par:

fvLightPosition.x=-cos(Time)*speed; 
fvLightPosition.y=sin(Time)*speed; 
fvLightPosition.z=100.0; 

La minuterie est une variable float Time0_X

je reçois presque la bonne trajectoire, sauf que c'est à l'envers vers le bas, et en quelque sorte regarder un peu bizarre. Quelqu'un peut-il me donner une astuce pour simuler la trajectoire du soleil de la bonne façon? J'utilise RenderMonkey pour créer le shader. J'utilise RenderMonkey.

Répondre

1

Assurez-vous de mettre à l'échelle votre valeur Time afin qu'elle se situe entre 0 et 2*PI radians (ce qui correspond respectivement à 0 et 180 degrés). Si votre valeur d'origine Time s'étend de 0 à un certain nombre MAX, vous pouvez effectuer la mise à l'échelle comme suit: (Time/MAX) * 2PI.

Je ne suis pas sûr de savoir à quoi fait référence speed, mais vous ne devriez probablement pas multiplier cela par cela. Les valeurs cos et sin représentent les composantes X et Y du vecteur entre le soleil et l'origine, vous devez donc multiplier par la distance du soleil du centre de votre scène, qui est généralement constante.

Questions connexes