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

左边的那只手是一只精灵,不是地图册上的。右边的手是地图集上的精灵。我要右手看上去和左边的手一样。
我对着色器还不太熟悉,所以我依赖于使用着色器。我使用的是以下阴影锻造布局:

发布于 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,以便他们是标准化的。
min和max值例如,您可以将min添加到每个UV (偏移量),然后除以max - min (比例)。
https://stackoverflow.com/questions/40616595
复制相似问题