レンダリングを実行するために必要な属性をシェーダが Softimage に伝えることができます。 属性は CHardwareAttributeArray に返されます。
CHardwareAttribute クラスは、シェーダがレンダリングで使用するためにメッシュまたはポイント クラウドのどのデータ タイプでも要求できるようにする一連の補助関数を実装します。 CHardwareAttribute オブジェクトで定義される各属性は、属性データと、データを保持するハードウェア レジスタにアクセスできます。 個々のシェーダはこのコールバックを書き出す必要があります。このコールバックは、シェーダに必要な属性を Softimage に知らせます。
bool <shader_name>_<renderer_name>_GetAttributeList ( CRef in_pCtx, CHardwareAttributeArray& out_array, void **io_pInstanceData ) { ... } |
<shader_name> は、このシェーダに対して登録されたクラス名です。この名前に含まれるスペースはアンダースコアに置き換えられます。 シェーダ定義プラグインの場合は、この名前は PluginRegistrar::RegisterShader の呼び出しで指定されます。 パーサを使用して作成されたシェーダ定義の場合は、この名前は ClassName 属性を介して ParseInfo コールバックで設定されます。
<renderer_name> は、レンダリング エンジンの名前です。 たとえば、クラス名が Sunset である OpenGL シェーダは Sunset_OpenGL_GetAttributeList を使用するのに対し、.cgfx ファイルから解析されたバージョンは Sunset_CgFx_GetAttributeList を使用します。
パラメータ | タイプ | 説明 |
---|---|---|
in_pCtx | CRef& | HardwareShaderContext オブジェクトへのリファレンス。 |
out_array | CHardwareAttributeArray | このシェーダで定義されている CHardwareAttribute のリスト |
io_pInstanceData | void | シェーダ インスタンス ユーザ データへのポインタ |