【问题标题】:opengl-es 2.0 normal looks not so normal to meopengl-es 2.0 normal 对我来说看起来不太正常
【发布时间】:2021-02-06 16:18:51
【问题描述】:

我正在尝试学习如何在 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).. 但显然我错了.. 我只是不明白..

【问题讨论】:

    标签: opengl-es opengl-es-2.0 normals


    【解决方案1】:

    你说:

    [...] 一个立方体,它位于 (0,0,0) [...] 相机位于 (0,0,20) [...]

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

    一般来说,在 OpenGL 视图空间坐标系中,Z 轴指向视图之外。视图空间坐标系为Right-handed系统,其中X轴指向右侧,Y轴指向上方。 Z 轴指向视图外,因为 Z 轴由 X 轴和 Y 轴的叉积给出。

    【讨论】:

    • 法线不应该是立方体到相机的方向吗?在 z 轴上这么负..?
    • 它将立方体指向相机。从 (0, 0, 0) 到 (0, 0, 20)。请阅读答案。
    • @arielt 你确定你明白了吗?您的相机不在 (0, 0, 0) 和 (0, 0, -20),但在 (0, 0, 20)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多