着色器太阳位置-glsl

着色器太阳位置-glsl,glsl,light,Glsl,Light,我试图制作一个着色器,模拟太阳的位置和它在对象中反射的光 为了模拟太阳轨迹,我有一个计时器,灯光位置由以下公式定义: fvLightPosition.x=-cos(Time)*speed; fvLightPosition.y=sin(Time)*speed; fvLightPosition.z=100.0; 计时器是一个变量float Time0\u X 我几乎得到了正确的轨迹,除了它是颠倒的,而且看起来有点奇怪。有谁能告诉我如何以正确的方式模拟太阳的轨迹吗 我正在使用RenderMonkey

我试图制作一个着色器,模拟太阳的位置和它在对象中反射的光

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

fvLightPosition.x=-cos(Time)*speed;
fvLightPosition.y=sin(Time)*speed;
fvLightPosition.z=100.0;
计时器是一个变量
float Time0\u X

我几乎得到了正确的轨迹,除了它是颠倒的,而且看起来有点奇怪。有谁能告诉我如何以正确的方式模拟太阳的轨迹吗


我正在使用RenderMonkey创建着色器。

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


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

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

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