gpt4 book ai didi

c++ - OpenGl 纹理 : wrong Pixels

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:53:36 25 4
gpt4 key购买 nike

我在 OpenGl 中使用纹理时遇到问题(仅 2D)

我想显示一个级别(大小 15x15),每个字段都可以有不同的值/图片。
我有大约 100 种不同的字段类型,根据关卡设计,我必须为每种类型显示不同的图像。
如果我对每个可能的字段(100 个文件)使用单个 tga-Image,一切正常,但现在我将所有图像放在一个文件中,并且根据字段类型,我总是显示与图像不同的部分。

问题:有时图像中的细线不显示 并且在不同的 Sprite 之间,经常有黑色或灰色的线条使整个图形变得丑陋。

有没有办法轻松解决这个问题?
(也许我必须将 tga-image 加载到一个 GLuint 中,然后将其分成 100 个不同的 GLuint?或者是否有改善渲染的设置?或者我是否必须更改 tga-image 文件本身的分辨率?)

这是我的图像文件的一部分,每个元素的分辨率为 220x220 像素 --> 整张图片:2200x2200 像素 Sprite-Images

这就是 OpenGl 输出:
OpenGl-Output

我真的不想拥有成百上千的图像文件。特别是因为加载所有这些文件会消耗大量时间,而且我确信那里有解决方案

编辑:

我正在使用以下设置:

// Specify filtering and edge actions
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);

编辑 2:

现在我将 GL_LINEAR 更改为 GL_NEAREST 并在纹理坐标中添加了半纹素,图像之间不再有线条:)
但我还有另一个问题:
pixel-bug
图像中的小元素(线条)显示不正确。
它应该是这样的:
howitshouldlook

最佳答案

“请记住,OpenGL 在纹素中心对纹理进行采样”

看看这里的答案: OpenGL ES Texture Coordinates Slightly Off

关于c++ - OpenGl 纹理 : wrong Pixels,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118243/

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