在OpenGL 2.1中使用纹理之前,是否需要调用glEnable(GL_纹理)?
在OpenGL 2.1+中,在使用纹理之前是否需要调用在OpenGL 2.1中使用纹理之前,是否需要调用glEnable(GL_纹理)?,opengl,textures,Opengl,Textures,在OpenGL 2.1+中,在使用纹理之前是否需要调用glEnable(GL\u纹理)?如果我们在纹理方面遇到问题,可能是什么原因 更新: 我将OpenGL 2.1用于桌面,我的步骤是: 加载bmp 24位图像(我签入了gDebuger,它显示了我的纹理,所以我确信加载图像的过程没有失败) 在init()procedude中调用几个OpenGL函数: glGenTextures(1, &texture_id); glBindTexture(GL_TEXTURE_2D, texture_i
glEnable(GL\u纹理)
?如果我们在纹理方面遇到问题,可能是什么原因
更新:
我将OpenGL 2.1用于桌面,我的步骤是:
init()
procedude中调用几个OpenGL函数:
glGenTextures(1, &texture_id);
glBindTexture(GL_TEXTURE_2D, texture_id);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image_width, image_height, 0, GL_BGR, GL_UNSIGNED_BYTE, image_data);
uniform sampler2D my_texture;
varying vec2 fragTexCoord;
void main()
{
gl_FragColor = texture2D(my_texture, fragTexCoord);
}
如果在OpenGL 2.1中使用GLSL着色器,那么调用
glEnable(GL_TEXTURE.*)
没有任何意义。在片段着色器中应用纹理
如果您打算继续使用OpenGL 3.x核心配置文件,请记住
glEnable(GL\u纹理)
已被弃用。如果您使用的是着色器,那么我怀疑glEnable(GL\u纹理)
是否有任何作用。你能给我们一个你得到的屏幕截图,或者更详细地描述你的输出问题吗?我想我的一些参数是错误的,我已经清除并重写了所有的纹理代码,现在它工作了!有谁能告诉我这两种方法有什么不同吗。。。在内部格式中
?如果我在internalFormat
中使用了GL\u RGB
,那么我可以访问片段着色器中的alpha元素,如:texture2D(myTexture,texCoord).a
?
attribute vec3 vPos;
attribute vec2 vTexCoord;
uniform mat4 MV;
uniform mat4 Projection;
varying vec2 fragTexCoord;
void main()
{
fragTexCoord = vTexCoord;
gl_Position = Projection * MV * vPos;
}
uniform sampler2D my_texture;
varying vec2 fragTexCoord;
void main()
{
gl_FragColor = texture2D(my_texture, fragTexCoord);
}