//-f #version 3.7; global_settings { assumed_gamma 2.2 max_trace_level 20 } //global_settings camera { location <0, 0, -4> right (16/9) * x look_at <0, 0, 0> } //camera #include "colors.inc" #local LightingAngle_X = 5; #local LightingAngle_Y = 25; light_source {<0, 0, -200> color White * 1.7 rotate LightingAngle_X * x rotate LightingAngle_Y * y} #local TextColor = texture { pigment {color Khaki} finish { brilliance 3 diffuse .75 metallic 1 specular .65 roughness 1/120 reflection .15 } //finish } //texture /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #macro MakeCharacter (NPoints, HeightFactor, BaseRadius, UseLastMinsAndMaxs) #local MinX = 9999; #local MaxX = 0; #local MinY = 9999; #local MaxY = 0; #if (UseLastMinsAndMaxs) #ifndef (LastMinX) #error "Oh no!" #end //#ifndef #local MinX = LastMinX; #local MaxX = LastMaxX; #local MinY = LastMinY; #local MaxY = LastMaxY; #else #for (I, 0, NPoints - 1) #if (Coordinate [I].x < MinX) #local MinX = Coordinate [I].x; #end #if (Coordinate [I].x > MaxX) #local MaxX = Coordinate [I].x; #end #if (Coordinate [I].y < MinY) #local MinY = Coordinate [I].y; #end #if (Coordinate [I].y > MaxY) #local MaxY = Coordinate [I].y; #end #end //#for #declare MaxY = MaxY - MinY; #end //#if #local S = HeightFactor / MaxY; #for (I, 0, NPoints - 1) #declare Coordinate [I] = Coordinate [I] - ; #declare Coordinate [I] = * ; #end //#for sphere_sweep { b_spline NPoints #for (I, 0, NPoints - 1) , BaseRadius * Coordinate [I].z #end //#for } //sphere_sweep #undef Coordinate #declare LastMinX = MinX; #declare LastMaxX = MaxX; #declare LastMinY = MinY; #declare LastMaxY = MaxY; #end //macro MakeCharacter /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #local BaseRadius = .025; /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ #local NPoints = 35; //L #local HeightFactor = 1.45; #declare Coordinate = array [NPoints] { // <516, 451, .1>, <513, 457, .2>, <475, 485, 1>, <422, 497, 1.8>, <360, 495, 1.5>, <264, 474, 1>, <175, 450, 1.5>, <147, 447, 1.5>, <117, 448, 1.5>, <93, 454, 1>, <83, 460, 1>, <75, 473, 1>, <94, 489, 1>, <194, 490, 1>, <277, 452, 2>, <390, 328, 4>, <532, 135, 1.5>, <579, 93, 1.5>, <631, 65, 1>, <678, 56, 1>, <719, 69, 2>, <728, 104, 2>, <683, 179, 2>, <596, 255, 1>, <500, 307, 1>, <415, 334, 1>, <329, 336, 1>, <260, 313, 1.8>, <228, 272, 1.8>, <223, 236, 2.5>, <234, 201, 1.8>, <261, 167, 1>, <300, 144, .6>, <339, 137, .2>, <349, 138, .1> } //array #local Lounge = object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no)} #local NPoints = 12; //o #local HeightFactor = .71; #declare Coordinate = array [NPoints] { // <751, 508, 1>, <674, 561, 1>, <613, 525, 1.5>, <654, 435, 4>, <734, 367, 2>, <785, 359, 1>, <801, 375, 1>, <804, 399, 1>, <799, 426, 1>, <751, 508, 1>, <674, 561, 1>, <613, 525, 1> } //array #local Lounge = object { union { object {Lounge} object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no) translate <1.56, -.03, 0>} } //union } //object #local NPoints = 10; //o tail #local HeightFactor = HeightFactor; #declare Coordinate = array [NPoints] { // <804, 399, 1>, <799, 426, 1>, <771, 483, 1>, <762, 505, 1>, <773, 513, 1>, <789, 511, 1>, <806, 503, 1>, <840, 475, 1>, <869, 444, 1>, <873, 439, 1>, } //array #local Lounge = object { union { object {Lounge} object {MakeCharacter (NPoints, HeightFactor, BaseRadius, yes) translate <1.56, -.03, 0>} } //union } //object #local NPoints = 10; //u_Left #local HeightFactor = 1.62; #local Coordinate = array [NPoints] { // <876, 158, 3>, <870, 165, 3>, <622, 454, 3>, <589, 496, 2.5>, <570, 539, 1.5>, <596, 565, 1>, <636, 554, 1>, <669, 532, 1>, <707, 498, 1>, <968, 194, 1>, } //array #local Character_u_Left = object { difference { intersection { MakeCharacter (NPoints, HeightFactor, BaseRadius, no) plane {y, .75} } //intersection cylinder {<0, 0, -.2> <0, 0, .2>, .8 translate <.4, 1.48, 0>} } //difference } //object #local Lounge = object { union { object {Lounge} object {Character_u_Left translate <2.32, 0, 0>} } //union } //object #local NPoints = 16; //u_Right #local HeightFactor = HeightFactor; #local Coordinate = array [NPoints] { // <876, 158, 3>, <870, 165, 3>, <622, 454, 3>, <589, 496, 2.5>, <570, 539, 1.5>, <596, 565, 1>, <636, 554, 1>, <669, 532, 1>, <707, 498, 1>, <777, 419, 1>, <799, 401, 1>, <821, 399, 1>, <826, 417, 1.8>, <820, 431, 3>, <669, 647, 3>, <664, 654, 3> } //array #local Character_u_Right = object { difference { intersection { MakeCharacter (NPoints, HeightFactor, BaseRadius, yes) plane {y, .8} } //intersection cylinder {<0, 0, -.2> <0, 0, .2>, .8 translate <.4, 1.48, 0>} cylinder {<0, 0, -.2> <0, 0, .2>, .8 translate <.62, -.78, 0>} } //difference } //object #local Lounge = object { union { object {Lounge} object {Character_u_Right translate <2.83, 0, 0>} } //union } //object #local NPoints = 21; //n #local HeightFactor = .78; #local Coordinate = array [NPoints] { // <175, 529, 1>, <179, 524, 1>, <219, 470, 1>, <259, 420, 1>, <308, 367, 1>, <381, 302, 1>, <419, 284, 1>, <445, 288, 1.3>, <453, 310, 1.5>, <447, 330, 1.8>, <394, 400, 3>, <348, 459, 1.8>, <344, 481, 1.5>, <355, 492, 1>, <374, 494, 1>, <403, 488, 1>, <437, 470, 1>, <484, 429, 1> <567, 357, 1>, <623, 309, 1>, <671, 287, 1> } //array #local Character_n = object { difference { object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no) translate <3.42, -.1, 0>} box {<0, 0, -.2> <.3, .25, .2> translate <3.27, -.2, 0>} } //difference } //object #local Lounge = object { union { object {Lounge} object {Character_n} } //union } //object #local NPoints = 18; //g_Left #local HeightFactor = .66; #local Coordinate = array [NPoints] { // <662, 408, 1>, <597, 468, 1>, <553, 491, 1>, <532, 493, 1>, <515, 480, 1.5>, <512, 457, 2>, <525, 414, 3>, <567, 357, 3>, <623, 309, 2>, <671, 287, 1.5>, <698, 285, 1>, <716, 291, 1>, <725, 306, 1>, <720, 331, 1>, <702, 361, 1>, <662, 408, 1>, <597, 468, 1>, <553, 491, 1> } //array #local Lounge = object { union { object {Lounge} object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no) translate <4.5, .015, 0>} } //union } //object #local NPoints = 21; //g_Right #local HeightFactor = 1.7; #local Coordinate = array [NPoints] { // <836, 215, 2.4>, <829, 224, 2.4>, <574, 551, 2.4>, <535, 600, 2.4>, <490, 654, 1.8>, <430, 711, 1.5>, <384, 738, 1>, <353, 744, 1>, <328, 740, 1>, <319, 723, 1>, <330, 697, 1>, <364, 666, 1>, <417, 634, 1>, <518, 586, 1>, <601, 552, 1>, <661, 518, 1>, <751, 450, 1>, <800, 402, 1>, <818, 385, 1>, <829, 372, 1>, <842, 361, 1> } //array #local Character_g_Right = object { difference { object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no) translate <3.88, -.8, 0>} cylinder {<0, 0, -.2> <0, 0, .2>, .8 translate <5.36, 1.48, 0>} } //difference } //object #local Lounge = object { union { object {Lounge} object {Character_g_Right} } //union } //object #local NPoints = 22; //e #local HeightFactor = .66; #local Coordinate = array [NPoints] { // <1049, 370, .1>, <1046, 373, .6>, <1027, 396, 1>, <963, 457, 1>, <910, 486, 1>, <887, 492, 1>, <867, 495, 1>, <838, 491, 1.5>, <817, 470, 2>, <818, 424, 2.5>, <848, 367, 3>, <884, 330, 3>, <924, 299, 2>, <961, 284, 1.2>, <980, 284, 1.3>, <997, 302, 1.5>, <985, 329, 1.8>, <960, 350, 1.5>, <900, 381, 1>, <857, 397, 1>, <827, 406, 1>, <820, 408, 1> } //array #local Lounge = object { union { object {Lounge} object {MakeCharacter (NPoints, HeightFactor, BaseRadius, no) translate <5.47, .015, 0>} } //union } //object /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ object {Lounge translate <-3.1, -.5, 0> texture {TextColor}} light_group { plane {z, 120 inverse texture {pigment {color White} finish {emission .9}}} global_lights off } //light_group