作为一个Sg新手,在学习描边效果时找了很多教程,但是感觉过于繁琐,现在分享一下自己的想法。首先看到的教程思想是设置rendering layer然后渲染这个层是通过卷积来比较alpha从来保证边缘。但是我在跟着这个教程学的时候感觉对新手不是很友好。(手把手带你在URP中实现指定物体的外轮廓描边效果【Unity创作心得#13-1】_哔哩哔哩_bilibili)
我的思路就是很简单的通过offset,通过四个垂直的offset获得一个拓展后的贴图的alpha,然后再用这个减去原贴图的alpha,就可以得到边缘的alpha。通常thick不会太厚,控制在0.005-0.02差不多

获得后四个拓展后的贴图后将他们相加后得到拓展后的alpha图

在获得了拓展后的alpha中一定要一个非常重要的函数就是clamp,将alpha控制在0-1,否则就是没用,然后用拓展后的减去原来的alpha,即可以获得边缘

但是在这一步后并没有结束
1.首先在输出的片元节点上,alpha值必须选择clamp后的,表示显示的整个贴图包含了边缘,否则就是原来的贴图,没有边缘 
2.就是原贴图进行输入时需要将rgb与原贴图的alpha进行mul,否则就会引起没必要的拉伸

3.最后就是直接相加了,自己的颜色想要什么即可以和边缘进行mul,因为我们获得的边缘是拓展的,所以和原贴图在uv上没有任何的重叠,直接相加,就可以得到边缘效果的shader graph了
4万+

被折叠的 条评论
为什么被折叠?



