「ビューポート 2.0 の dx11Shader および glslShader プラグインでサポートされるセマンティックと注釈」の続きです。
注: 現在、glslShader プラグインではサポートされていません。
名前 | タイプ | 説明 |
HWS_PrimitiveBase |
int |
オブジェクトのカラー、または最初のコンポーネント、または最初のジオメトリ インスタンスを生成するために使用される整数です。(GPU インスタンス化は、ビューポート 2.0 オプション ウィンドウで有効にする必要があります)。 |
HWS_PrimitiveCountPerInstance |
int |
各ジオメトリ インスタンスごとに増分する必要のある HWS_PrimitiveBase の量を指定します。
MUniformParameter::kSemanticHWSPrimitiveCountPerInstance に対応しています。 |
HWS_ObjectLevel |
bool | 選択をオブジェクト レベルで行うかどうかを指定します。 |
HWS_FaceLevel |
bool |
選択をフェース レベルで行うかどうかを指定します。
MUniformParameter::kSemanticHWSFaceLevel に対応しています。 |
HWS_EdgeLevel |
bool |
選択をエッジ レベルで行うかどうかを指定します。
MUniformParameter::kSemanticHWSEdgeLevel に対応しています。 |
HWS_VertexLevel |
bool | 選択を頂点レベルで行うかどうかを指定します。 |
HWS_FrontCCW |
bool |
反時計回りの三角が前向きかどうかを指定します。太点または太線を生成するときに便利です。
MUniformParameter::kSemanticHWSFrontCCW に対応しています。 |
HWS_InstancedDraw |
bool | ジオメトリ インスタンスが描画されているかどうかを指定します。 |
名前 | タイプ | 説明 |
index_buffer_type | string |
インデックス バッファ ジェネレータと mutator プラグインでカスタムのプリミティブ タイプを指定できます。通常は、追加データが含まれているインデックス バッファをシェーダに提供するために、テッセレーションに使用されます。 dx11Shader および glslShader プロジェクトには、隣接エッジ法線(PN-AEN)インデックス バッファを使用して点法線三角形を生成することができる mutator が含まれています。詳細については、「Maya 開発者ヘルプ」の「シェーダのジオメトリック データをカスタマイズする」を参照してください。 dx11Shader または glslShader の場合、これらの値を使用します。 値無し: 既定のインデックス バッファ(既定値) 「PNAEN9」または「GLSL_PNAEN9」: 三角形および隣接エッジ 「PNAEN18」または「GLSL_PNAEN18」: 三角形、隣接エッジ、ドミナント エッジ、およびドミナント頂点 インデックス mutator の登録されている名前と一致していれば、他の任意の値も許容されます。 MHWRender::MPxPrimitiveGenerator に対応しています。 |
texture_mipmaplevels |
int |
dx11Shader では、テクニックまたはテクスチャ説明レベルのどちらかで、ロードまたは生成しなくてはならない Mip-map レベルの数をコントロールすることができます。 このテクニックを使用してテクスチャをロードするときに生成する必要がある mip マップ レベルを指定するには、テクニックの定義を使用してこの注釈を使用します。有効な値は次のとおりです。
テクスチャ メモリを削減するには、dx11Shader プラグインの既定値を 1 に設定すると、最初の mip map レベル(<val>=1)だけがロード、計算されます。 これをテクスチャごとに強制して、メモリの使用量を明示的に削減することもできます。 実装例を次に示します。
後者が優先される場合は、パラメータ注釈 mipmaplevels と組み合わせることができます。詳細については、「テクスチャ固有のパラメータ注釈」を参照してください。 |
isTransparent
(dx11Shader) |
int |
Maya で適切なパスとカリングを使用できるエフェクトの不透明度を指定します。サポートされる値は以下のとおりです。
0: テクニックは常に不透明です。 1: テクニックは常に透明です。 2: テクニックの不透明度は「Opacity」セマンティックを使用する float パラメータに関連付けられ、不透明度の値が 1.0 未満の場合は透明になります。 |
透明度(Transparency)
(glslShader) |
string |
このテクニックが半透明モードでレンダリングするかどうかを指定します。 「Opaque」: 透明度なし(既定) 「Transparent」: 透明を有効化します。 MPxShaderOverride::isTransparent() に対応しています。 |
SupportsAdvancedTransparency | string (bool) |
このテクニックが高度な透明度アルゴリズム(深度ピーリングなど)をサポートするかどうかを指定します。 True の場合、このテクニックは描画コンテキスト「transparentPeel」、「transparentPeelAndAvg」および「transparentWeightedAvg」のパスを定義する必要があります。 「False」: 高度な透明度のサポート無し(既定値) 「True」: 高度な透明度をサポート |
OverridesDrawState | string (bool) |
このテクニックが Maya の透明オブジェクトをレンダリングするかどうかまたは自己管理かどうか(マルチパス)を指定します。 「False」: 状態をオーバーライドしない(既定値) 「True」: 自己管理 MPxShaderOverride::overridesDrawState() に対応しています。 |
OverridesNonMaterialItems |
string (bool) |
このテクニックを、ワイヤフレームや選択したエッジまたは頂点コンポーネントなどの、マテリアルではない項目をレンダーするために使用するかどうかを指定します。 これは、オブジェクトのジオメトリがレンダーしたマテリアルと一致せず、選択が困難なディスプレイスメントを計算するシェーディング エフェクトに特に便利です。 「False」: マテリアルではない項目をオーバーライドしない(既定) 「True」: シェーダの UI のプリミティブを表示できるように、マテリアルではない項目のレンダーに使用 詳細については、「サポートされるパス注釈」で DrawContext を参照してください。 |
ExtraScale | float |
このテクニックは、オブジェクト空間のバウンディング ボックスに適用される最大スケール係数が必要かどうかを指定します。 このテクニックを使用すると、このバウンディング ボックスをベース ジオメトリよりも大きくする必要があることを示すことができます。これは通常、ディスプレイスメントなどの影響や、ジオメトリがビューポートのエッジに移動される場合や選択中に破棄されることを防ぐためです。 既定値は 1.0 です。 |
VariableNameAsAttributeName | string (bool) |
Maya のアトリビュート名として(存在する場合は、UIName の代わりに)均一変数名を使用することを Maya に伝えます。 「False」: アトリビュート名として UIName を使用(既定) 「True」: アトリビュート名として変数名を使用 シェーダ ファイルに定義されている UI 名が変更された場合、保存した Maya シーンとの下位互換性を維持するために使用することができます。 |
handlesConsolidatedGeometry |
string (bool) |
False に設定すると、glslShader が適用されるジオメトリに対して統合ワールド(Consolidate World)機能が無効になります。 この注釈は、テクニックによりディスプレイスメントが描画され、そのディスプレイスメントの計算でオブジェクトのオブジェクト空間座標を使用する場合(ワールド変換行列を使用する場合など)に便利です。統合ワールド(Consolidate World)を使用すると、複数のオブジェクトの頂点が新しい共有オブジェクト空間に移動されます。そのため、プラグイン シェーダのレンダリングが正常に実行されないことがあります。この場合、統合ワールド(Consolidate World)を無効にすることができます。 |
エフェクトでは、シャドウの深度マップを描画する場合など、テクニックのパスの一部を特殊なコンテキストでアクティブにすることを要求できます。これは、パスをアクティブにできるコンテキストを指定する、「DrawContext」という名前の文字列注釈を追加して行われます。
名前 | タイプ | 説明 |
DrawContext | string |
このパスをこの描画コンテキストでのみ有効にすることを指定します。 複数のパスが同じ DrawContext 値を持つことができます。 MHWRender::MPassContextのパス セマンティックと一致する任意の文字列を使用できます。たとえば、次のコンテキストがサポートされています: 「colorPass」、「shadowPass」、「depthPass」、「normalDepthPass」。 空の値(または DrawContext が設定されていない場合)は、この注釈を「colorPass」に設定するのと同じです。 マテリアルではない項目をレンダーするために使用するパスについては、「nonMaterialItemsPass」に設定します。マテリアルではない項目を選択するために使用されるパスについては、「selectionPass」に設定します。上記の「サポートされるテクニック注釈」で OverridesNonMaterialItems を参照してください。 |
PrimitiveFilter |
string |
このパスで次のコンポーネントのレンダリングを処理できることを指定します。 パスまたは選択パスのレンダリング時にエッジまたは頂点コンポーネントを処理するために使用することができます。 頂点コンポーネントは 1 つのピクセルではなく四角としてレンダリングされ、エッジ コンポーネントは、主に事前選択ハイライト中に、見やすくするために大きくレンダリングされます。 これは通常、ジオメトリ シェーダを使用して行われ、ラインとポイントを四角に変換します。 「fatLine」: このパスでラインを四角としてレンダリングできる 「fatPoint」: このパスでポイントを四角としてレンダリングできる この特殊ケースを処理するパスが定義されていない場合、「nonMaterialItemsPass」または「selectionPass」描画コンテキストを処理する既定のパスが使用されます。 |
名前 | タイプ | 説明 |
MayaSwatchRender | bool |
現在のレンダリング プロセスがスウォッチの描画に使用されるタイミングを指定します。 ユーザは、スウォッチを描画するときに特定のパスを処理できます。 |