diff options
| author | Yong He <yonghe@outlook.com> | 2023-10-12 12:20:34 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-12 12:20:34 -0700 |
| commit | c701013425265261076933d6b32f3353f61944cd (patch) | |
| tree | 40c376efd7c1b7e1c7d97e1e4ff070c96784ca2e /source | |
| parent | 459572c36df1aefc5c80ee04e460efbd5c307f4a (diff) | |
Add HitObject.GetWorldToObject. (#3273)
* Add HitObject.GetWorldToObject.
* fix.
---------
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/hlsl.meta.slang | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/source/slang/hlsl.meta.slang b/source/slang/hlsl.meta.slang index 0fc6fb2a9..1d5c68a0d 100644 --- a/source/slang/hlsl.meta.slang +++ b/source/slang/hlsl.meta.slang @@ -7821,7 +7821,7 @@ float4x3 WorldToObject4x3() __target_switch { case hlsl: __intrinsic_asm "WorldToObject4x3"; - case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObject3x4EXT)"; + case GL_EXT_ray_tracing: __intrinsic_asm "(gl_WorldToObjectEXT)"; case GL_NV_ray_tracing: __intrinsic_asm "(gl_WorldToObjectNV)"; case spirv: return spirv_asm { @@ -9451,6 +9451,36 @@ struct HitObject } } + [__requiresNVAPI] + [ForceInline] + __glsl_extension(GL_EXT_ray_tracing) + float4x3 GetWorldToObject() + { + __target_switch + { + case hlsl: __intrinsic_asm ".GetWorldToObject"; + case glsl: __intrinsic_asm "hitObjectGetWorldToObjectNV($0)"; + case spirv: return spirv_asm { + result:$$float4x3 = OpHitObjectGetWorldToObjectNV &this; + }; + } + } + + [__requiresNVAPI] + [ForceInline] + __glsl_extension(GL_EXT_ray_tracing) + float4x3 GetObjectToWorld() + { + __target_switch + { + case hlsl: __intrinsic_asm ".GetObjectToWorld"; + case glsl: __intrinsic_asm "hitObjectGetObjectToWorldNV($0)"; + case spirv: return spirv_asm { + result:$$float4x3 = OpHitObjectGetObjectToWorldNV &this; + }; + } + } + /// Returns the attributes of a hit. Valid if the hit object represents a hit or a miss. [ForceInline] attr_t GetAttributes<attr_t>() |
