Still distracted, tried using the new (voxels->blobby) command to use the marching cubes algo in fluxus to mesh the feedback into a solid shape. The code is posted below.
(clear)
; make some voxels
(define vx (build-voxels 50 50 50))
; do the feedback
(for ((i (in-range 0 40)))
(with-primitive vx ; not sure what's happening here
(voxels-sphere-influence (vector 0 0 0) (vector 1 1 1) 0.2)
(voxels-calc-gradient) ; <- probably repeated application of this...
(voxels-point-light (vector 0 0 0) (vmul (vector 1 1 1) 0.5)))) ; <- and then this does the trick
; make a blobby from the resulting voxels
(define bb (voxels->blobby vx))
(destroy vx) ; dont need the voxels anymore
; convert to polygons
(define pb (with-state
(scale 5)
(blobby->poly bb)))
(destroy bb) ; don't need the blobby any more
; calculate normals and make shiny
(with-primitive pb
(recalc-normals 1)
(shinyness 50)
(specular (vector 1 1 1)))
; slap on some lights
(light-diffuse 0 (vector 0.1 0.1 0.1))
(light-specular 0 (vector 0 0 0))
(let ((l (make-light 'point 'free)))
(light-diffuse l (vector 1 1 1))
(light-position l (vector 0 30 10))
(light-specular l (vector 1 1 1)))
(let ((l (make-light 'point 'free)))
(light-diffuse l (vector 0 0 0.6))
(light-position l (vector 0 -50 50))
(light-specular l (vector 0 1 1)))
(clear-colour 0.5)


Leave a Reply