サーチ…


構文

  • #version version_number //使用しているGLSLのバージョン
  • void main(){/ * Code * /} //シェーダのmain関数
  • タイプ名で; //入力パラメータを指定する - GLSL 1.30
  • タイプ名。 //出力パラメータを指定する - GLSL 1.30
  • inout型の名前。 //入力と出力の両方のパラメータ - GLSL 1.30

パラメーター

パラメータ詳細
タイプパラメータの型は、GLSL組み込み型でなければなりません。

備考

シェーダのコンパイルに使用するGLSLのバージョンを指定するには、 #version 330バージョンプリプロセッサを使用します。 OpenGLの各バージョンは、特定のバージョンのGLSLをサポートする必要があります。 #versionプリプロセッサがシェーダの上部に定義されていない場合は、デフォルトのバージョン1.10が使用されます。

色付きの四角形をレンダリングするためのシェーダ

OpenGLの意味でのシェーダプログラムには、さまざまなシェーダが含まれています。どのシェーダプログラムでも、画面上の点の位置を計算する少なくとも頂点シェーダと、各ピクセルの色を計算するフラグメントシェーダが必要です。 (事実、ストーリーは長くて複雑ですが、とにかく...)

次のシェーダは#version 110#version 110が、いくつかの点を説明する必要があります。

頂点シェーダ:

#version 110

// x and y coordinates of one of the corners
attribute vec2 input_Position;

// rgba colour of the corner. If all corners are blue, 
// the rectangle is blue. If not, the colours are 
// interpolated (combined) towards the center of the rectangle    
attribute vec4 input_Colour; 

// The vertex shader gets the colour, and passes it forward     
// towards the fragment shader which is responsible with colours
// Must match corresponding declaration in the fragment shader.  
varying vec4 Colour;    

void main()
{
    // Set the final position of the corner
    gl_Position = vec4(input_Position, 0.0f, 1.0f);
    
    // Pass the colour to the fragment shader
    UV = input_UV;
}

フラグメントシェーダ:

#version 110

// Must match declaration in the vertex shader.  
varying vec4 Colour;

void main()
{
    // Set the fragment colour
    gl_FragColor = vec4(Colour);
}


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow