着色器太阳位置 - glsl

时间:2011-01-22 21:29:38

标签: glsl light

我正在尝试制作一个模拟太阳位置及其在物体中反射的光线的着色器。

为模拟太阳轨迹我有一个计时器,灯光位置由下式定义:

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

计时器是变量float Time0_X

我几乎得到了正确的轨迹,除了那是颠倒的,不知何故看起来有点奇怪。任何人都可以给我一个如何以正确的方式模拟太阳轨迹的提示吗?

我使用RenderMonkey制作着色器。

1 个答案:

答案 0 :(得分:1)

确保缩放Time值,使其位于02*PI弧度之间(分别对应0和180度)。如果您的原始Time值的范围从0到某个数字MAX,则可以执行以下缩放:(Time / MAX) * 2PI

我不确定speed指的是什么,但你很可能不会乘以它。 cossin值表示太阳和原点之间矢量的X和Y分量,因此您应该乘以太阳距场景中心的距离,这通常是常数