[请益] Surface Shader Transparency

楼主: planetoid (阿没)   2017-10-09 05:00:29
大家好
最近在尝试写custom surface shader
目前透过surf内的o.Alpha可以调整透明度
这样会让整个一起material一起变透明
但我希望能让个别的vertex有自己的透明度
奇怪的是在vert里面(appdata_full)可以动态调整颜色
但是却调整不了透明度
请问大家有可能做到这种效果吗?
(unity 内建的Legacy Shader/Transparent/Diffuse
就可以利用改变material的color来动态调整透明度)
作者: Ninja5566 (苦味)   2017-10-09 05:38:00
你vertex如果有送vertex color进去应该是没问题吧
作者: cjcat2266 (CJ Cat)   2017-10-09 07:02:00
记得要写alpha blending的blend mode
作者: Ninja5566 (苦味)   2017-10-09 10:38:00
试着surface shader 输出颜色改成alpha值, 看是不是你想要的
楼主: planetoid (阿没)   2017-10-09 14:31:00
我改变appdata_full的color rgb有作用 但第四个channel却没有 不知道是不是少设定了什么blend mode是Blend SrcAlpha OneMinusSrcAlpha
作者: cjcat2266 (CJ Cat)   2017-10-09 15:37:00
有没有 "Queue" = "Transparent" ?
楼主: planetoid (阿没)   2017-10-09 15:44:00
有耶"Queue"="Transparent""RenderType"="Transparent"
作者: cjcat2266 (CJ Cat)   2017-10-09 15:46:00
那就想不太到别的了,原始档贴上来比较清楚Hm..这个人好像有一样的问题 http://bit.ly/2xth6uK这样咧? http://bit.ly/2kzQRSv之前提到的方法是vert + frag shader如果要用surf shader的确有可能要用不同方法毕竟是Unity内建pipeline,有时一般作法不适用Sorry,不该说一般作法,该说全套very+frag作法毕竟Unity建议没必要vert或frag时,使用surf shader
楼主: planetoid (阿没)   2017-10-09 16:34:00
https://codeshare.io/ary18Y72那里lerp _Color跟_Color2再assign给v.color但_Color1跟2的alpha channel却没作用@@反倒是需要用81那里修改其实是想尝试将https://goo.gl/pyZN4k里的particles做fade in/out的效果
作者: chowleft (什么....)   2017-10-10 00:15:00
81行把 IN.color.a 带进去算不行吗?像是 o.Alpha = IN.color.a * c.a;https://i.imgur.com/A9PH9oC.png
楼主: planetoid (阿没)   2017-10-10 01:03:00
喔喔喔喔 大感谢chowleft大大 可以了><
作者: cjcat2266 (CJ Cat)   2017-10-10 03:30:00
喔~原来如此,我以为原po的意思是in.color.a没用

Links booklink

Contact Us: admin [ a t ] ucptt.com