unity3d - Texture2D 大小限制是区域相关还是尺寸相关?
问题描述
我正在创建一个图像数据库,其中包含许多将用作 Sprite 纹理的小 (~150 x 150) 图像。目前,我将地图集图像创建为长条。(n W x H,其中 n = 图像数量,W 是每个图像的宽度,H 是每个图像的高度)。我读到有大小限制,例如 Texture2D 的 4k x 4k。我知道大多数纹理是方形的或几乎是方形的。在这种情况下,我最终可以得到 64k x 100 的图像。约 6M 像素按面积小于 4k x 4K 图像的 16M,但一维肯定大于 4k。
所以我想知道的是:
Texture2D 大小限制是区域相关还是尺寸相关?
解决方案
它的大小基于
即字面上是4k 像素宽和 4k 像素高(或者更确切地说,是 4096 像素)。
2 次幂纹理比非 2 次幂纹理更容易压缩,同时 mip-map 缩放(仅适用于 2 次幂)和其他使它们更适合 GPU 流和存储的功能。
重写你的算法来处理你的图集应该不会太难。从 1D 到 2D 数组索引转换是一个非常常见的程序员面试问题,您应该能够在大约 5 分钟内在纸上解决它(或者在 45 秒内谷歌它;)。
推荐阅读
- javascript - 如何在 React Native 中有条件地渲染屏幕但将其放置在堆栈上?
- r - 当列高于 R 中的阈值时删除重复的行
- node.js - 如何从 API 的请求正文中获取 Terraform 变量输入
- php - 由于用户未通过身份验证,Laravel 无法验证电子邮件
- python - 有没有办法从 Python 中嵌套 try 块中的链式 raise 中获取原始堆栈跟踪?
- python-3.x - panda 中的新列,基于值的再增量
- python - 形状未知的 Keras 自定义层权重
- python - Meson 安装基于 GObject 的库的 GObject 自省绑定
- c++ - 如何将 TEMPLATE_TEST_CASE 与类型对一起使用?
- python - 托管到 IIS 后出现类型错误:此 COM 对象无法自动执行 makepy 过程 - 请为此对象手动运行 makepy