[程式] 超新手 shader language 教學文 (三a)

看板GameDesign作者 (meowyih)時間2年前 (2021/09/28 14:24), 2年前編輯推噓5(507)
留言12則, 4人參與, 2年前最新討論串1/1
有人問為什麼 youtube 看的教學都是用拉的, 我前面幾篇都要自己寫 code? 那種拉來拉去的工具叫 Visual Shader Editor, 為了說明 Visual Shader Editor 和 Shader Language 的關係, 我做了個影片, 影片會用 Visual Shader Editor 重寫上面雷射光的 code。 // code 原來大概是長這樣 vec2 uv.y = uv.y - 0.5; vec4 color = vec4(0.9,0.5,0.3,1); float coeff = abs(5.0/(200*uv.y)); fragColor = (coeff,coeff,coeff,1)*color; 影片 https://youtu.be/StYf2IEB70U
影片說明 0:00 - 0:23 建立一個 ColorRect 0:23 - 0:55 改畫面大小和顏色 0:55 - 1:09 打開 Visual Shader Editor 1:09 - 1:40 把 Spatial mode 改成 CanvasItem,並建立 uv input 1:40 - 2:28 取得 uv.y 的值 2:28 - 3:01 uv.y = uv.y - 0.5 (畫面中間) 3:01 - 3:48 coeff = abs( 5.0 / ( 100 * uv.y )) 3:48 - 5:30 COLOR = vec4(coeff, coeff, coeff, 1) * vec4(0.9, 0.3, 1) 以直接畫在一個 2D canvas 的例子, 自己寫 code 比用 visual shader editor 簡單易懂多了。 visual shader editor 用在 3D 物件的著色比較好用。 而且不先學寫 code, 直接學拉來拉去那套, 應該也看不懂吧? 至少我是這樣啦 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.228.97.156 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1632810279.A.754.html

09/28 15:00, 2年前 , 1F
想到之前看到一則twitter就能放下的shader效果
09/28 15:00, 1F

09/28 15:01, 2年前 , 2F
看到這類用少少幾行 (或一二百行) 字, 所能表現出的驚人的畫面的程式, 會讓人有窺伺到世界構成的真理 (大一統理論?) 的感覺。 啊,這裡不是哲學版 XD ※ 編輯: meowyih (61.228.97.156 臺灣), 09/28/2021 15:53:18

09/28 16:32, 2年前 , 3F
不是哲學,而是數學XD
09/28 16:32, 3F

09/28 16:42, 2年前 , 4F
我覺得真正不要拉的理由會是能實作的內容會受限 XD
09/28 16:42, 4F

09/28 16:42, 2年前 , 5F
用拉的可以直接在中間 Debug 視覺成效還是很實用
09/28 16:42, 5F

09/28 16:43, 2年前 , 6F
但是用拉的話通常都不能用到所有 Shader 功能
09/28 16:43, 6F

09/28 16:43, 2年前 , 7F
像 Unity 就是用拉的會做不了 Geometry Shader
09/28 16:43, 7F

09/29 01:52, 2年前 , 8F
Unity也可以用寫的啦,不要亂帶風向
09/29 01:52, 8F

09/29 02:21, 2年前 , 9F
我是說「在 Unity 用拉的」.....
09/29 02:21, 9F

09/29 02:22, 2年前 , 10F
沒必要火氣這麼大直接說亂帶風向吧 Orz
09/29 02:22, 10F

09/29 02:24, 2年前 , 11F
Unity 用拉的,的「Shader Graph」是不支援 Geometry 啊
09/29 02:24, 11F

09/29 03:39, 2年前 , 12F
09/29 03:39, 12F
文章代碼(AID): #1XKhKdTK (GameDesign)