作者newJoey (newJoey)
看板GameDesign
標題[程式] pixel shader基礎問題
時間Sat Jan 4 20:31:40 2014
看書上pixel shader是在rendering pipeline中rasterization之後的步驟
我也懂rasterization是將頂點資料轉換成像素資料後的處理
也就是把空間立體畫面變成平面像素
書上也有說pixel shader是針對"每一個像素"做運算
但我不大懂這句話
那為何pixel shader內傳輸入的資料
怎麼又會是vertex shader的輸出?
還是是這樣:
假設畫面畫一個三角型
vertex shader算出"三個由頂點"轉換出的"三個像素"座標
pixel shader程式是只是計算像素中"三個像素"
而其它的三角形內的像素
則由"GPU自行內插完成"?
意思是這樣嗎?
還是我的解讀是錯誤的
那正確應該是怎樣?
此外
shader程式在"國內"除了遊戲
還有什麼樣的工作會使用到?
有其它業界有用到我們平常人不知道的嗎?
正在疑惑中...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.167.209
1F:推 NDark:對.你的理解沒有甚麼錯誤. 01/04 20:59
3F:→ azureblaze:verter輸出除了座標之外還可以有UV顏色之類的資訊 01/04 21:37
4F:→ azureblaze:這些gpu會幫你內插好然後當作pixel的輸入 01/04 21:37
5F:推 SoYoungBlues:有些比較大型的動畫公司會有這方面需求 01/04 22:32
6F:→ wangm4a1:錯了 pixel shader並非只算3個像素,而是每個像素。 01/04 22:45
7F:推 littleshan:其實pixel shader並不是計算像素,而是計算sample 01/04 23:37
8F:→ littleshan:用到anti-aliasing時每個像素會有多個sample 01/04 23:38
9F:→ newJoey:所以是指GPU可以算出"內差剛好在平面座標內的vertex數值"? 01/05 00:39
10F:→ newJoey:再帶入pixel shader內當參數? 01/05 00:39
12F:推 Bencrie:以舊版的 GLSL 來說就是 varying 宣告的變數 01/05 09:34
13F:推 akilight:我聽說一些動畫公司有打算用UDK之類的來拍機造動畫 01/05 09:39
14F:→ akilight:也會需要用到shader,可以參考 01/05 09:39
15F:→ iamlala:pixel shader 是對每個fragment做計算 01/06 01:23
16F:→ SoYoungBlues:樓樓上說的應該是"壹"家動畫公司 不是一些吧XD 01/06 04:41
17F:推 NDark:樓上有梗 01/06 09:30
18F:推 akilight:本來想說不要說那麼明阿XDDD 01/06 11:06