Parametriske overflader

Har kodet understøttelse for parametriske overflader. Dette er overflader defineret ved en vilkårlig kontinuert funktion f(u,v) → ℝ3 hvor u,v tilhører [0,1]×[0,1]. Funktionen kan defineres i Scheme og bruges via callback. Overfladen konverteres implicit til et mesh af trekanter.

Ovenstående er Seashell overfladen defineret således i Scheme:

; Seashell parametrization (define (seashell-func u01 v01) (let* ((u (* u01 8 PI)) (v (* v01 2 PI)) (e6 (exp (/ u (* 6 PI)))) (e3 (exp (/ u (* 3 PI)))) (c (cos (* 0.5 v)))) (list (* 2 (- 1 e6) (cos u) c c) (* 2 (- e6 1) (sin u) c c) (- 1 e3 (sin v) (* -1 e6 (sin v))) ))) ; Append surface to scene (append! scene (list (make-parametrized-surface seashell-func 100 100 #f #f tiles-material)))