gpt4 book ai didi

java - 为什么我的 libGDX TextureAtlas 无法正确渲染 spritesheet 纹理?

转载 作者:行者123 更新时间:2023-11-30 02:34:17 26 4
gpt4 key购买 nike

在使用 libGDX 时,我注意到有时我绘制到屏幕上的纹理不会绘制到精确的像素,而是使用不同侧面的其他纹理的边缘的微小部分绘制(例如,这里是头发顶部的单行像素被渲染到玩家脚的下方)。

Working properly Black line below feet

当我将游戏缩放到不同的尺寸时,我只能假设相邻纹理的侧面会出现黑线。

enter image description here

当我尝试从TextureAtlas 文件中渲染文本字段中的字体时,我遇到了同样的问题。

我正在使用最近邻从TextureAtlas加载这些纹理。这是我的 Sprite 表,这些是我的TextureAtlas从 Sprite 表中做出的选择

enter image description here

player.png
size: 64, 128
format: RGBA8888
filter: Nearest,Nearest
repeat: none
player1moveDown
rotate: false
xy: 0, 0
size: 10, 16
orig: 10, 16
offset: 0, 0
index: 1
player1moveDown
rotate: false
xy: 10, 0
size: 10, 16
orig: 10, 16
offset: 0, 0
index: 2
player1moveDown
rotate: false
xy: 20, 0
size: 10, 16
orig: 10, 16
offset: 0, 0
index: 3

对于为什么我的TextureAtlas不能完美地切割图像有任何合乎逻辑的解释吗?

作为后续问题,我可以做些什么来解决这个问题,还是应该在每个纹理周围添加一些透明填充?

编辑:我在 GUI TexturePacker 中找到了该设置。在窗口右侧的“Sprite”下,您可以通过修改“Shape Padding”值来更改每个纹理之间的空间

enter image description here

最佳答案

图集切割完美,但从纹理采样时 float 精度可能会导致此问题。解决方案是在图集中的图像之间放置透明空间。如果您使用TexturePacker,这已经为您完成了。

关于java - 为什么我的 libGDX TextureAtlas 无法正确渲染 spritesheet 纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43506354/

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