class Hitable::SAHBVHNode

Overview

A special kind of BVH, trying to minimize the overlap of the left and right bounding boxes. Construction takes longer but the resulting BVH is (probably) faster

Defined in:

hitables/sah_bvh.cr

Constant Summary

BUCKETS = 12

Constructors

Instance methods inherited from class Hitable::BVHNode

benchmark benchmark, bounding_box : AABB bounding_box, hit(ray) hit, left : BoundedHitable left, right : BoundedHitable right

Constructor methods inherited from class Hitable::BVHNode

new(list : Array(BoundedHitable)) new

Instance methods inherited from class BoundedHitable

bounding_box : AABB bounding_box, bounding_box=(bounding_box : AABB) bounding_box=

Constructor methods inherited from class BoundedHitable

new new

Instance methods inherited from class Hitable

area : Float64 area, area_light : Light? area_light, area_light=(area_light : Light?) area_light=, hit(ray : Ray) : HitRecord? hit, pdf(point : Point, wi : Vector) : Float64
pdf(point : Point) : Float64
pdf
, rotate(axis : Vector, degrees : Float64) : Hitable rotate, rotate_x(degrees : Float64) : Hitable rotate_x, rotate_y(degrees : Float64) : Hitable rotate_y, rotate_z(degrees : Float64) : Hitable rotate_z, sample(origin) : ::Tuple(Point, Normal)
sample : ::Tuple(Point, Normal)
sample
, scale(size : Float64) : Hitable scale, translate(offset : Vector) : Hitable translate

Constructor Detail

def self.new(list) #

[View source]