什么可能导致glEnable(GL_LIGHT0)崩溃glDrawElements?
问题描述:
我通过3点阵列的指针的OpenGL与:什么可能导致glEnable(GL_LIGHT0)崩溃glDrawElements?
glColorPointer()
glNormalPointer()
glVertexPointer()
寄托都工作正常,但是当我尝试通过glEnable(GL_LIGHT0),以使光;
glDrawElements刚刚坠毁,我认为正常有问题吗?我的正常来源于此文件:
1.000000 1.000000 -1.000000 0.000000 0.000000 -1.000000
1.000000 -1.000000 -1.000000 0.000000 0.000000 -1.000000
-1.000000 -1.000000 -1.000000 0.000000 0.000000 -1.000000
1.000000 0.999999 1.000000 -0.000000 0.000000 1.000000
-1.000000 1.000000 1.000000 -0.000000 0.000000 1.000000
-1.000000 -1.000000 1.000000 -0.000000 0.000000 1.000000
1.000000 1.000000 -1.000000 1.000000 -0.000001 -0.000000
1.000000 0.999999 1.000000 1.000000 -0.000001 -0.000000
0.999999 -1.000001 1.000000 1.000000 -0.000001 -0.000000
1.000000 -1.000000 -1.000000 -0.000000 -1.000000 -0.000000
0.999999 -1.000001 1.000000 -0.000000 -1.000000 -0.000000
-1.000000 -1.000000 1.000000 -0.000000 -1.000000 -0.000000
-1.000000 -1.000000 -1.000000 -1.000000 0.000000 -0.000000
-1.000000 -1.000000 1.000000 -1.000000 0.000000 -0.000000
-1.000000 1.000000 1.000000 -1.000000 0.000000 -0.000000
1.000000 0.999999 1.000000 0.000000 1.000000 0.000000
1.000000 1.000000 -1.000000 0.000000 1.000000 0.000000
-1.000000 1.000000 -1.000000 0.000000 1.000000 0.000000
-1.000000 1.000000 -1.000000 0.000000 0.000000 -1.000000
0.999999 -1.000001 1.000000 -0.000000 0.000000 1.000000
1.000000 -1.000000 -1.000000 1.000000 0.000000 0.000000
1.000000 1.000000 -1.000000 1.000000 0.000000 0.000000
0.999999 -1.000001 1.000000 1.000000 0.000000 0.000000
-1.000000 -1.000000 -1.000000 -0.000000 -1.000000 0.000000
-1.000000 1.000000 -1.000000 -1.000000 0.000000 -0.000000
-1.000000 1.000000 1.000000 0.000000 1.000000 0.000000
第3顶点的位置,与去年3是正常的,我有疑问:
确实,当我平移或旋转或缩放网格中的正常变动?
什么可能导致glDrawElements崩溃通过启用照明?
3.since我的法线来自文件,它已经正常化我必须调用glEnable(GL_NORMALIZE)?
答
当glDrawElements尝试访问您的内存时,您可能将无效参数传递给glNormalPointer,导致访问冲突。当启用照明时,旧的固定功能每顶点照明代码仅使用法线。
关于你的其他问题: 你必须在旋转网格时旋转法线。翻译和缩放不会影响法线。这是通过固定功能管道(我认为您正在使用)自动完成的,只需在编写自定义顶点着色器或在CPU上旋转网格时手动完成。 glEnable(GL_NORMALIZE)只在缩放网格时需要,否则可以丢弃该函数。
你是什么意思'崩溃'?怎么了? – JasonD