Hi Brandon, I'm thinking to allow for animations via two main methods: a) A "time" parameter that can be inserted in formulae to allow variation over frames. Good for simple animation. b) Allowing procedural generation of multiple frames from regular Clojure code. So you could theoretically run a fairly complex simulation while doing this generation. An open question is how much you can benefit from structural sharing of unchanging components across successive frames. My suspicion is that the answer is "quite a lot" but this needs some more thought.....
On Monday, 10 December 2012 11:46:00 UTC+8, Brandon Bloom wrote: > > Are you only interested in static scenes? Or are you interested in > simulations too? > > On Sunday, December 9, 2012 4:03:36 PM UTC-8, Mikera wrote: >> >> Hi all, >> >> I'm working on a hobby project to implement a Clojure raytracer, >> something along the lines of POV-Ray: >> https://github.com/mikera/enlight >> >> It's a a fairly preliminary stage right now, but I'm interested in ideas >> on how to create the scene description language. Roughly the objectives are: >> - Allow an intuitive, declarative definition of a 3D scene >> - Allow parts of the scene to be generated programatically (e.g. randomly >> duplicating objects!) >> - Allow mathematical functions and textures to be expressed (probably >> using clisk - https://github.com/mikera/clisk) >> - Enable the scene to be compiled down to an optimised scene graph for >> rendering >> - Be reasonably concise as a DSL >> >> I'm thinking of something like: >> >> [ >> [:camera :position [0 0 -10] :look-at [0 0 0]] ;; a camera for the >> scene >> [:sphere :radius 1 :translate [0 2 0] :colour red] ;; a translated red >> shere >> [:box [0 0 0] [1 1 1] :colour (function [1 x y])] ;; a box with a >> procedural colour function >> (for [i [2 3 4]] [:box [i 1 1] [(inc i) 2 2]]) ;; generate multiple >> boxes with a parameterised position >> ] >> >> Any thoughts / ideas / feedback? >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en