我正在尝试制作一个模拟太阳位置及其在物体中反射的光线的着色器。
为模拟太阳轨迹我有一个计时器,灯光位置由下式定义:
fvLightPosition.x=-cos(Time)*speed;
fvLightPosition.y=sin(Time)*speed;
fvLightPosition.z=100.0;
计时器是变量float Time0_X
我几乎得到了正确的轨迹,除了那是颠倒的,不知何故看起来有点奇怪。任何人都可以给我一个如何以正确的方式模拟太阳轨迹的提示吗?
我使用RenderMonkey制作着色器。
答案 0 :(得分:1)
确保缩放Time
值,使其位于0
和2*PI
弧度之间(分别对应0和180度)。如果您的原始Time
值的范围从0
到某个数字MAX
,则可以执行以下缩放:(Time / MAX) * 2PI
。
我不确定speed
指的是什么,但你很可能不会乘以它。 cos
和sin
值表示太阳和原点之间矢量的X和Y分量,因此您应该乘以太阳距场景中心的距离,这通常是常数