src/run/rtx_path_tracer/domain_layer/domain/shader/ray_tracing/ray_anyhit_shadow.rahit
#version 460
#extension GL_EXT_ray_tracing : enable
#extension GL_EXT_nonuniform_qualifier : enable
#extension GL_GOOGLE_include_directive : enable
#extension GL_EXT_scalar_block_layout : enable
#pragma shader_stage(anyhit)
#include "../common/utils.glsl"
#include "get_hit_shading_data.glsl"
bool _isTransmission(float transmission) { return transmission > 0.0; }
void main() {
uint instanceIndex = gl_InstanceID;
uint primitiveIndex = gl_PrimitiveID;
Vertex v0;
Vertex v1;
Vertex v2;
getVertices(instanceIndex, primitiveIndex, v0, v1, v2);
BSDFMaterial mat = getMaterial(instanceIndex);
vec2 uv = getUV(v0, v1, v2);
vec3 materialDiffuse;
float materialTransmission;
float materialIOR;
getMaterialDiffuseAndTransmissionAndIOR(mat, uv, materialDiffuse,
materialTransmission, materialIOR);
if (_isTransmission(materialTransmission)) {
ignoreIntersectionEXT();
} else {
terminateRayEXT();
}
}