このオプションのコールバックは、Render Manager によって使用され、QueryType 属性で指定された siRenderQueryType 列挙値に基づいてレンダリング エンジンに情報を問い合わせます。
CStatus <renderer_name>_Query( CRef& in_context ) { ... } |
<renderer_name> は、PluginRegistrar::RegisterRenderer の呼び出しで指定されている名前です。この名前に含まれるスペースはアンダースコアに置き換えられます。
パラメータ | Language | タイプ | 説明 |
---|---|---|---|
in_context | C++ | CRef& | RendererContext オブジェクトへのリファレンス。 Context::GetSource は Renderer を返します。 |
クエリ コールバックのコンテキスト属性は、クエリ タイプによって異なります。 ただし、いずれの場合も QueryType 属性は設定されます。
Attribute | タイプ | 説明 |
---|---|---|
QueryType | siRenderQueryType | 問い合わせ対象の情報のタイプ。 各クエリに固有のコンテキスト属性については、次の表を参照してください。 |
クエリ タイプ | Attribute | タイプ | 説明 |
---|---|---|---|
siRenderQueryArchiveIsValid | Filename | CString | オブジェクト アーカイブのファイル パス。 |
Valid | bool | 戻るときに、Filename で指定したオブジェクト アーカイブがこのレンダラで有効なアーカイブである場合は true に、それ以外の場合は false に設定される必要があります。 | |
MultiFrame | bool | 戻るときに、有効なアーカイブが複数フレームのアーカイブである場合は true に設定される必要があります。 | |
siRenderQueryArchiveProxies | Filename | CString | オブジェクト アーカイブのファイル パス。 |
Frame | int | プロキシを返す必要がある、アーカイブ内のフレーム番号。 複数フレームのアーカイブについてのみ必要です。 単一フレームのアーカイブの場合、Filename 属性値で十分です。 | |
ProxyXY ProxyXZ ProxyYZ |
CString | Filename で指定されているオブジェクト アーカイブにディスプレイ プロキシが生成された場合、このコールバックによってこれらの属性値を XY、XZ、YZ の各平面のディスプレイ プロキシの絶対パスとして設定する必要があります。 ディスプレイ プロキシは、アーカイブのバウンディング ボックスにフィットするように描画されます。 ディスプレイ プロキシ イメージは、Softimage で認識可能な形式で保存する必要があります。 | |
siRenderQueryArchiveBBox | Filename | CString | オブジェクト アーカイブのファイル パス。 |
Frame | int | バウンディング ボックスを返す必要がある、アーカイブ内のフレーム番号。 複数フレームのアーカイブについてのみ必要です。 単一フレームのアーカイブの場合、Filename 属性値で十分です。 | |
BBoxMin BBoxMax |
CVector3 | これらの属性値は、コールバックによって、オブジェクト アーカイブ内に含まれているレンダリング可能なジオメトリの完全なバウンディング ボックスとして設定される必要があります。 最小範囲と最大範囲は、軸に揃えられたバウンディング ボックスの CVector3 値として設定する必要があります。 | |
siRenderQueryArchiveFrameRange | Filename | CString | オブジェクト アーカイブのファイル パス。 |
FrameStart FrameEnd |
int | これらの属性値は、コールバックによって、Filename 属性で指定された複数フレーム オブジェクト アーカイブのフレーム範囲として設定される必要があります。 このコールバックがこのオブジェクト アーカイブを複数フレームのアーカイブと識別した場合にのみ呼び出されます。 どちらの値も、その値自体を含みます。 | |
siRenderQueryDisplayBitDepths | BitDepths | CLongArray |
この属性は、コールバックによって、siImageBitDepth 値の配列として設定される必要があります。レンダラがイメージ フラグメントを返す対象として Softimage が指定できるビット深度を示します(「RendererImageFragment::GetScanlineRGBA」を参照)。
現在 Softimage によって認識される値は、以下のとおりです。 |
siRenderQueryWantDirtyList | WantDirtyList | bool |
この属性は、レンダラがダーティ リストを必要とするかどうかを示すために、戻る前に設定する必要があります。 戻るときにこの値が true である場合は、Process コールバックの各呼び出しでレンダラにダーティ リストが提供されます。 false に設定されている場合は、ダーティ リストは提供されません。
デフォルトでは、このクエリ コードが処理されるかどうかに関係なく、ダーティ リストが提供されます。 これは主にシーン グラフを反映しないレンダラの最適化のヒントになります。 |
siRenderQueryVersionString | Version | CString | この属性は、戻るときにレンダリング エンジンのバージョン識別子に設定される必要があります。 バージョン番号が異なる場合、このバージョン識別子はプラグインのバージョンとは異なる可能性があります。 バージョン識別子のフォーマットには制限はありません。 |