Scheme isosurface

Nu kan man rendere isosurfaces defineret ved en Scheme-funktion. En isosurface er overfladen defineres ved en vilkårlig ℝ3 → ℝ: f(x,y,z) = c funktion. Nu kan denne funktion f skrives direkte i Scheme og C++-rendereren kalder så tilbage til denne.

Nedenstående er en rendering af en formel fra Mathworld.

Dette objekt skrives således i Scheme.

; Chair formula (define (iso-chair k a b x y z) (- (square (+ (square x) (square y) (square z) (- (* a k k)))) (* b (- (square (- z k)) (* 2 x x)) (- (square (+ z k)) (* 2 y y ))))) ; Callback function (define (iso-func x y z) (iso-chair 5 0.95 0.8 x y z)) ; Surface definition (make-isosurface iso-func ; function '(-5 -5 -5) ; bound min '(5 5 5) ; bound max 0.0 ; iso-value 500 ; steps 0.000001 ; accuracy chrome)