Render State

概要

Render State(レンダリング状態)は、レンダリング中にシェーダがアクセスして変更する変数や関数の集まりです。これはシェーダと画像のレンダリングとの間の主要なコミュニケーションポイントです。シェーダが何かを要求された時、例えば位置を移動させたり、ピクセルの色をレンダラーに伝えたりする時、シェーダはRender Stateからシェーディングするポイントに関する情報を取得します。一方、シェーダは、Render Stateの値を変更する事により、情報をレンダラーに送り返します。これにより、レンダラーは、描画するカラーやサーフェスの形状を知る事が出来ます。これは通常、ポイントごとに行われます。大まかに言えば、レンダラーは1ピクセルまたは1マイクロポリゴンを一度に処理し、すべてのシェーダにそのポイントの修正を依頼します。

シェーダの中には、後から呼び出される他のシェーダの動作を変更できるように状態を修正するものがあります。例えば、『Warp Shader』は、その"Shader"の入力端子に接続された他のシェーダの形状を変更する事が出来ますが、これはそのためです。

シェーダはこれらの事を、ユーザーに詳細を明かす事なく実行します。ただし、Render Stateの変数の多くは、『Get』ファンクションノードを使ってアクセス出来るので、ビルトインシェーダだけでは出来ない事が可能になります。

『Get』Functions

以下のノードは、Render Stateの変数のいくつかに読み取り専用でアクセスする事が出来ます。これらのノードが返す値は、レンダリングコンテキストに依存し、また、これらの関数が呼び出される前にどのシェーダが呼び出されたかに依存する場合があります。

Scalars

Get Altitude - 『Geometry to Position』から『Normal in Geometry』方向に沿った位置までの符号付き距離。惑星の場合、これは基本的に変位を含む現在レンダリングされている位置の高度を意味します。

Get Altitude in Texture - 『Normal in Geometry』に沿って、『Geometry to Position』からテクスチャの位置までの符号付き距離。惑星の場合、これは基本的に現在のテクスチャ座標の高度を意味します。

Get Frame Number - 現在のRender Stateの現在のフレーム番号を提供します。

Positions (vectors)

Get Camera Position - 現在のシェーディング状況とは無関係に、ワールド空間でのメインカメラの位置。

Get Position - ディスプレースメントを含む、ワールド空間におけるポイントの位置。

Get Position in Geometry - ディスプレースメント前のワールド空間におけるポイントの位置。

Get Position in Texture - テクスチャ座標はオブジェクトによって設定され、多くの場合、他のシェーダによって変更されます。例えば、『Compute Terrain』、『Tex Coords From XYZ』、『Transform Shader』、『Warp Shader』

Get Ray Origin - ワールド空間におけるビューアの位置または現在のレイの原点。

Normals (vectors)

Get Normal - シェーダやレンダラーによる最新の修正を含むサーフェス法線

Get Normal in Geometry - ディスプレースメント前のサーフェス法線。

Get Normal in Texture - オブジェクトや『Compute Terrain』、『Compute Normal』で設定されたサーフェス法線。

Colours

以下のカラー変数の一部またはすべては、有用な情報が設定されている可能性がありますが、それらを実行する前にどのシェーダが呼び出されたかによって異なります。

Get Diffuse Colour - ライティング前のサーフェスの拡散係数。

Get Emitted Colour - サーフェスの放射(発光)成分。

Get Final Alpha - サーフェスの最終出力アルファ。

Get Final Colour - サーフェスの最終出力カラー。

Get Final Opacity - サーフェスの最終透明度(1で透明)。

Get Specular Colour - サーフェスの鏡面成分。
最終更新:2021年08月13日 12:18