1
我有一个小问题,当我有一个纹理,并且我想用opengl在我的屏幕上渲染它时,即使纹理具有与屏幕相同的尺寸,纹理也会呈现为较小的问题。用于呈现纹理筛选我使用以下着色器:纹理不适合在屏幕上
顶点着色器:
#version 120
attribute vec2 point;
varying vec2 fr_point;
void main(void) {
gl_Position = vec4(point, 0.0, 1.0);
fr_point = point;
}
片段着色器:
#version 120
varying vec2 fr_point;
uniform sampler2D texture;
void main(void) {
gl_FragColor = texture2D(texture, fr_point);
};
的顶点属性四是在-1和1的范围内的四
我的渲染功能
glClearColor(1.0, 1.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(p);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glUniform1i(uni_texture, 0);
glEnableVertexAttribArray(att_point);
GLfloat triangle_vertices[] = {
-1., -1.,
-1., 1.,
1., -1,
1., 1,
-1., 1.,
1., -1.
};
glVertexAttribPointer(
att_point,
2,
GL_FLOAT,
GL_FALSE,
0,
triangle_vertices
);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(att_point);
glutSwapBuffers();
为什么纹理总是呈现如此之小,即使纹理较高或具有相同的大小?
如果你找到了解决方案,或者写出答案并接受你的答案,请接受答案,SO就是这样。谢谢! –