High-performance ray-triangle intersection engine with BVH acceleration for CPU and GPU.
- Fast BVH acceleration for ray-triangle intersection
- CPU and GPU support via KernelAbstractions.jl
- Analysis tools: centroid calculation, illumination analysis, view factors for radiosity
- Makie integration for visualization
using Pkg
Pkg.add(url="https://github.com/JuliaGeometry/Raycore.jl")using Raycore, GeometryBasics, LinearAlgebra
# Create geometry
sphere = Tesselation(Sphere(Point3f(0, 0, 2), 1.0f0), 20)
# Build BVH acceleration structure
bvh = BVHAccel([sphere])
# Cast rays and find intersections
ray = Ray(o=Point3f(0, 0, 0), d=Vec3f(0, 0, 1))
hit_found, triangle, distance, bary_coords = closest_hit(bvh, ray)
if hit_found
hit_point = ray.o + ray.d * distance
println("Hit at distance $distance: $hit_point")
end# Calculate scene centroid from a viewing direction
viewdir = normalize(Vec3f(0, 0, -1))
hitpoints, centroid = get_centroid(bvh, viewdir)
# Analyze illumination
illumination = get_illumination(bvh, viewdir)
# Compute view factors for radiosity
vf_matrix = view_factors(bvh; rays_per_triangle=1000)- Full API Documentation
- Ray Tracing Tutorial - Build a complete ray tracer from scratch
