ジオメトリ

立方体

軸に位置合わせされたボリューム 1 の単位立方体を、原点を中心として生成します。

mib_geo_cube
geometry "mib_geo_cube" ()

パラメータはありません。

所定の数の U および V サブディビジョンを持ち、原点を中心としたポリゴン球を生成します。球は Z 軸(横軸)上の v_subdiv サブディビジョンと XY プレーン(縦軸)上の u_subdiv サブディビジョンに細分化されます。

mib_geo_sphere
geometry "mib_geo_sphere" (
    integer         "u_subdiv",
    integer         "v_subdiv")
*_subdiv
各パラメータ範囲内のサブディビジョンの数を指定します。u_subdiv が 3 よりも小さいか v_subdiv が 1 よりも小さい場合は、シェーダはサブディビジョンの既定値を使用します。

コーン

Z 軸を中心とし、頂点が Z=0、ベースが Z=-1 であるポリゴン円錐を生成します。コーンの底面の半径は 1、高さも 1 になります。円錐の底面の円板は u_subdiv サブディビジョンに分割され、円錐の側面は Z 軸方向に v_subdiv サブディビジョンに分割されます。コーンのベースにキャップをするかどうかはパラメータでコントロールします。

mib_geo_cone
geometry "mib_geo_cone" (
    integer         "u_subdiv",
    integer         "v_subdiv",
    boolean         "capped")
*_subdiv
各パラメータ範囲内のサブディビジョンの数を指定します。
capped
true の場合は、コーンのベースをキャップで塞ぎます。

u_subdiv が 3 よりも小さいか v_subdiv が 0 よりも小さい場合は、シェーダはサブディビジョンの既定値を使用します。

円柱

Z 軸を中心とし、底面が Z=-1、上面が Z=0 であるポリゴン円柱を生成します。円柱の半径は 1、高さも 1 になります。円柱の 2 つの円板は u_subdiv サブディビジョンに分割され、側面は Z 軸方向に v_subdiv サブディビジョンに分割されます。底面または上面にキャップをするかどうかはパラメータでコントロールします。

mib_geo_cylinder
geometry "mib_geo_cylinder" (
    integer         "u_subdiv",
    integer         "v_subdiv",
    boolean         "bottom_capped",
    boolean         "top_capped")
*_subdiv
各パラメータ範囲内のサブディビジョンの数を指定します。
bottom_capped
true の場合は、円柱のベースをキャップで塞ぎます。
top_capped
true の場合は、円柱の上面をキャップで塞ぎます。

u_subdiv が 3 よりも小さいか v_subdiv が 0 よりも小さい場合は、シェーダはサブディビジョンの既定値を使用します。

トーラス

XY プレーンに置かれ、中心が原点にあるポリゴンのトーラスを生成します。トーラスは 2 つの円で定義され、小さい円が大きい円の中心を回転している形状を指します。

mib_geo_torus
geometry "mib_geo_torus" (
    scalar          "radius",
    scalar          "thickness",
    integer         "uSpans",
    integer         "vSpans")
radius
大きい円の半径です。
thickness
小さい円の半径です。
uSpans
vSpans
各パラメータ範囲内のサブディビジョンの数を指定します。

省略した場合は(0 に設定されます)、既定で radius は 2.0、thickness は 1.0、uSpans は 32、vSpans は 32 にそれぞれ設定されます。

正方形

中心が原点に位置合わせされ、法線の方向が正の Z 軸を指す、面積 1 の正方形が生成されます。

mib_geo_square
geometry "mib_geo_square" ()

パラメータはありません。

インスタンス

上記のジオメトリシェーダのうちいずれか 1 つを指定し、ジオメトリを変換、スケーリング、および回転するインスタンスを構築し、唯一のメンバであるソースジオメトリのインスタンスを使用してグループを戻します。ベースシェーダがリストに含まれているために結果がゼロでない場合は、新しいグループは作成せずに、結果として作成されるグループにこのインスタンスを追加します(ジオメトリシェーダの通常の動作です)。

mib_geo_instance
geometry "mib_geo_instance" (
    geometry        "object",
    miMatrix        "matrix",
    material        "material")
object
インスタンス化するオブジェクトです。
matrix
新しいインスタンスの変換行列です。この行列が空の行列である場合は単位行列を使用します。
material
インスタンスに格納するための継承マテリアルです。ヌル(マテリアルが存在しない)の場合もあります。

マテリアルリスト対応インスタンス

このインスタンスシェーダは 1 つ前に紹介したものと同じですが、マテリアル配列に対応しています。配列に複数のメンバが存在する場合は、マテリアル配列は新しいインスタンスのマテリアルリストに変換されます。マテリアルリストは、インスタンス化されたオブジェクトがタグ付けされている場合に便利です。すなわち、オブジェクトのポリゴンまたはサーフェスがマテリアル配列のインデックス指す整数を含んでいる場合です。

mib_geo_instance_mlist
geometry "mib_geo_instance_mlist" (
    geometry        "object",
    miMatrix        "matrix",
    array material  "material")
object
インスタンス化するオブジェクトです。
matrix
新しいインスタンスの変換行列です。この行列が空の行列である場合は単位行列を使用します。
material
インスタンスに格納するための継承マテリアルです。ヌル(マテリアルが存在しない)の場合もあります。

テクスチャ サーフェスの追加

このシェーダは入力オブジェクト(サーフェスのフリーフォーム タイプ)のコピーを返します。全部のフェースを輪にし、最終のテクスチャ サーフェスとして各フェースに 1 度のベジェ テクスチャを追加します。テクスチャ サーフェスのパラメータおよびコントロール ポイントは、テクスチャ頂点座標に対するジオメトリックな近似のパラメトリック UV 座標のマッピングが正確に行われるように選択されます。たとえば、三角形の頂点のテクスチャ座標は、三角形の頂点位置の UV 座標です。ベジェの基底は必ずオブジェクトのコピーに追加されます。

mib_geo_add_uv_texsurf
geometry "mib_geo_add_uv_texsurf" (
    geometry        "object")
object
コピーされるフリーフォーム サーフェス オブジェクトです。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.