Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › D3D12_RAYTRACING_INSTANCE_FLAGS

D3D12_RAYTRACING_INSTANCE_FLAGS

列挙型フラグ
基底型i4

メンバー 7

名前10進16進説明
D3D12_RAYTRACING_INSTANCE_FLAG_NONE00x0オプションを指定しません。
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE10x1このインスタンスに対する前面/背面のカリングを無効にします。レイフラグ RAY_FLAG_CULL_BACK_FACING_TRIANGLES および RAY_FLAG_CULL_FRONT_FACING_TRIANGLES は、このインスタンスには影響しません。
D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE20x2

このフラグは前面と背面の向きを反転します。アプリケーション本来の頂点の巻き順が既定と異なる場合に有用です。既定では、左手座標系のオブジェクト空間において、レイの原点から見て頂点が時計回りに並ぶ三角形が前面、反時計回りに並ぶ三角形が背面となります。

これらの巻き方向の規則はオブジェクト空間で定義されるため、インスタンス変換の影響を受けません。たとえば、行列式が負のインスタンス変換行列(ジオメトリを鏡像反転する場合など)を指定しても、そのインスタンス内の三角形の向きは変わりません。これに対して D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC で定義されるジオメトリ単位の変換は、オブジェクト空間で対応する頂点データと合成されるため、行列式が負の行列を指定すると三角形の巻き順が反転します。

D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE40x4

このインスタンスは、参照先の下位レベル高速化構造に含まれるすべてのジオメトリに対して D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE が指定されたかのように動作します。なお、この動作はレイフラグ RAY_FLAG_FORCE_NON_OPAQUE によって上書きできます。

このフラグは D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE フラグと相互排他的です。

D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE80x8

このインスタンスは、参照先の下位レベル高速化構造に含まれるいずれのジオメトリに対しても D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE が指定されなかったかのように動作します。なお、この動作はレイフラグ RAY_FLAG_FORCE_OPAQUE によって上書きできます。

このフラグは D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE フラグと相互排他的です。

D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE160x10
D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS320x20

公式ドキュメント

レイトレーシングの高速化構造インスタンスに対するフラグです。これらのフラグを使用すると、個々のインスタンスについて D3D12_RAYTRACING_GEOMETRY_FLAGS を上書きできます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS : int {
    D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16,
    D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32
} D3D12_RAYTRACING_INSTANCE_FLAGS;
[Flags]
public enum D3D12_RAYTRACING_INSTANCE_FLAGS : int
{
    D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16,
    D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32,
}
<Flags>
Public Enum D3D12_RAYTRACING_INSTANCE_FLAGS As Integer
    D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16
    D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32
End Enum
import enum

class D3D12_RAYTRACING_INSTANCE_FLAGS(enum.IntFlag):
    D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16
    D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32
// D3D12_RAYTRACING_INSTANCE_FLAGS (flags)
pub const D3D12_RAYTRACING_INSTANCE_FLAG_NONE: i32 = 0;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE: i32 = 1;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE: i32 = 2;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE: i32 = 4;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE: i32 = 8;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE: i32 = 16;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS: i32 = 32;
// D3D12_RAYTRACING_INSTANCE_FLAGS
const (
	D3D12_RAYTRACING_INSTANCE_FLAG_NONE int32 = 0
	D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE int32 = 1
	D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE int32 = 2
	D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE int32 = 4
	D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE int32 = 8
	D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE int32 = 16
	D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS int32 = 32
)
const
  D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0;
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1;
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2;
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4;
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8;
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16;
  D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32;
// D3D12_RAYTRACING_INSTANCE_FLAGS
pub const D3D12_RAYTRACING_INSTANCE_FLAG_NONE: i32 = 0;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE: i32 = 1;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE: i32 = 2;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE: i32 = 4;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE: i32 = 8;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE: i32 = 16;
pub const D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS: i32 = 32;
const
  D3D12_RAYTRACING_INSTANCE_FLAG_NONE* = 0
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE* = 1
  D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE* = 2
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE* = 4
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE* = 8
  D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE* = 16
  D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS* = 32
enum D3D12_RAYTRACING_INSTANCE_FLAGS : int {
    D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 1,
    D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 2,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 4,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 8,
    D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 16,
    D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 32,
}
#define global D3D12_RAYTRACING_INSTANCE_FLAG_NONE                            0x0
#define global D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE           0x1
#define global D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE 0x2
#define global D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE                    0x4
#define global D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE                0x8
#define global D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE               0x10
#define global D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS                    0x20
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。