我正在尝试创建一个代表高程的 mipmapped 纹理图像。图像必须是 940 x 618。我意识到我的纹理的宽度和高度必须是 2 的幂。截至目前,我已经尝试逐步完成所有的正方形纹理(例如 64 x 64 或 128 x 128,甚至 512 x 512),但图像仍然模糊。知道如何更好地纹理这种尺寸的图像吗?
4 回答
使用 1024x1024 纹理并将图像放在图像的一部分中,即 940x618。然后使用值 940.0/1024.0 和 618.0/1024.0 作为最大纹理坐标,或缩放TEXTURE_MATRIX
. 这将为您的像素进行 1:1 映射。您可能还需要将模型移动半个像素以获得完美拟合,这取决于您的模型设置和视图。
这是我在为 Mac 制作的屏幕保护程序中使用的技术。http://memention.com/void/它抓取屏幕内容并将其用作某些 3D效果的纹理,我真的想要一个像素完美贴合。
As far as I know, modern technologies do not require you to use a power of 2 for your dimensions. Just know however, that if this code is run an older machine, you'll have some problems. How old is your machine?
纹理可能不是 1:1 映射的,并且您有 GL_LINEAR 或 GL_NEAREST 过滤。尝试更高分辨率的纹理、mipmapping 和 1:1 屏幕映射。
使用 940x618 大小的纹理(如果这确实是它应用到的表面的大小)并将纹理的缩小/放大设置为使用 GL_LINEAR。这应该会给你你想要的结果。