/******************************************************************************/ /* Project - MudBun Publisher - Long Bunny Labs http://LongBunnyLabs.com Author - Ming-Lun "Allen" Chou http://AllenChou.net */ /******************************************************************************/ #ifndef MUDBUN_CUSTOM_RAY_TRACED_VOXELS #define MUDBUN_CUSTOM_RAY_TRACED_VOXELS #include "../Shader/Math/Geometry.cginc" // return true if the ray should hit the voxel bool ray_traced_voxels_hit_func ( float3 ro, // ray origin float3 rd, // ray direction (normalized) float3 c, // center of voxel float h, // half size of voxel out float3 hitPos, // position of ray hit out float3 hitNorm // normal at hit position ) { hitPos = 0.0f; hitNorm = 0.0f; // example: box float t = ray_box_intersect(ro, rd, c, h).x; if (t >= -1e-3f) { hitPos = ro + t * rd; hitNorm = box_gradient(hitPos, c, h); return true; } return false; } #endif