2011-01-22 30 views
1

私は太陽の位置とそれがオブジェクトに反映する光をシミュレートするシェーダを作ろうとしています。それが逆であることを除いタイマーは、私はほとんど右の軌道を取得する変数float Time0_Xシェーダの太陽の位置 - glsl

ある

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

:私はタイマーを持って、そして光位置が以下で定義されている太陽の軌道をシミュレートする

何とかちょっと奇妙に見える。誰も私に正しい方法で太陽軌道をシミュレートするヒントを教えてもらえますか?

RenderMonkeyを使用してシェーダを作成しています。

答えて

1

の値が、02*PIラジアン(それぞれ0と180度に相当)の間になるように、数値を拡大してください。元のTimeの値の範囲が0からMAXの場合は、(Time/MAX) * 2PIのようにスケーリングすることができます。

私はspeedが何を指しているのかよく分かりませんが、それはおそらくそれを乗算するべきではありません。 cossinの値は、太陽と原点の間のベクトルのX成分とY成分を表します。したがって、シーンの中心から太陽の距離を掛ける必要があります。通常は一定です。

関連する問題