我已经用 C++ 和 Python 以及所有收到此消息的计算机编写了 OpenGL 程序
vertex shader(s) linked fragment shader(s) linked
显示一个空白屏幕。所有其他可以看到图形的人都没有来自 glGetProgramInfoLog() 的任何消息 我的笔记本电脑显示该消息并且看不到任何东西。一个具体的例子。我有 Opengl 3.1,我的一个朋友有 3.2,他什么都看不到。他得到了那个信息。这也发生在我的 C++ 程序上。是否需要先验证程序?7 个人中有 3 个人看不到任何东西,他们都收到了该信息。那些可以看到它的人不会从着色器中获得一条消息。
这是我的着色器上的所有内容。
def init_shaders(self):
vert_shader=glCreateShader(GL_VERTEX_SHADER)
frag_shader=glCreateShader(GL_FRAGMENT_SHADER)
vert_text="""
varying vec2 texcoord;
attribute vec3 inputvertex;
uniform float ifintex;
attribute vec2 input_texcoord;
void main() {
texcoord = (gl_MultiTexCoord0.xy*ifintex)+input_texcoord.xy;
vec4 position = vec4(inputvertex,1.0);
gl_Position = gl_ModelViewProjectionMatrix * position;
}
"""
frag_text="""
uniform sampler2D texture_map;
uniform vec4 add_color;
varying vec2 texcoord;
void main(){
gl_FragColor = texture2D(texture_map, texcoord.xy)+add_color;
}
"""
glShaderSource(vert_shader,vert_text)
glShaderSource(frag_shader,frag_text)
glCompileShader(vert_shader)
glCompileShader(frag_shader)
self.Shader=glCreateProgram()
glAttachShader(self.Shader,vert_shader)
glAttachShader(self.Shader,frag_shader)
glLinkProgram(self.Shader)
error=glGetProgramInfoLog(self.Shader)
if error!="":
print error
else:
print "Shaders Compiled"
glUseProgram(self.Shader)
哪里不对了?我认为这只是一个通知,但它的模式太可疑了。