c++ - OpenGL - 光值和位置

标签 c++ opengl 3d glut lighting

这就是我声明我的光值及其位置的方式

这是正确的还是有其他更正式的方式?

// Lighting values
GLfloat  greenLight[] = { 0.0f, 0.6f, 0.0f, 1.0f };
GLfloat  redLight[] = { 0.6f, 0.0f, 0.0f, 1.0f };
GLfloat  blueLight[] = { 0.0f, 0.6f, 0.0f, 1.0f };
GLfloat  whiteLight[] = { 0.2f, 0.2f, 0.2f, 1.0f };
GLfloat  sourceLight[] = { 0.9f, 0.9f, 0.9f, 1.0f };


GLfloat  lightPos[] = { 0.0f, 0.0f, 0.0f, 1.0f };
GLfloat  lightPos1[] = { 5.0f, -5.0f, 0.0f, 0.0f };
GLfloat  lightPos2[] = { -5.0f, 5.0f, 0.0f, 0.0f };
GLfloat  lightPos3[] = { 5.0f, 5.0f, 0.0f, 0.0f };

最佳答案

使用固定功能的 OpenGL 确实没有任何其他方法可以做到这一点。设置参数是照明成本的一小部分。如果您想要更高效的东西,我建议您学习未弃用的 OpenGL 并在着色器中实现照明,这可能比固定功能照明更快。

关于c++ - OpenGL - 光值和位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8776500/

相关文章:

c++ - 命名空间 + 函数与类上的静态方法

c++ - 错误 : 'Failed to specialize function template' C2893 'std::invoke'

c++ - 如何使用 OpenGL 渲染到多个纹理?

opengl - 在几何着色器中使用线条邻接

python - 近距离 3D 显示困惑

c++ - 基于函数参数 C++ 创建对象

c++ - 将可变类型包转换为值?

jQuery/CSS 3 动画 - 概念解决方案 - 沿着一条路进入地平线

opengl - libgdx - 用于刷线绘图的 blendFunc? (添加剂/非添加剂混合物)

3d - 多边形索引列表中的相邻多边形