着色器太阳位置-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分量,因此应乘以太阳到场景中心的距离,该距离通常为常数