【问题标题】:gl_Normal not calculating correctlygl_Normal 计算不正确
【发布时间】:2013-02-27 16:53:39
【问题描述】:

当我尝试在我的 GLSL 顶点着色器中使用 gl_Normal 时,它保持 vec3,x 和 y 分量为 0,z 分量为 1.0。是否有一些启用正常计算的openGL语句?我正在尝试完成一个简单的着色程序,我已经将一个模型导入到世界中,但由于某种原因,内置变量 gl_Normal 不起作用。

【问题讨论】:

    标签: java opengl glsl lwjgl


    【解决方案1】:

    您应该使用glNormalPointer(或glNormal)将顶点法线与顶点位置一起传递。

    我建议将您的模型导入 3D 建模工具(如 Blender)中 - 它可以自动为您生成法线向量。然后只需将其保存并使用法线导入您的应用程序。

    【讨论】:

    • 不,它们不是自动计算的。您可以尝试按程序制作它们,但使用 Blender 之类的工具应该会更好,并且可以让您控制结果。您可能还想复制一些顶点和边以在某些地方获得锐利的折痕。创建法线大多是自动化的,但通常需要建模者的监督。
    • 当你拥有它们时,就像我告诉你的那样,使用glNormal3f 一起传递它们。 (您可能需要尽快切换到缓冲区对象 glVertexPointerglNormalPointer 以提高性能)
    • 哇,我真的很困惑。我实际上不知道 glNormal3f 存在。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多