首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图集UV地图与地方UV地图

地图集UV地图与地方UV地图
EN

Stack Overflow用户
提问于 2016-11-15 17:56:58
回答 1查看 3.1K关注 0票数 2

我想用UV坐标在我的精灵上发光,但问题是,如果精灵起源于由联合的雪碧封隔器创建的地图集,那么UV不是从0到1,而是从和从两个任意值。如何规范居住在地图集中的单个精灵的紫外线数据?我是否需要将更多的信息解析到着色器中,或者我是否已经具备了完成此过程所需的信息?下面的图片描述了情况:

左边的那只手是一只精灵,不是地图册上的。右边的手是地图集上的精灵。我要右手看上去和左边的手一样。

我对着色器还不太熟悉,所以我依赖于使用着色器。我使用的是以下阴影锻造布局:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 19:38:36

您可能已经知道这一点,但根本的问题是您的"UV协和“节点的输出。在您的着色器的其他节点期待归一化的UV从0到1,但这不是你得到的时候,你使用纹理地图集。

我可以想出两种方法来解决这个问题。它们都是可行的,所以我建议您尝试哪一个更适合您的工作流程。

添加第二个UV通道

很容易将UV0作为唯一的UV通道,但是对于某些技术,向每个顶点添加多个UV共弦是很有帮助的。

例如,光映射是一个流行的特性,每个模型都有自己的纹理(漫射/正常/等等),但是每个场景都有一个预先烘焙过的lightmap纹理,在多个模型之间共享--有点像一个照明信息地图集。这些UV1将不匹配,因此lightmap UV1存储在第二个通道(UV1)上。

以类似的方式,您可以将UV0用于地图UVs,UV1用于本地UV1。这为您提供了[0,1]范围上的干净输入,您可以使用它来实现乘法效果。

添加材料仿射

您可以比例尺和偏移量的UV,以便他们是标准化的。

  1. 在呈现之前,为网格的UV弦找到minmax
  2. 将这些值作为材料参数传入
  3. 将着色器节点添加到缩放和偏移输入UV,从而使范围标准化。

例如,您可以将min添加到每个UV (偏移量),然后除以max - min (比例)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40616595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档