franciscochonge 发表于 2021-12-6 20:19

Unity 如何解决贴纸边缘拉伸的问题?

看起来像是因为计算texUV时丢弃了y轴(看你的shader写法,也有可能是z轴)的变化,导致边缘处的纹理坐标都一样。
取巧的办法是可以试着旋转你的Decal的碰撞Mesh,形成一定角度,就可以暂时解决这个问题。
正式处理的话,可以取屏幕法线(Forward用DepthNormalTexture,记得设置Camera的depthTextureMode,Deferred可以直接去GBuffer里取)计算片元表面的法线,处理下这种与y轴夹角小于阈值的情况,推荐直接clip。这种做法的缺点是使用Forward RenderingPath的时候有额外开销,而且离Camera较远时可能会出现精度问题。

RedZero9 发表于 2021-12-6 20:29

看起来像是因为计算texUV时丢弃了y轴(看你的shader写法,也有可能是z轴)的变化,导致边缘处的纹理坐标都一样。
取巧的办法是可以试着旋转你的Decal的碰撞Mesh,形成一定角度,就可以暂时解决这个问题。
正式处理的话,可以取屏幕法线(Forward用DepthNormalTexture,记得设置Camera的depthTextureMode,Deferred可以直接去GBuffer里取)计算片元表面的法线,处理下这种与y轴夹角小于阈值的情况,推荐直接clip。这种做法的缺点是使用Forward RenderingPath的时候有额外开销,而且离Camera较远时可能会出现精度问题。
页: [1]
查看完整版本: Unity 如何解决贴纸边缘拉伸的问题?