Libgdx - 如何加载一个巨大的 spritesheet 使其不呈现黑色?
Libgdx - how to load a huge spritesheet so it doesn't render black?
我在 LibGDX 中编写的手机游戏遇到了性能问题。
假设只有一种分辨率 - 1920x1080
- 仅用于测试。
我有一个 spritesheet 结合了下面这样的图像:
我希望这些粒子在我的徽标周围飞舞,所以我需要它们的大小至少 256px/512px
- 这样在给定的分辨率下它看起来不错。
如果一个帧有那个尺寸,我至少需要 32 个帧才能让它看起来不错,很容易计算出整个 spritesheet 的尺寸:
width: 256 * 8 (columns) = 2048
height: 512 * 4 (rows) = 2048
这是最乐观的想法,因为spritesheet应该更大。
spritesheet 的重量是 ~50kb 所以它真的很好,但尺寸让我遇到麻烦。
昨天我在 LibGDX 的桌面版上测试了所有内容,一切都很好。我在完成菜单后移植游戏到Android,这个spritesheet应该绘制的区域是black.
我在 gamedev 上或这里(不记得了)读到我应该只使用最大尺寸为 od 1024/1024
的图形,因为 LibGdx 在使用 [=44 加载更高的纹理时有一些问题=] 在许多版本上。
我想要完成什么?
我需要找到一个想法如何使它工作并加载纹理。
我已经尝试过使用像素图调整文件大小,但它采用整数作为维度,它降低了质量等...
我知道有人会说,你为什么不创建一个像下面这样带有橙色图形的 'dot' 对象,随机生成这些点并有时更改它们的 alpha?这不是一个选项,因为我需要像 'fog' 这样的其他动画,它不能像点那样容易编程。
也许有办法调整纹理、区域或其他东西的大小(当然使用浮点数来保持纵横比)?
如果有人有什么想法,我应该如何在我的应用程序中使用巨大的 spritesheet,我将不胜感激:)
您的精灵 sheet 长度不应超过 2048*2048。
如果要加载大于2048*2048的spritesheet,则需要逐帧单独加载。
假设,如果您的 sprite sheet 包含 15 个帧,那么您必须有 15 个单独的 png 文件。
我在 LibGDX 中编写的手机游戏遇到了性能问题。
假设只有一种分辨率 - 1920x1080
- 仅用于测试。
我有一个 spritesheet 结合了下面这样的图像:
我希望这些粒子在我的徽标周围飞舞,所以我需要它们的大小至少 256px/512px
- 这样在给定的分辨率下它看起来不错。
如果一个帧有那个尺寸,我至少需要 32 个帧才能让它看起来不错,很容易计算出整个 spritesheet 的尺寸:
width: 256 * 8 (columns) = 2048
height: 512 * 4 (rows) = 2048
这是最乐观的想法,因为spritesheet应该更大。 spritesheet 的重量是 ~50kb 所以它真的很好,但尺寸让我遇到麻烦。
昨天我在 LibGDX 的桌面版上测试了所有内容,一切都很好。我在完成菜单后移植游戏到Android,这个spritesheet应该绘制的区域是black.
我在 gamedev 上或这里(不记得了)读到我应该只使用最大尺寸为 od 1024/1024
的图形,因为 LibGdx 在使用 [=44 加载更高的纹理时有一些问题=] 在许多版本上。
我想要完成什么? 我需要找到一个想法如何使它工作并加载纹理。
我已经尝试过使用像素图调整文件大小,但它采用整数作为维度,它降低了质量等...
我知道有人会说,你为什么不创建一个像下面这样带有橙色图形的 'dot' 对象,随机生成这些点并有时更改它们的 alpha?这不是一个选项,因为我需要像 'fog' 这样的其他动画,它不能像点那样容易编程。
也许有办法调整纹理、区域或其他东西的大小(当然使用浮点数来保持纵横比)?
如果有人有什么想法,我应该如何在我的应用程序中使用巨大的 spritesheet,我将不胜感激:)
您的精灵 sheet 长度不应超过 2048*2048。
如果要加载大于2048*2048的spritesheet,则需要逐帧单独加载。
假设,如果您的 sprite sheet 包含 15 个帧,那么您必须有 15 个单独的 png 文件。