gpt4 book ai didi

android - 为什么 OpenGL-ES 调整大小后的图像看起来像素化?

转载 作者:行者123 更新时间:2023-11-29 16:14:05 25 4
gpt4 key购买 nike

我正在使用 OpenGL ES 为 Android 开发相当简单的 2D 游戏。我希望它能在市场上几乎所有的设备上运行。我面临的问题是,当我映射我使用的纹理时。如果我要映射的图像与其目标对象的大小不同,则图像质量会降低(即使图像的大小大于对象),它也会像素化。我想要非常清晰的图像,接收它们的唯一方法是使用具有相同尺寸的纹理和对象。但在这种情况下,我需要 4,5 个纹理来表示具有不同尺寸的相同图像,以支持足够的屏幕分辨率。我正在使用 PNG 图像和以下 GL 方法:

glClear(GL10.GL_COLOR_BUFFER_BIT);
glEnable(GL10.GL_TEXTURE_2D);
glEnable(GL10.GL_BLEND);
glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
//drawing happens here
glDisable(GL10.GL_BLEND);

我创建这么多图像没有问题,但是游戏的大小会变大。我是不是做错了什么,或者只是 OpenGL 无法像 Photoshop 那样调整图像大小?

最佳答案

您是否尝试过其他采样选项,例如 GL_NEAREST 或 GL_LINEAR? (参见 glTexParameteri)。

我不认为这是 opengl 的错,但是当您显示不是原始分辨率(或它的偶数倍)的纹理时,总会有一些准确性损失(因为图像必须是在非像素边界重新采样)。 GL_LINEAR 可能会以轻微模糊为代价减轻一些像素化外观,这可能会或可能不会被注意到。

关于android - 为什么 OpenGL-ES 调整大小后的图像看起来像素化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10789785/

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