頂點著色器 學習筆記
阿新 • • 發佈:2017-05-30
裁剪 str cati strong log href open rotate 程序
頂點著色器
shader的三種變量類型
- uniform變量一般用來表示:變換矩陣,材質,光照參數和顏色等信息;如果在vertex和fragment兩者之間聲明方式完全一樣,則它可以在vertex和fragment共享使用;只讀常量數據;
- attribute變量是只能在vertex shader中使用的變量;一般用attribute變量來表示一些頂點的數據,如:頂點坐標,法線,紋理坐標,頂點顏色等;
- varying變量是vertex和fragment shader之間做數據傳遞用。一般vertex shader修改varying變量的值,然後fragment shader使用該varying變量的值。因此varying變量在vertex和fragment shader二者之間的聲明必須是一致的。application不能使用此變量。
矩陣變換
模型-視圖-投影(MVP)矩陣的概念:
- 模型矩陣--將物體坐標變化成世界坐標
- 視圖矩陣--將世界坐標變換成眼睛坐標
- 投影矩陣--將眼睛坐標變換成裁剪坐標
在固定管線OpenGL中,模型-視圖矩陣可以用glRotatef,glTranslatef,glScalef等函數創建;可編程管線已不可用這些函數,可在應用程序中處理;模板代碼esTransfrom.c;
投影矩陣取眼睛坐標“裁剪”後,生成裁剪坐標。
記錄問題:如何判斷圖元坐標在視景體中,來完成裁剪操作?
參考鏈接
shader三種變量類型(uniform,attribute和varying)
esTransform.c
頂點著色器 學習筆記