目录
二、URP中用C#实现截屏与RenderTexture转Texture2D
前言
——还是最近在做的个性化卡渲碰到的问题之一。
——为了实现像是各向异性高光、非对称纹理等对UV展开的方式有要求效果,先前做的模型的UV需要重新展。但问题在于,对应旧UV的贴图在之前已经画好了,而且算上一些属性遮罩,每个模型还不止一张贴图,改UV的展开方式就意味着这些贴图全部需要重新画。
——这显然不是我这样的懒狗希望看到的。请教了一些做模型的朋友,再加上自己搜了些资料,发现MAYA、MAX等软件里好像有相关的功能,于是拿自己比较擅长的MAYA试了试,例如下面的UV编辑器窗口下的修改->扭曲图像功能。
——结果却是下面这种shit一样的效果。颜色莫名变花不说,上面还一个格子一个格子的(原图的像素边缘?),总之根本用不了。
——做模型的朋友说可以用max的渲染功能来搞,但看完对方繁琐的流程演示后我也是直接原地放弃。而且除了操作和质量问题外,好像也不能批量处理。
——果然,还是要自己动手丰衣足食,敲代码走起!
一、Shader实现模型按UV展平
——本文采用的解决方法十分简单粗暴。不用考虑UV之间的数学空间转换关系,也不用考虑什么转换后的像素线性插值之类的问题,而是直接利用shader将模型的UV当作顶点坐标(的XY分量)来进行显示,即下面顶点shader中的关键代码。
o.posCS = TransformObject