GLSL教程 介紹

2021-05-23 22:19:42 字數 801 閱讀 7364

本教程講授如何使用glsl進行著色器程式設計。著色器是乙個熱門話題,3d遊戲表明有效地使用著色器可以取得非凡的效果。本教程的目的就是帶領大家走入著色器世界。

glsl即gl著色語言,簡稱為glslang,由opengl管理機構opengl arb定義。

本教程不打算比較glsl和cg(cg是nvidia提議的著色語言,與opengl相容)。選擇glsl而不是cg用於本教程的唯一理由是glsl與opengl結合更緊密。

在使用任一門語言編寫著色器之前,都很有必要了解圖形管線的基本知識。這樣能夠提供引入著色器的上下文,能夠了解哪些型別的著色器是可用的,著色器應該做些什麼,還能夠知道著色器不能做什麼,這也是同等重要的。

本節結束之後,接著討論為glsl設定opengl。我們相當詳細地討論在乙個opengl應用程式中,使用著色器的必需步驟。最後向大家展示,乙個opengl應用程式如何向著色器提供程式,才能使其更加靈活和強大。

接著介紹一些基本的概念如資料型別、變數、語句和函式定義。

本教程覆蓋了arb擴充套件和opengl2.0版本。覆蓋前者是為了獲得更大的相容性,覆蓋後者是因為在不久的將來它將是乙個標準。它們倆之間的區別很小,大部分都是函式名和常量名的細微區別。通過給**著上不同的顏色可以幫助讀者區分他們。arb擴充套件的**著以灰色,opengl2.0的**著以橙色。

兩者兼顧(指arb擴充套件和opengl2.0)更易於出錯,如果你從中發現了錯誤,那麼告訴我。

本文英文原文為《glsl tutorial - introduction》。

如果文中有一些地方翻譯得不符合您的閱讀習慣,您可以直接閱讀英文原文,或者把您的翻譯建議發給我,我一定會認真對待您的建議。

GLSL教程 (九)其他說明

法線矩陣 在很多頂點shader中都用到了gl normalmatrix。這裡將介紹這個矩陣是什麼,以及它的作用。大部分計算是在檢視空間內完成的,主要原因是光照的運算要放在這個空間內,否則一些依賴觀察點座標的效果,比如鏡面反射光就很難實現。所以我們需要將法線變換到檢視空間。變換乙個頂點到檢視空間的方...

GLSL教程 (九)其他說明

法線矩陣 在很多頂點shader中都用到了gl normalmatrix。這裡將介紹這個矩陣是什麼,以及它的作用。大部分計算是在檢視空間內完成的,主要原因是光照的運算要放在這個空間內,否則一些依賴觀察點座標的效果,比如鏡面反射光就很難實現。所以我們需要將法線變換到檢視空間。變換乙個頂點到檢視空間的方...

GLSL教程 (九)其他說明

from 法線矩陣 在很多頂點shader中都用到了gl normalmatrix。這裡將介紹這個矩陣是什麼,以及它的作用。大部分計算是在檢視空間內完成的,主要原因是光照的運算要放在這個空間內,否則一些依賴觀察點座標的效果,比如鏡面反射光就很難實現。所以我們需要將法線變換到檢視空間。變換乙個頂點到檢...