c++ - OpenGL 模糊 RAW 文件

标签 c++ opengl textures

我正在将一个非常大的背景纹理映射到四边形以用于侧滚。纹理的图形没有任何锯齿,这就是问题所在。

纹理最终变得非常模糊。图像尺寸为 800 x 600。尺寸是否必须为 2 的幂?如果是这样,我是否坚持以 1024 x 1024 制作更大的图像并将多余的部分留在屏幕外?

我在正交模式下做所有事情。下面是纹理在四边形中的应用。

glEnable(GL_COLOR_MATERIAL);
    glEnable(GL_TEXTURE_2D);
    glBindTexture(GL_TEXTURE_2D, *texture); 

    glBegin(GL_QUADS);
        glNormal3f(0.0f, 0.0f, 1.0f);
        glTexCoord2f(0.0f, 1.0f); glVertex3f(pos_x, pos_y, depth);
        glTexCoord2f(1.0f, 1.0f); glVertex3f(pos_x + size_x, pos_y, depth);
        glTexCoord2f(1.0f, 0.0f); glVertex3f(pos_x + size_x, pos_y + size_y, depth);
        glTexCoord2f(0.0f, 0.0f); glVertex3f(pos_x, pos_y + size_y, depth);
    glEnd();

    glDisable(GL_TEXTURE_2D);
    glDisable(GL_COLOR_MATERIAL);

最佳答案

也许您需要在创建纹理时禁用 mipmap 过滤:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

关于c++ - OpenGL 模糊 RAW 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585103/

相关文章:

c++ - 获取 "error LNK2019: unresolved external symbol ... "

c++ - 将基类指针转换为返回子类的 vector

c++ - Qt 和 OpenGL : texture transparency

java - 调用 glTexImage2D 清除数据缓冲区

c++ - 如何在OpenGL中编写自动分配纹理单元的类或函数

java - java中每次在特定时间间隔生成随机数

c++ - 如何将数字转换为整数 vector ?

c++ - 在没有 -DNDEBUG 和 -O3 的情况下编译时,标准库实现不使用断言有什么原因吗?

c++ - 如何为不同的类设置 glfwSetKeyCallback?

c++ - 纹理周围的边框,OpenGL