[請益] Surface Shader Transparency

看板GameDesign (遊戲設計)作者 (阿沒)時間7年前 (2017/10/09 05:00), 編輯推噓8(8020)
留言28則, 4人參與, 7年前最新討論串1/1
大家好 最近在嘗試寫custom surface shader 目前透過surf內的o.Alpha可以調整透明度 這樣會讓整個一起material一起變透明 但我希望能讓個別的vertex有自己的透明度 奇怪的是在vert裡面(appdata_full)可以動態調整顏色 但是卻調整不了透明度 請問大家有可能做到這種效果嗎? (unity 內建的Legacy Shader/Transparent/Diffuse 就可以利用改變material的color來動態調整透明度) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.164.76 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1507496432.A.81C.html

10/09 05:38, 7年前 , 1F
你vertex如果有送vertex color進去應該是沒問題吧
10/09 05:38, 1F

10/09 07:02, 7年前 , 2F
記得要寫alpha blending的blend mode
10/09 07:02, 2F

10/09 10:38, 7年前 , 3F
試著surface shader 輸出顏色改成alpha值, 看是不是
10/09 10:38, 3F

10/09 10:38, 7年前 , 4F
你想要的
10/09 10:38, 4F

10/09 14:31, 7年前 , 5F
我改變appdata_full的color rgb有作用 但第四個channel
10/09 14:31, 5F

10/09 14:33, 7年前 , 6F
卻沒有 不知道是不是少設定了什麼
10/09 14:33, 6F

10/09 14:46, 7年前 , 7F
blend mode是Blend SrcAlpha OneMinusSrcAlpha
10/09 14:46, 7F

10/09 15:37, 7年前 , 8F
有沒有 "Queue" = "Transparent" ?
10/09 15:37, 8F

10/09 15:44, 7年前 , 9F
有耶"Queue"="Transparent""RenderType"="Transparent"
10/09 15:44, 9F

10/09 15:46, 7年前 , 10F
那就想不太到別的了,原始檔貼上來比較清楚
10/09 15:46, 10F

10/09 15:52, 7年前 , 11F
Hm..這個人好像有一樣的問題 http://bit.ly/2xth6uK
10/09 15:52, 11F

10/09 15:54, 7年前 , 12F
10/09 15:54, 12F

10/09 15:55, 7年前 , 13F
之前提到的方法是vert + frag shader
10/09 15:55, 13F

10/09 15:55, 7年前 , 14F
如果要用surf shader的確有可能要用不同方法
10/09 15:55, 14F

10/09 15:56, 7年前 , 15F
畢竟是Unity內建pipeline,有時一般作法不適用
10/09 15:56, 15F

10/09 16:09, 7年前 , 16F
Sorry,不該說一般作法,該說全套very+frag作法
10/09 16:09, 16F

10/09 16:10, 7年前 , 17F
畢竟Unity建議沒必要vert或frag時,使用surf shader
10/09 16:10, 17F

10/09 16:34, 7年前 , 18F

10/09 16:38, 7年前 , 19F
72那裡lerp _Color跟_Color2再assign給v.color
10/09 16:38, 19F

10/09 16:38, 7年前 , 20F
但_Color1跟2的alpha channel卻沒作用@@
10/09 16:38, 20F

10/09 16:39, 7年前 , 21F
反倒是需要用81那裡修改
10/09 16:39, 21F

10/09 16:43, 7年前 , 22F
其實是想嘗試將https://goo.gl/pyZN4k裡的particles做
10/09 16:43, 22F

10/09 16:43, 7年前 , 23F
fade in/out的效果
10/09 16:43, 23F

10/10 00:15, 7年前 , 24F
81行把 IN.color.a 帶進去算不行嗎?
10/10 00:15, 24F

10/10 00:16, 7年前 , 25F
像是 o.Alpha = IN.color.a * c.a;
10/10 00:16, 25F

10/10 00:43, 7年前 , 26F

10/10 01:03, 7年前 , 27F
喔喔喔喔 大感謝chowleft大大 可以了><
10/10 01:03, 27F

10/10 03:30, 7年前 , 28F
喔~原來如此,我以為原po的意思是in.color.a沒用
10/10 03:30, 28F
文章代碼(AID): #1Psf7mWS (GameDesign)
文章代碼(AID): #1Psf7mWS (GameDesign)