OpenGL Shading Language メモ

  • GLSL の処理の流れ
    1. 頂点データが入力される
    2. [Vertex Shader]
    3. Clipping
    4. 点や線、面、あるいはビットマップのラスタ化
    5. [Fragment Shader]
    6. Antialiasing
    7. シザーテスト、アルファテスト、デプステスト、カラー論理オペレーションなどが、個々のフラグメントに対して行われる
  • GLSL キーワード
    • attribute: C++などのソースから GLSL の Vertex Shader の各頂点ごとに値が渡される変数、と宣言するためのキーワード。Vertex Shader でしか使えない。
    • uniform: C++などのソースから GLSL の Vertex Shader, Fragment Shader に固定値が渡される変数、と宣言するためのキーワード。
    • varying: GLSL の Vertex Shader から、Fragment Shader に渡される変数、と宣言するためのキーワード。Vertex Shader, Fragment Shader 内で共に宣言しないといけない。
  • Fragment Shader 内で使える特殊なキーワード discard は、アルファテスト、デプステストなども行わずに、現在のフラグメント処理を即座に終わらします。