我刚刚发现以下最低OpenGL GLSL Vertex Shader无法链接 Intel HD Graphics 卡上的GLSL链接错误"资源错误。" 一旦Vertex Shader源代码包含行gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex;
。同样的Shader在NVIDIA或ATI显卡上进行编译和链接。
有谁知道可能导致 Intel HD Graphics 卡上的链接错误?
Python脚本:
from OpenGL.GLUT import *
from OpenGL.GL import *
from OpenGL.GL import shaders
VERTEX_SHADER_SOURCE = """
#version 110
void main(void)
{
gl_Position = ftransform();
gl_ClipVertex = gl_ModelViewMatrix * gl_Vertex; // Comment this line to link on Intel HD Graphics
gl_FrontColor = vec4(1.0);
}"""
def main():
glutInit(sys.argv)
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH)
glutInitWindowSize(800,600)
glutCreateWindow('IntelHDGraphicsClipPlanes')
glutDisplayFunc(render)
glEnable(GL_CLIP_PLANE0)
VERTEX_SHADER = shaders.compileShader(VERTEX_SHADER_SOURCE, GL_VERTEX_SHADER)
shader = shaders.compileProgram(VERTEX_SHADER)
shaders.glUseProgram(shader)
glutMainLoop()
return
def render():
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
glutSwapBuffers()
return
if __name__ == '__main__': main()
平台: 我在使用英特尔高清显卡的各种平台上遇到这种情况,但我主要在带有Windows 10和英特尔高清显卡4400的Microsoft Surface平板电脑上进行测试。