From 195593cc9b42205922b417e2de6c0db29ef1df35 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Thu, 12 Mar 2009 03:23:10 +0000 Subject: [PATCH] updated .todo, added scenes/die.fart which illustrates boolean object problem where continuation rays starting in the middle of a boolean object do not realize that fact git-svn-id: svn://anubis/fart/trunk@213 7f9b0f55-74a9-4bce-be96-3c2cd072584d --- .todo | 2 + scenes/die.fart | 138 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 scenes/die.fart diff --git a/.todo b/.todo index dd7ca1d..2315ed4 100644 --- a/.todo +++ b/.todo @@ -4,12 +4,14 @@ FART To-Do List High Priority: - Add distribution infrastructure - Multi-threading + - Rework booleans to base them on regions instead of in/out for each side Medium Priority: - Shape definitions / reusability - Scene file pre-parser to allow includes, macros, and comments - Vim syntax file - Add jitter parameter to lights to effect soft shadow edges + - Allow >2 sub-shapes in boolean shape definitions in scene files Low Priority: - Refraction diff --git a/scenes/die.fart b/scenes/die.fart new file mode 100644 index 0000000..1c4e82d --- /dev/null +++ b/scenes/die.fart @@ -0,0 +1,138 @@ + +scene +{ + camera + { + position <1.5, -2.5, 1.5> + look_at <0, 0, 0> + } + + light + { + position <10, 4, 10> + } + + plane + { + position <0, 0, 1>, 0.501 + } + + union + { + union { + union { + box { size <1, 0.8, 0.8> } + union { + box { size <0.8, 1, 0.8> } + box { size <0.8, 0.8, 1> } + } + } + union { + union { + union { + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, 0.4, -0.4> + } + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, -0.4, -0.4> + } + } + union { + cyl { + size <0.1, 0.1, 0.8> + translate <-0.4, 0.4, -0.4> + } + cyl { + size <0.1, 0.1, 0.8> + translate <-0.4, -0.4, -0.4> + } + } + } + union { + union { + union { + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, -0.4, 0.4> + rotate -90, <1, 0, 0> + } + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, -0.4, -0.4> + rotate -90, <1, 0, 0> + } + } + union { + cyl { + size <0.1, 0.1, 0.8> + translate <-0.4, -0.4, 0.4> + rotate -90, <1, 0, 0> + } + cyl { + size <0.1, 0.1, 0.8> + translate <-0.4, -0.4, -0.4> + rotate -90, <1, 0, 0> + } + } + } + union { + union { + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, -0.4, 0.4> + rotate -90, <0, 1, 0> + } + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, -0.4, -0.4> + rotate -90, <0, 1, 0> + } + } + union { + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, 0.4, 0.4> + rotate -90, <0, 1, 0> + } + cyl { + size <0.1, 0.1, 0.8> + translate <0.4, 0.4, -0.4> + rotate -90, <0, 1, 0> + } + } + } + } + } + } + union { + union { + union { + sphere { radius 0.1 translate <0.4, 0.4, 0.4> } + sphere { radius 0.1 translate <0.4, 0.4, -0.4> } + } + union { + sphere { radius 0.1 translate <0.4, -0.4, 0.4> } + sphere { radius 0.1 translate <0.4, -0.4, -0.4> } + } + } + union { + union { + sphere { radius 0.1 translate <-0.4, 0.4, 0.4> } + sphere { radius 0.1 translate <-0.4, 0.4, -0.4> } + } + union { + sphere { radius 0.1 translate <-0.4, -0.4, 0.4> } + sphere { radius 0.1 translate <-0.4, -0.4, -0.4> } + } + } + } + + material + { + color <1, 0.2, 1> + transparency 0.5 + } + } +}