Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenGL照明与摄像机_C++_Opengl_Camera_Glut_Lighting - Fatal编程技术网

C++ OpenGL照明与摄像机

C++ OpenGL照明与摄像机,c++,opengl,camera,glut,lighting,C++,Opengl,Camera,Glut,Lighting,我是OpenGL新手,在OpenGL中的照明系统方面一直遇到问题。我使用顶点法线,当我渲染一个单位立方体或四面体时,顶点法线的计算似乎很好。当我运行代码来投影四面体{0,0,0,1,0,0,0,0,1,0,0,0,1}时,我得到了这里附带的输出 但是,当我尝试渲染复杂模型时,灯光有点奇怪 我不确定出了什么问题 你能帮忙吗 谢谢大家! 你是如何定义法向量的?你也可以发布你的“drawMesh”功能吗?我怀疑问题就在这里。我在上面添加了drawMesh函数。我使用的是顶点法线,我相信至少在四面体的情

我是OpenGL新手,在OpenGL中的照明系统方面一直遇到问题。我使用顶点法线,当我渲染一个单位立方体或四面体时,顶点法线的计算似乎很好。当我运行代码来投影四面体{0,0,0,1,0,0,0,0,1,0,0,0,1}时,我得到了这里附带的输出

但是,当我尝试渲染复杂模型时,灯光有点奇怪

我不确定出了什么问题

你能帮忙吗


谢谢大家!

你是如何定义法向量的?你也可以发布你的“drawMesh”功能吗?我怀疑问题就在这里。我在上面添加了drawMesh函数。我使用的是顶点法线,我相信至少在四面体的情况下,这是正确计算的。应该在glVertex3f之前调用glNormal3f。但这不是唯一的问题。出于效率考虑,将glBegin/glEnd移到外部For循环之外。是的,我同意Nico Scherlter的观点,带有glVertex3f的线需要与带有GLNORMA3F的线交换,但在计算法线的方式上也可能存在问题。如何初始化m_顶点[]。vnormal_vec[]?