我对 OpenGL 有一个非常令人不安的问题。
我的作业是用人和剑和其他一些物体创建场景,放一个点光源是那个家伙的每个“手掌”(右边是绿色,左边是红色),并有一个定向光源作为太阳.
这是我的程序的两个版本的 zip:http ://www.woofiles.com/dl-245221-OdPUtOaW-Release.zip
(不幸的是,名字是匈牙利语,“szép_de_rossz_oldalon_a_fény”的意思是“不错,但灯在对面”,“fény_jó_oldalon_de_ronda”的意思是“灯在右侧,但很丑”。)
我的问题是灯光的效果出现在我的镶嵌参数曲面的另一侧。
一个合乎逻辑的解释是表面法线是不正确的,但是将它们乘以 -1 会得到一个更奇怪的结果。法线向量插值似乎被破坏了,剩下的是一个光线不好的粗糙表面。所有这一切都是通过颠倒常态来实现的。我确信三角形朝向正确的方向,矢量算术完美无缺,并且一切都放置在它应该在的场景中(可以看到剑是绿色的,但其他表面的那一侧是红色的)。