c++ - 如何使用顶点法线为 GL_POINTS 启用两侧照明

标签 c++ c opengl legacy

如何在 opengl 中为 GL_POINTS 启用两侧照明? 似乎 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); 仅适用于构面,但不适用于 GL_POINTS

我正在做的是提供启用光照的verticesvertex normals。禁用 GL_LIGHT_MODEL_TWO_SIDE 后,GL_POINTS 根据法线方向点亮。但是我无法为 GL_POINTS 启用双面照明。

这可以使用 OpenGL 遗留功能来完成吗?或者我是否必须通过否定所有法线来渲染两侧?

提前致谢。请不要评论使用 modern OpenGL,因为这不是我问题的答案,而只是一个建议。

最佳答案

How to enable both side lighting for GL_POINTS in opengl?

你不知道。点和线没有边。只有面基元(三角形、四边形等)有边。

因此,如果您希望光照计算在法线朝外或其他情况下反转法线,那么是的,您将不得不渲染几何体两次。

关于c++ - 如何使用顶点法线为 GL_POINTS 启用两侧照明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38028652/

相关文章:

c++ - 在 Microsoft Visual Studio 2010 中添加 .lib 文件

c++ - 有序双向链表搜索

c - OpenGL Sprite 映射不起作用

opengl - glUniform/glVertexAttribPointer 类型必须匹配着色器中声明的类型吗?

c++ - 如何解析成员指针非类型模板参数的组件类型

c++ - 如何使 CMFCPropertyGridProperty 支持 64 位 int?

c++ - 为什么微秒时间戳重复使用(私有(private))gettimeoftheday() 即纪元

c - 如何阻止命令提示符出现在 Win32 C 应用程序中?

c - 尾随零 - C

opengl - glGetAttribLocation 仅在某些时候有效