From c701013425265261076933d6b32f3353f61944cd Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 12 Oct 2023 12:20:34 -0700 Subject: Add HitObject.GetWorldToObject. (#3273) * Add HitObject.GetWorldToObject. * fix. --------- Co-authored-by: Yong He --- source/slang/hlsl.meta.slang | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'source') 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() -- cgit v1.2.3