[程式] pixel shader基礎問題

看板GameDesign作者 (newJoey)時間10年前 (2014/01/04 20:31), 編輯推噓7(7011)
留言18則, 9人參與, 最新討論串1/1
看書上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

01/04 20:59, , 1F
對.你的理解沒有甚麼錯誤.
01/04 20:59, 1F

01/04 21:01, , 2F
01/04 21:01, 2F

01/04 21:37, , 3F
verter輸出除了座標之外還可以有UV顏色之類的資訊
01/04 21:37, 3F

01/04 21:37, , 4F
這些gpu會幫你內插好然後當作pixel的輸入
01/04 21:37, 4F

01/04 22:32, , 5F
有些比較大型的動畫公司會有這方面需求
01/04 22:32, 5F

01/04 22:45, , 6F
錯了 pixel shader並非只算3個像素,而是每個像素。
01/04 22:45, 6F

01/04 23:37, , 7F
其實pixel shader並不是計算像素,而是計算sample
01/04 23:37, 7F

01/04 23:38, , 8F
用到anti-aliasing時每個像素會有多個sample
01/04 23:38, 8F

01/05 00:39, , 9F
所以是指GPU可以算出"內差剛好在平面座標內的vertex數值"?
01/05 00:39, 9F

01/05 00:39, , 10F
再帶入pixel shader內當參數?
01/05 00:39, 10F

01/05 04:52, , 11F
01/05 04:52, 11F

01/05 09:34, , 12F
以舊版的 GLSL 來說就是 varying 宣告的變數
01/05 09:34, 12F

01/05 09:39, , 13F
我聽說一些動畫公司有打算用UDK之類的來拍機造動畫
01/05 09:39, 13F

01/05 09:39, , 14F
也會需要用到shader,可以參考
01/05 09:39, 14F

01/06 01:23, , 15F
pixel shader 是對每個fragment做計算
01/06 01:23, 15F

01/06 04:41, , 16F
樓樓上說的應該是"壹"家動畫公司 不是一些吧XD
01/06 04:41, 16F

01/06 09:30, , 17F
樓上有梗
01/06 09:30, 17F

01/06 11:06, , 18F
本來想說不要說那麼明阿XDDD
01/06 11:06, 18F
文章代碼(AID): #1In_yleZ (GameDesign)