Opengl es opengl es 2.0 normal在我看来不太正常

Opengl es opengl es 2.0 normal在我看来不太正常,opengl-es,opengl-es-2.0,normals,Opengl Es,Opengl Es 2.0,Normals,我正在尝试学习如何在opengl 2.0中进行照明。 我有一个立方体,它位于(0,0,0)上,相机位于(0,0,20)上。 在顶点处,我手动添加了所有必要的信息 当我到达法线时,我只是从相机透视的角度看立方体, 建议正面法线为(0,0,-1),背面法线为(0,0,1)。 此外,右侧面为(1,0,0)、左侧面为(-1,0,0)、顶部面为-(0,1,0)、底部面为-(0,-1,0) 现在,问题是,如果我切换前法线和后法线,它就会工作。 但我就是不明白。。与我用于所有其他法线的逻辑相同(按原样工作)

我正在尝试学习如何在opengl 2.0中进行照明。 我有一个立方体,它位于(0,0,0)上,相机位于(0,0,20)上。 在顶点处,我手动添加了所有必要的信息 当我到达法线时,我只是从相机透视的角度看立方体, 建议正面法线为(0,0,-1),背面法线为(0,0,1)。 此外,右侧面为(1,0,0)、左侧面为(-1,0,0)、顶部面为-(0,1,0)、底部面为-(0,-1,0)

现在,问题是,如果我切换前法线和后法线,它就会工作。 但我就是不明白。。与我用于所有其他法线的逻辑相同(按原样工作) 意味着前面应该是(0,0,-1)。。但显然我错了。。我就是不明白你说:

[…]位于(0,0,0)[…]上的立方体相机位于(0,0,20)[…]

正面的法向量必须从立方体指向摄影机。从立方体到摄影机的矢量为(0,0,20)。因此,正面的法向量必须是(0,0,1)


通常,在OpenGL视图空间坐标系中,Z轴指向视图外。视图空间坐标系是坐标系,其中X轴指向右侧,Y轴指向上方。Z轴指向视图外,因为Z轴由X轴和Y轴的叉积给出。

法线不应该是从立方体到相机的方向吗?那么z轴上的负数是多少?它从立方体指向相机。从(0,0,0)到(0,0,20)。请看答案。是的,我想我现在明白了。。谢谢@艾瑞特:你确定你拿到了吗?您的相机不在(0,0,0)和(0,0,-20)位置,但它在(0,0,20)位置。是的,现在看起来很明显。:)