定义光坐标

Zac*_*ght 5 opengl graphics light

我几天前参加了一个计算机图形学考试,这个考试有额外的学分问题如下:

可以用两种方式之一定义灯.它可以在世界坐标(例如路灯)中或在观察者(眼睛坐标)中定义,例如由矿工佩戴的前照灯.无论哪种情况,观点都可以自由改变.描述在这两种情况下如何改变光线的方式.

因为直到春假之后我都不会看到这个结果,我想我会在这里问.

似乎所使用的类比具有误导性 - 您是否可以在眼球坐标中定义位于世界坐标中的观察者眼睛处的光源?我一直在研究OpenGL如何处理光线,似乎它总是使用眼睛坐标 - ModelView矩阵将应用于世界坐标中的任何光线.

在这种情况下,答案可能只是你必须使用类似ModelView矩阵的方法将世界坐标中定义的光转换为眼睛坐标,而眼睛坐标中定义的光只需要通过投影矩阵进行变换.

然后,我可能完全在思考(或者过度思考).

我的另一个想法是,它决定了渲染阴影的方式,但这更多地与光的位置及其类型(点,方向,发射等)相比,而不是它所代表的坐标.

有任何想法吗?

Tho*_*mas 5

光的位置由模型视图矩阵转换,该矩阵在定义光源时处于活动状态.

如果模型视图矩阵在该点处是标识,则您将获得眼睛坐标中的光.

如果模型视图矩阵与您的相机矩阵相反,您将获得世界空间中的光.


Chr*_*her 3

对于路灯来说,当视点移动时,世界坐标将保持不变。

对于头灯,当视点移动时,眼睛坐标将保持不变。