OpenGL:摄像机后面的光源?

问题描述 投票:0回答:1

伙计,怎么可能。但是在我以前的项目中,事实并非如此。而且我不知道如何尝试这种效果。请告诉我真相。

opengl light
1个回答
4
投票

Section 18.050, How can I make my light move or not move and control the light position?

首先,您必须了解灯光位置由OpenGL。

灯光位置由当前顶部的内容当您使用ModelView矩阵堆栈时通过电话指定灯光位置到glLightfv( GL_LIGHTn, GL_POSITION, ... )。如果以后更改ModelView矩阵,例如当视图改变时对于下一帧,灯光位置不会自动由重新转换ModelView的新内容矩阵。如果您要更新灯的位置,您必须再次通过电话指定灯光位置到glLightfv( GL_LIGHTn, GL_POSITION, ... )

...

  • 如何使灯光位置相对于我的眼睛保持固定位置?我如何制作头灯?

您需要指定眼睛的光线协调空间。为此,请设置以ModelView矩阵为单位,然后指定您的灯光位置。使前大灯(看起来像是放在眼睛附近或附近沿着视线闪耀),设置将ModelView设置为标识,将处(或附近)的照明位置原点,然后将方向设置为负Z轴。

当灯的位置固定时相对于眼睛,您不需要重新指定每一个的灯光位置帧。通常,您只需指定一次程序初始化时。

© www.soinside.com 2019 - 2024. All rights reserved.