ホーム › Graphics.Direct3D12 › D3D12_RAYTRACING_GEOMETRY_FLAGS
D3D12_RAYTRACING_GEOMETRY_FLAGS
列挙型フラグメンバー 3
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D3D12_RAYTRACING_GEOMETRY_FLAG_NONE | 0 | 0x0 | オプションを指定しません。 |
| D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE | 1 | 0x1 | レイがこのジオメトリに交差したとき、any hit シェーダーが存在しないものとして動作します。このフラグはレイ処理の重要な最適化を可能にするため、アプリケーションで積極的に使用することをお勧めします。なお、この動作は D3D12_RAYTRACING_INSTANCE_FLAGS によってインスタンス単位で、また TraceRay のレイ フラグによってレイ単位でオーバーライドできます。 |
| D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION | 2 | 0x2 | 既定では、システムは 1 つのレイとプリミティブの交差に対して any hit シェーダーを複数回起動することが許されています。この柔軟性により、特定のケースで高速化構造のトラバーサル効率が向上します。たとえば、高速化構造が内部的にバウンディング ボリュームで実装されている場合、細長い三角形を 1 つの大きなボックスに格納するよりも、複数のバウンディング ボックスに分けて格納する方が有利になることがあります。ただし、アプリケーションのユース ケースによっては、交差を any hit シェーダーに対して最大 1 回しか報告しないことが求められます。このフラグは、対象のジオメトリに対してその保証を有効にしますが、パフォーマンスに影響が生じる可能性があります。 このフラグはすべてのジオメトリの種類に適用されます。 |
公式ドキュメント
D3D12_RAYTRACING_GEOMETRY_DESC 構造体で使用するレイトレーシング ジオメトリのフラグを指定します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS : int {
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1,
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2
} D3D12_RAYTRACING_GEOMETRY_FLAGS;[Flags]
public enum D3D12_RAYTRACING_GEOMETRY_FLAGS : int
{
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1,
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2,
}<Flags>
Public Enum D3D12_RAYTRACING_GEOMETRY_FLAGS As Integer
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2
End Enumimport enum
class D3D12_RAYTRACING_GEOMETRY_FLAGS(enum.IntFlag):
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2// D3D12_RAYTRACING_GEOMETRY_FLAGS (flags)
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NONE: i32 = 0;
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE: i32 = 1;
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION: i32 = 2;// D3D12_RAYTRACING_GEOMETRY_FLAGS
const (
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE int32 = 0
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE int32 = 1
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION int32 = 2
)const
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0;
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1;
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2;// D3D12_RAYTRACING_GEOMETRY_FLAGS
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NONE: i32 = 0;
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE: i32 = 1;
pub const D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION: i32 = 2;const
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE* = 0
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE* = 1
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION* = 2enum D3D12_RAYTRACING_GEOMETRY_FLAGS : int {
D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0,
D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 1,
D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 2,
}#define global D3D12_RAYTRACING_GEOMETRY_FLAG_NONE 0x0
#define global D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE 0x1
#define global D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION 0x2
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。