#version 3.7; global_settings { assumed_gamma 1.0 max_trace_level 8 } background { color rgb <0.92, 0.95, 1.0> } camera { location <0, 1.7, -6.2> look_at <0, 1.35, 0> angle 35 } light_source { <-6, 8, -8> color rgb <1, 1, 1> } light_source { <6, 5, -2> color rgb <0.55, 0.60, 0.70> } #declare ToonFinish = finish { ambient 0.15 diffuse 0.85 phong 0.0 specular 0.15 roughness 0.06 } #declare SkinTex = texture { pigment { color rgb <1.00, 0.83, 0.72> } finish { ToonFinish } } #declare ShirtTex = texture { pigment { color rgb <0.20, 0.55, 0.95> } finish { ToonFinish } } #declare PantsTex = texture { pigment { color rgb <0.15, 0.20, 0.30> } finish { ToonFinish } } #declare ShoeTex = texture { pigment { color rgb <0.08, 0.08, 0.09> } finish { ToonFinish } } #declare HairTex = texture { pigment { color rgb <0.12, 0.07, 0.03> } finish { ToonFinish } } #declare WhiteTex = texture { pigment { color rgb <1,1,1> } finish { ToonFinish } } #declare EyeTex = texture { pigment { color rgb <0.05, 0.12, 0.18> } finish { ToonFinish } } #declare MouthTex = texture { pigment { color rgb <0.25, 0.07, 0.08> } finish { ToonFinish } } #declare GroundTex = texture { pigment { color rgb <0.90, 0.90, 0.93> } finish { ambient 0.1 diffuse 0.9 specular 0.05 roughness 0.1 } } plane { y, 0 texture { GroundTex } } #declare SoftShadow = 0.0; #declare HumanCartoon = union { // Torso sphere { <0, 1.35, 0>, 0.52 scale <0.90, 1.15, 0.65> texture { ShirtTex } } // Belly hint sphere { <0, 1.20, 0.05>, 0.40 scale <0.95, 0.95, 0.70> texture { ShirtTex } } // Neck cylinder { <0, 1.82, 0>, <0, 1.97, 0>, 0.13 texture { SkinTex } } // Head sphere { <0, 2.35, 0>, 0.50 scale <1.0, 1.05, 0.95> texture { SkinTex } } // Hair cap difference { sphere { <0, 2.42, 0>, 0.52 scale <1.02, 0.95, 1.0> } box { <-2, -2, -2>, <2, 2.33, 2> } texture { HairTex } translate <0, 0, 0> } // Hair tuft cone { <0.10, 2.88, -0.05>, 0.15, <0.30, 3.08, -0.20>, 0.00 texture { HairTex } } // Eyes (cartoon ovals) sphere { <-0.16, 2.40, -0.42>, 0.11 scale <1.1, 1.4, 0.6> texture { WhiteTex } } sphere { < 0.16, 2.40, -0.42>, 0.11 scale <1.1, 1.4, 0.6> texture { WhiteTex } } sphere { <-0.15, 2.40, -0.48>, 0.055 scale <1.0, 1.2, 0.6> texture { EyeTex } } sphere { < 0.17, 2.40, -0.48>, 0.055 scale <1.0, 1.2, 0.6> texture { EyeTex } } // Nose sphere { <0.00, 2.26, -0.47>, 0.07 scale <0.75, 0.55, 0.9> texture { SkinTex } } // Smile (simple torus) torus { 0.17, 0.03 rotate <90, 0, 0> texture { MouthTex } translate <0.00, 2.12, -0.45> scale <1.1, 1.0, 1.0> } // Hips / pelvis sphere { <0, 0.98, 0>, 0.40 scale <0.95, 0.75, 0.70> texture { PantsTex } } // Legs cylinder { <-0.18, 0.92, 0>, <-0.22, 0.40, 0.02>, 0.16 texture { PantsTex } } cylinder { < 0.18, 0.92, 0>, < 0.24, 0.42, 0.02>, 0.16 texture { PantsTex } } // Knees sphere { <-0.22, 0.40, 0.02>, 0.17 texture { PantsTex } } sphere { < 0.24, 0.42, 0.02>, 0.17 texture { PantsTex } } // Shins cylinder { <-0.22, 0.40, 0.02>, <-0.22, 0.10, 0.05>, 0.14 texture { PantsTex } } cylinder { < 0.24, 0.42, 0.02>, < 0.24, 0.12, 0.05>, 0.14 texture { PantsTex } } // Shoes union { sphere { <-0.22, 0.08, 0.12>, 0.18 scale <1.2, 0.6, 1.6> } sphere { <-0.22, 0.06, -0.02>, 0.14 scale <1.0, 0.55, 1.1> } texture { ShoeTex } } union { sphere { <0.24, 0.10, 0.12>, 0.18 scale <1.2, 0.6, 1.6> } sphere { <0.24, 0.08, -0.02>, 0.14 scale <1.0, 0.55, 1.1> } texture { ShoeTex } } // Arms (friendly pose) // Upper arms cylinder { <-0.52, 1.58, 0.00>, <-0.95, 1.35, -0.05>, 0.14 texture { ShirtTex } } cylinder { < 0.52, 1.58, 0.00>, < 0.92, 1.40, -0.02>, 0.14 texture { ShirtTex } } // Elbows sphere { <-0.95, 1.35, -0.05>, 0.15 texture { ShirtTex } } sphere { < 0.92, 1.40, -0.02>, 0.15 texture { ShirtTex } } // Forearms (skin) cylinder { <-0.95, 1.35, -0.05>, <-1.05, 1.10, -0.35>, 0.12 texture { SkinTex } } cylinder { < 0.92, 1.40, -0.02>, < 1.08, 1.15, -0.28>, 0.12 texture { SkinTex } } // Hands (mittens) sphere { <-1.05, 1.08, -0.38>, 0.16 scale <1.1, 0.8, 1.2> texture { SkinTex } } sphere { < 1.10, 1.13, -0.30>, 0.16 scale <1.1, 0.8, 1.2> texture { SkinTex } } // Simple thumb bumps sphere { <-0.95, 1.05, -0.45>, 0.06 texture { SkinTex } } sphere { < 1.02, 1.10, -0.38>, 0.06 texture { SkinTex } } // Overall scale/position translate <0, 0.00, 0> }; object { HumanCartoon } // subtle contact shadow blob to ground (fast) blob { threshold 0.6 sphere { <-0.22, 0.02, 0.05>, 0.35, 1.0 } sphere { < 0.24, 0.02, 0.05>, 0.35, 1.0 } scale <1.2, 0.25, 1.2> texture { pigment { color rgbt <0.0, 0.0, 0.0, 0.75> } finish { ambient 1 diffuse 0 } } translate <0, 0.00, 0.05> }