看板 GameDesign 關於我們 聯絡資訊
請問 假設以一個三角形來說 vertex shader 是三角形的三個vertex座標做些變換後再輸出 frament shader 是計算三角形中所有farment的color 是這樣的解讀有錯? 我看書上frament shader 會從vertex shader中 傳入經過模型矩陣變換過的vertex去計算光照 但這樣不就只有用那個頂點的座標去計算? 三角形上其他像素的座標不就沒用到? 那frament shader又是怎麼取得每個frament的座標的? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.129.65 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1468256374.A.D30.html
holymars: rasterization 07/12 01:14
Bencrie: fragment 07/12 01:29
Bencrie: 你在 fragment shader 裡面會拿到已經內插好的座標 07/12 01:30
Bencrie: 早期的 GLSL 是用 varying 宣告要內插的變數 07/12 01:32
Q2N2222: 了解了 感恩 07/12 23:50
kuma660224: frag取得的不是頂點座標,而是插值uv座標 07/14 20:07
kuma660224: 頂點是給triangle setup單位處理。 07/14 20:07
kuma660224: frag得到資料已是每個pixel所屬的uv,法線 07/14 20:08
Q2N2222: uv是指二維? 可是傳入的是三維 vec3 07/15 00:07
cjcat2266: 輸入資料是幾維都不重要,每個分量都會依照座標內差 07/15 00:17
Bencrie: 而且還會幫你弄 perspective division 07/16 17:35
kuma660224: 貼圖UV通常只需要2維。除非反射貼圖。 07/18 17:29
kuma660224: vs輸出資料不等於frag輸入資料。 07/18 17:31
kuma660224: 3維頂點不是給frag,是給TriangleSetup 07/18 17:45
kuma660224: Setup完畢傳給Frag已非3D頂點座標 07/18 17:55
kuma660224: 而是2D螢幕像素,及其著色所需插值資訊 07/18 17:56
Q2N2222: 那frag中要怎麼用2d座標就算光照? 07/18 20:20
riveranb: 1.all vertices: calculate pos,n,color,uv,...(lit) 07/18 21:10
riveranb: 2a. all fragments on 3 edges to calculate info. 07/18 21:11
riveranb: 2b.rasterize: fragments on scanlines inside 3 edges. 07/18 21:12
riveranb: 3c.each fragment get interpolated pos,n,color,uv,... 07/18 21:13
riveranb: 3.in fragment shader, get your final result(color). 07/18 21:14
Bencrie: 不用 2D 座標算 shading 啊,你複製一份 pos 送內插就好 07/19 01:48
kuma660224: float2 uv : TEXCOORD0; 用它與tex2d()抓貼圖顏色。 07/26 20:33
kuma660224: float3 color: COLOR傳送算完Diffuse光照的顏色 07/26 20:33
kuma660224: 頂點光照就兩個乘起來就搞定。 07/26 20:34
kuma660224: 而pixel光照也不需要頂點3D位置。是傳法向量與光向量 07/26 20:35
kuma660224: 它只要知道兩個向量就能算夾角,用角度判斷光的強度 07/26 20:37
kuma660224: Frag不需要知道自己處理得pixel位置在哪裡。 07/26 20:38
kuma660224: Vert(頂點)->TriangleSetup(頂點轉pixel,插值)->Fra 07/26 20:42
kuma660224: g(算顏色) 07/26 20:42
Bencrie: 我竟然沒發現 shading 不需要 pos 這個盲點 XDD 07/28 13:31
kuma660224: frag連自己的螢幕2D座標都不必知道啊XD 08/10 01:40
kuma660224: 只要知道怎摸算顏色就好。 08/10 01:41