首先是多套uv
多套uv可以通过fbx方式导入到ue4中(obj只能一套)
在texcoord中index里面切换,从0开始为第一套uv
ue4当中还支持自定义uv的
这个功能是用来优化效率的,特别带有大量平铺纹理,或者是移动端
在材质主节点上的material里面增加
下面是作用方式
其实和平时的uv操作相差无几(主要不同之处在于自定义uv使用顶点着色器,更快)
主要是把uv变化移动到了自定义节点上
然后调用的时候也是通过和多套uv一样的调用方式进行调用(改变对应的index)
就相当于在自定义uv里进行了一步处理一样,所以如果对同一套uv有分别在自定义uv和上面有两次操作,那么两次操作将会叠加起来
(最上面的0号uv对应下面的,一号对应下面的,因为下面1号uv进行里乘以2倍密度的操作,所以上面实际使用纹理密度也会乘以2)
因为自定义的uv虽然和本身uv功能差不多,但是uv的变换都是在像素上的
自定义uv的变换是在顶点着色器当中作用的,但也是这个特性导致了这种材质不能用在没有lod的高模上
因为顶点过多的模型反而会降低效率
而且uv变换最好是线性的(也就是不会让纹理产生缩放之外的扭曲变化),否则会出现分辨率低 参考官网https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/CustomizedUVs/
uv扭曲的地方会随着模型精度降低而出现畸变(类似锯齿)
实际项目上比较少看到使用,主要用来提高像大量不同平铺纹理的速度
需要运用的时候最好在自定义uv中有大量线性变换操作,否则产生的优化不明显
而且尽量不要用在没有lod的高模(当顶点密度大于屏幕像素密度)上,这样反而会有性能损失
参考网站
https://forums.unrealengine.com/development-discussion/rendering/8290-material-customized-uv-s-input-workflow https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/CustomizedUVs/ https://answers.unrealengine.com/questions/120782/performance-benefits-from-using-customizeduvs.html