找回密码
 立即注册
查看: 353|回复: 1

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

[复制链接]
发表于 2021-12-6 20:19 | 显示全部楼层 |阅读模式
看起来像是因为计算texUV时丢弃了y轴(看你的shader写法,也有可能是z轴)的变化,导致边缘处的纹理坐标都一样。
取巧的办法是可以试着旋转你的Decal的碰撞Mesh,形成一定角度,就可以暂时解决这个问题。
正式处理的话,可以取屏幕法线(Forward用DepthNormalTexture,记得设置Camera的depthTextureMode,Deferred可以直接去GBuffer里取)计算片元表面的法线,处理下这种与y轴夹角小于阈值的情况,推荐直接clip。这种做法的缺点是使用Forward RenderingPath的时候有额外开销,而且离Camera较远时可能会出现精度问题。
发表于 2021-12-6 20:29 | 显示全部楼层
看起来像是因为计算texUV时丢弃了y轴(看你的shader写法,也有可能是z轴)的变化,导致边缘处的纹理坐标都一样。
取巧的办法是可以试着旋转你的Decal的碰撞Mesh,形成一定角度,就可以暂时解决这个问题。
正式处理的话,可以取屏幕法线(Forward用DepthNormalTexture,记得设置Camera的depthTextureMode,Deferred可以直接去GBuffer里取)计算片元表面的法线,处理下这种与y轴夹角小于阈值的情况,推荐直接clip。这种做法的缺点是使用Forward RenderingPath的时候有额外开销,而且离Camera较远时可能会出现精度问题。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-29 02:38 , Processed in 0.142747 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表