gpt4 book ai didi

java - 如何在不模糊图像的情况下制作小纹理比例?喜欢我的世界?

转载 作者:行者123 更新时间:2023-11-29 07:55:05 26 4
gpt4 key购买 nike

我将这些模式用于 OPENGL

    glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, 640, 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_TEXTURE_2D);

我正在使用这段代码来绘制纹理

    texture.bind();

glBegin(GL_QUADS);
glTexCoord2f(0, 0);
glVertex2f(x, y);// Upper Left

glTexCoord2f(1, 0);
glVertex2f(x + width, y); // Upper right

glTexCoord2f(1, 1);
glVertex2f(x + width, y + heigth); // Lower right

glTexCoord2f(0, 1);
glVertex2f(x, y + heigth); // Lower left
glEnd();

它本身的纹理来自 Minecraft,是一个 16x16 的纹理。但是当我将它缩放到 160x160 时,我得到的结果是:

enter image description here

最佳答案

您需要指定 GL_TEXTURE_MIN_FILTERGL_TEXTURE_MAG_FILTER

如果您想让像素看起来与纹理保持一致,您可以执行以下操作。

texture.bind(); // First you bind your texture
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

如果您想让它们变回“模糊”状态,您可以执行以下操作。

texture.bind(); // First you bind your texture
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

请记住,对于多个纹理,您需要像这样单独调用它们。

texture1.bind();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

texture2.bind();
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

关于java - 如何在不模糊图像的情况下制作小纹理比例?喜欢我的世界?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com