35 lines
972 B
Plaintext
35 lines
972 B
Plaintext
|
Shader "RayTracing/StandardMaterial"
|
||
|
{
|
||
|
SubShader
|
||
|
{
|
||
|
Pass
|
||
|
{
|
||
|
Name "RayTracing"
|
||
|
|
||
|
HLSLPROGRAM
|
||
|
|
||
|
#define UNIFIED_RT_BACKEND_HARDWARE
|
||
|
#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/Bindings.hlsl"
|
||
|
|
||
|
#pragma raytracing test
|
||
|
|
||
|
struct AttributeData
|
||
|
{
|
||
|
float2 barycentrics;
|
||
|
};
|
||
|
|
||
|
[shader("closesthit")]
|
||
|
void ClosestHitMain(inout UnifiedRT::Hit payload : SV_RayPayload, AttributeData attribs : SV_IntersectionAttributes)
|
||
|
{
|
||
|
payload.instanceID = InstanceID();
|
||
|
payload.primitiveIndex = PrimitiveIndex();
|
||
|
payload.uvBarycentrics = attribs.barycentrics;
|
||
|
payload.hitDistance = RayTCurrent();
|
||
|
payload.isFrontFace = (HitKind() == HIT_KIND_TRIANGLE_FRONT_FACE);
|
||
|
}
|
||
|
|
||
|
ENDHLSL
|
||
|
}
|
||
|
}
|
||
|
}
|