Setting Up a Unified GLSL Program(統合Unified GLSLプログラムの設定)

 
 
 

SoftimageのGLSL Shader(GLSL シェーダ)は、頂点シェーダおよびフラグメントシェーダの両方が1つの「エンティティ」としてコーディング可能な、統一されたシェーダモデルを使用します。つまり、1つの[GLSL Shader]ノードには、頂点シェーダとピクセルシェーダの両方が含まれます。コードが有効で、頂点プログラムがフラグメントプログラムを正しく呼び出している場合は、2つのシェーダタイプ間で通信できるようにRender Treeに接続を追加する必要ありません。

また、[GLSL Shader]ノード内で、ブレンド、アルファテスト、ポイントスプライトなどの描画オペレーションを直接指定できます。

GLSLシェーダの接続

  1. リアルタイムエフェクトを作成するポリゴンメッシュまたはポイントクラウドを選択します。

  2. オブジェクトが選択された状態で、([7]を押して)Render Tree を開きます。

  3. Preset Manager の[RealTime] [OpenGL] [GLSL Program]ノードを Render Tree のワークスペースにドラッグ アンド ドロップします。

  4. [GLSLProgram]ノードをマテリアルノードの[RealTime]入力に接続します。Render Tree内の操作全般については、「ノードを接続する」を参照してください。

  5. [GLSL Program]ノードをダブルクリックしてプロパティエディタを開きます。

    プログラムオプション(Program Options)

  6. [プログラム]タブをクリックし、GLSLプログラムの[ビルド](Build)オプションを設定します。

  7. コンパイルした結果を確認するには、[デバッグメッセージ](Debug messages)オプションを有効にします。

    コンパイル結果は、ログに記録され、Script Editor のログ ウィンドウから確認できます。Script Editor を表示するには、Softimage インタフェースの下部にあるスクリプト アイコンをクリックします。

  8. 適切なラベルが付いたテキストエディタで、頂点およびピクセルプログラムコードを入力します。You can also load one of the preset shaders available from the プリセット tab. このテキストエディタの使い方の詳細については、「GLSL の頂点プログラムとフラグメント プログラム」を参照してください。

    描画オプション(Draw Options)

  9. [描画]タブをクリックします。ここでは、エフェクトで必要な統一された描画オペレーションを有効にできます。必要に応じて、以下のオプションを設定します。

Render Treeの均等変数およびサンプラの設定

  • [均等変数](Uniform variables): 頂点およびフラグメントシェーダで宣言された各均等変数の値を設定する必要があります。Render Treeで、[GLSLProgram]ノードの[previous]入力ポートの1つにGLSL Uniform(GLSL ユニフォーム)ノードを接続します。コードで宣言した各均等変数には、Render Treeで[GLSLUniform]ノードを接続する必要があります。

  • [サンプラ](Samplers): プログラムが均等変数としてサンプラ(sampler2Dなど)を宣言している場合、[GLSLProgram]ノードの[previous]入力ポートのいずれかにOGL Texture(OGL テクスチャ)ノードを接続する必要があります。コードで宣言した各テクスチャサンプラには、各テクスチャマップにアクセスするために、Render Treeで[OGL13Texture]ノードを接続する必要があります。