OpenGL官方教程——着色器語言概述


OpenGL官方教程——着色器語言概述

可編程圖形硬件管線(流水線)

將       Pertransformed Vertices (每一個待轉換頂點)
傳人  Programmable Vertex Processor (可編程的頂點處理器)
得到      Transformed Vertices (轉換的頂點)
將       Transformed Vertices (轉換的頂點)
傳入  Programmable Geometry Processor (可編程的幾何處理器)
得到      Assenbled Polygons,Lines,or Points (組裝 多邊形、線或點)
進行  Clipping,Rasterization and Interpolation (裁剪,光柵化和插值)
得到      Rasterized Pertransformed Fragments (光柵化待轉換的片元[片段])
傳入  Programmable Fragment Processor (可編程的片元處理器)
得到      Transformed Ftagment (轉換的片元)
進行  Raster Operations   (光柵運算)
進行      Pixel Update    (像素更新)
傳入  Frame Buffer    (幀緩沖區)

可編程頂點處理器

頂點處理器是一個可編程的單元,該單元對傳入的頂點屬性,如位置、顏色、紋理坐標等進行操作。頂點處理器的目的是執行傳統的圖形操作,如頂點變換,法線變換/歸一化,紋理坐標的生成,和紋理坐標變換。

頂點處理器只有一個頂點作為輸入,只寫一個頂點作為輸出。頂點的拓撲信息是不可用的。

可編程幾何處理器

幾何處理器允許訪問幾何形狀(線、三角形、四邊形等),它甚至可以創建新的幾何形狀。然而,幾何着色器並不是OpenGL着色器語言規范的一部分。這是一個多廠商的擴展(multivendor extension),目前可用的(開發商)顯卡是NVIDIA GeForce 8系列顯卡。因為這是OpenGL着色器語言中非常重要的一個擴展,所以在這個教程提到它。(如果你不想或不能使用幾何着色器,簡單的忽略它,使用固定功能管線來做)

可編程片元處理器

片元(片段)處理器的目的是用於執行一些傳統的圖形操作。例如計算插值、紋理訪問、紋理應用、霧化、顏色求和等。

語言

OpenGL着色器語言有點類似於C語言。頂點着色器、幾何着色器和片元(片段)着色器都必須有一個入口函數"void main()"

我可以在這里寫一個完整的語言規范,但我認為,更好的方法是看學習示例。在下一節中介紹了一個簡單的着色源代碼。每一段都有一個簡單的源代碼下載。下載那些例子和修改它是學習GLSL的一個很好的方式,你自己進行實踐!

你也應該下載官方GLSL語言規范。你可以點擊這里獲取(在”Miscellaneous Documents”下面)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM