更改纹理大小时是不是必须重新映射 UV?

Posted

技术标签:

【中文标题】更改纹理大小时是不是必须重新映射 UV?【英文标题】:Do I have to remap UVs when changing size of texture?更改纹理大小时是否必须重新映射 UV? 【发布时间】:2016-12-28 04:35:38 【问题描述】:

我正在为我的游戏创建低多边形模型(我在搅拌机中创建它们),并且我正在使用调色板(每个像素上具有不同颜色的小纹理),我将 UV 映射到我想要的颜色上。问题是我想将来在调色板中添加更多模型和更多颜色。如果我在纹理底部再添加一行颜色,这将如何工作? UV 会被拉伸还是留在同一个地方(如果它们被拉伸,我每次添加新颜色时都必须重新映射 UV)?

有一个我希望它如何工作的示例(箭头指向新行):

【问题讨论】:

【参考方案1】:

UV 不是与原点的绝对距离,假设您有 256x256 的纹理和 4 张图片,UV 贴图不是 0、64、128、192。

UV 是标准化的,首先是 4x4,所以所有值都是 0、0.25、0.5、0.75。因此,如果您添加一行,那将不再正确放置。

您需要 0、0.2、0.4、0.6 和 0.8。

所以是的,您需要重新映射。

如果这些是精灵,Unity 有一个精灵编辑器,这使它变得非常容易。

【讨论】:

感谢您的回答。不幸的是,这些不是精灵:(

以上是关于更改纹理大小时是不是必须重新映射 UV?的主要内容,如果未能解决你的问题,请参考以下文章

使用索引时如何为 UV 添加 vec2 以进行纹理映射

使用 restkit 是不是每次发生变化时都必须重新映射所有内容?

计算机图形学-纹理映射计算重心坐标UV插值双线性插值MipMap

计算机图形学-纹理映射计算重心坐标UV插值双线性插值MipMap

计算机图形学-纹理映射计算重心坐标UV插值双线性插值MipMap

在meshlab中将顶点颜色转换为UV纹理