Extra scenes Kevin Beason 12/04/2008 ====================================================================== sky ====================================================================== // Idea stolen from Picogen http://picogen.org/ by phresnel/greenhybrid Vec Cen(50,40.8,-860); Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 Sphere(1600, Vec(1,0,2)*3000, Vec(1,.9,.8)*1.2e1*1.56*2,Vec(), DIFF), // sun Sphere(1560, Vec(1,0,2)*3500,Vec(1,.5,.05)*4.8e1*1.56*2, Vec(), DIFF), // horizon sun2 // Sphere(10000,Cen+Vec(0,0,-200), Vec(0.0627, 0.188, 0.569)*6e-2*8, Vec(.7,.7,1)*.25, DIFF), // sky Sphere(10000,Cen+Vec(0,0,-200), Vec(0.00063842, 0.02001478, 0.28923243)*6e-2*8, Vec(.7,.7,1)*.25, DIFF), // sky Sphere(100000, Vec(50, -100000, 0), Vec(),Vec(.3,.3,.3),DIFF), // grnd Sphere(110000, Vec(50, -110048.5, 0), Vec(.9,.5,.05)*4,Vec(),DIFF),// horizon brightener Sphere(4e4, Vec(50, -4e4-30, -3000), Vec(),Vec(.2,.2,.2),DIFF),// mountains // Sphere(3.99e4, Vec(50, -3.99e4+20.045, -3000), Vec(),Vec(.7,.7,.7),DIFF),// mountains snow Sphere(26.5,Vec(22,26.5,42), Vec(),Vec(1,1,1)*.596, SPEC), // white Mirr Sphere(13,Vec(75,13,82), Vec(),Vec(.96,.96,.96)*.96, REFR),// Glas Sphere(22,Vec(87,22,24), Vec(),Vec(.6,.6,.6)*.696, REFR) // Glas2 }; ====================================================================== nightsky ====================================================================== Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 // rad pos emis col refl // Sphere(1e3, Vec(1,1,-2)*1e4, Vec(1,1,1)*5e2, Vec(), DIFF), // moon // Sphere(3e2, Vec(.6,.2,-2)*1e4, Vec(1,1,1)*5e3, Vec(), DIFF), // // moon Sphere(2.5e3, Vec(.82,.92,-2)*1e4, Vec(1,1,1)*.8e2, Vec(), DIFF), // moon // Sphere(2.5e4, Vec(50, 0, 0), Vec(1,1,1)*1e-3, Vec(.2,.2,1)*0.0075, DIFF), // sky // Sphere(2.5e4, Vec(50, 0, 0), Vec(0.114, 0.133, 0.212)*1e-2, Vec(.216,.384,1)*0.0007, DIFF), // sky Sphere(2.5e4, Vec(50, 0, 0), Vec(0.114, 0.133, 0.212)*1e-2, Vec(.216,.384,1)*0.003, DIFF), // sky Sphere(5e0, Vec(-.2,0.16,-1)*1e4, Vec(1.00, 0.843, 0.698)*1e2, Vec(), DIFF), // star Sphere(5e0, Vec(0, 0.18,-1)*1e4, Vec(1.00, 0.851, 0.710)*1e2, Vec(), DIFF), // star Sphere(5e0, Vec(.3, 0.15,-1)*1e4, Vec(0.671, 0.780, 1.00)*1e2, Vec(), DIFF), // star Sphere(3.5e4, Vec(600,-3.5e4+1, 300), Vec(), Vec(.6,.8,1)*.01, REFR), //pool Sphere(5e4, Vec(-500,-5e4+0, 0), Vec(), Vec(1,1,1)*.35, DIFF), //hill Sphere(16.5, Vec(27,0,47), Vec(), Vec(1,1,1)*.33, DIFF), //hut Sphere(7, Vec(27+8*sqrt(2),0,47+8*sqrt(2)),Vec(), Vec(1,1,1)*.33, DIFF), //door Sphere(500, Vec(-1e3,-300,-3e3), Vec(), Vec(1,1,1)*.351, DIFF), //mnt Sphere(830, Vec(0, -500,-3e3), Vec(), Vec(1,1,1)*.354, DIFF), //mnt Sphere(490, Vec(1e3, -300,-3e3), Vec(), Vec(1,1,1)*.352, DIFF), //mnt }; ====================================================================== island ====================================================================== // Inspired by cover of "Time Planet Earth: An Illustrated History" Vec Cen(50,-20,-860); Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 // rad pos emis col refl Sphere(160, Cen+Vec(0, 600, -500),Vec(1,1,1)*2e2, Vec(), DIFF), // sun Sphere(800, Cen+Vec(0,-880,-9120),Vec(1,1,1)*2e1, Vec(), DIFF), // horizon Sphere(10000,Cen+Vec(0,0,-200), Vec(0.0627, 0.188, 0.569)*1e0, Vec(1,1,1)*.4, DIFF), // sky // Sphere(1000, Cen+Vec(0,-1080,-8020),Vec(1,1,1)*2e1, Vec(), DIFF), // horizon // Sphere(10000,Cen+Vec(0,0,-200), Vec(0.0627, 0.188, 0.569)*1e0, Vec(1,1,1)*.3, DIFF), // sky // Sphere(800, Cen+Vec(0,-720,-200),Vec(), Vec(0, 0.588, 0.8), REFR), // water // Sphere(800, Cen+Vec(0,-720,-200),Vec(), Vec(0.106, 0.725, 0.949), REFR), // water // Sphere(800, Cen+Vec(0,-720,-200),Vec(), Vec(0.110, 0.988, 0.945), REFR), // water Sphere(800, Cen+Vec(0,-720,-200),Vec(), Vec(0.110, 0.898, 1.00)*.996, REFR), // water Sphere(790, Cen+Vec(0,-720,-200),Vec(), Vec(.4,.3,.04)*.6, DIFF), // earth Sphere(325, Cen+Vec(0,-255,-50), Vec(), Vec(.4,.3,.04)*.8, DIFF), // island Sphere(275, Cen+Vec(0,-205,-33), Vec(), Vec(.02,.3,.02)*.75, DIFF), // grass }; ====================================================================== vista ====================================================================== Vec Cen(50,-20,-860); Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 // rad pos emis col refl Sphere(8000, Cen+Vec(0,-8000,-900),Vec(1,.4,.1)*5e-1, Vec(), DIFF), // sun Sphere(1e4, Cen+Vec(), Vec(0.631, 0.753, 1.00)*3e-1, Vec(1,1,1)*.5, DIFF), // sky Sphere(150, Cen+Vec(-350,0, -100),Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(200, Cen+Vec(-210,0,-100), Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(145, Cen+Vec(-210,85,-100),Vec(), Vec(1,1,1)*.8, DIFF), // snow Sphere(150, Cen+Vec(-50,0,-100), Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(150, Cen+Vec(100,0,-100), Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(125, Cen+Vec(250,0,-100), Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(150, Cen+Vec(375,0,-100), Vec(), Vec(1,1,1)*.3, DIFF), // mnt Sphere(2500, Cen+Vec(0,-2400,-500),Vec(), Vec(1,1,1)*.1, DIFF), // mnt base Sphere(8000, Cen+Vec(0,-8000,200), Vec(), Vec(.2,.2,1), REFR), // water Sphere(8000, Cen+Vec(0,-8000,1100),Vec(), Vec(0,.3,0), DIFF), // grass Sphere(8 , Cen+Vec(-75, -5, 850),Vec(), Vec(0,.3,0), DIFF), // bush Sphere(30, Cen+Vec(0, 23, 825),Vec(), Vec(1,1,1)*.996, REFR), // ball Sphere(30, Cen+Vec(200,280,-400), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(237,280,-400), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(28, Cen+Vec(267,280,-400), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(40, Cen+Vec(150,280,-1000), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(187,280,-1000), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(40, Cen+Vec(600,280,-1100), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(637,280,-1100), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(-800,280,-1400), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(0,280,-1600), Vec(), Vec(1,1,1)*.8, DIFF), // clouds Sphere(37, Cen+Vec(537,280,-1800), Vec(), Vec(1,1,1)*.8, DIFF), // clouds }; ====================================================================== overlap ====================================================================== double D=50; double R=40; Sphere spheres[N];// = {//Scene: radius, position, emission, color, material Sphere(150, Vec(50+75,28,62), Vec(1,1,1)*0e-3, Vec(1,.9,.8)*.93, REFR), Sphere(28, Vec(50+5,-28,62), Vec(1,1,1)*1e1, Vec(1,1,1)*0, DIFF), Sphere(300, Vec(50,28,62), Vec(1,1,1)*0e-3, Vec(1,1,1)*.93, SPEC) }; ====================================================================== wada ====================================================================== double R=60; //double R=120; double T=30*M_PI/180.; double D=R/cos(T); double Z=60; Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 Sphere(1e5, Vec(50, 100, 0), Vec(1,1,1)*3e0, Vec(), DIFF), // sky Sphere(1e5, Vec(50, -1e5-D-R, 0), Vec(), Vec(.1,.1,.1),DIFF), //grnd Sphere(R, Vec(50,40.8,62)+Vec( cos(T),sin(T),0)*D, Vec(), Vec(1,.3,.3)*.999, SPEC), //red Sphere(R, Vec(50,40.8,62)+Vec(-cos(T),sin(T),0)*D, Vec(), Vec(.3,1,.3)*.999, SPEC), //grn Sphere(R, Vec(50,40.8,62)+Vec(0,-1,0)*D, Vec(), Vec(.3,.3,1)*.999, SPEC), //blue Sphere(R, Vec(50,40.8,62)+Vec(0,0,-1)*D, Vec(), Vec(.53,.53,.53)*.999, SPEC), //back Sphere(R, Vec(50,40.8,62)+Vec(0,0,1)*D, Vec(), Vec(1,1,1)*.999, REFR), //front // Sphere(R, Vec(50,35,Z)+Vec( cos(T),sin(T),0)*D, Vec(1,1,1)*1e-1, Vec(1,1,1)*.999, SPEC), //red // Sphere(R, Vec(50,35,Z)+Vec(-cos(T),sin(T),0)*D, Vec(1,1,1)*1e-1, Vec(1,1,1)*.999, SPEC), //grn // Sphere(R, Vec(50,35,Z)+Vec(0,-1,0)*D, Vec(1,1,1)*1e-1, Vec(1,1,1)*.999, SPEC), //blue // Sphere(R, Vec(50,35,Z)+Vec(0,0,-1)*D*1.6, Vec(1,1,1)*0e-1, Vec(0.275, 0.612, 0.949)*.999, SPEC), //back // Sphere(R, Vec(50,40.8,62)+Vec(0,0,1)*D*.2877, Vec(1,1,1)*0e-1, Vec(1,1,1)*.999, REFR), //front }; ====================================================================== wada2 ====================================================================== //double R=60; double R=120; // radius double T=30*M_PI/180.; double D=R/cos(T); //distance // double D=60; //distance // double R=D*sqrt(2); double Z=62; Vec C=Vec(0.275, 0.612, 0.949); Sphere spheres[] = {//Scene: radius, position, emission, color, material Sphere(R, Vec(50,28,Z)+Vec( cos(T),sin(T),0)*D, C*6e-2,Vec(1,1,1)*.996, SPEC), //red Sphere(R, Vec(50,28,Z)+Vec(-cos(T),sin(T),0)*D, C*6e-2,Vec(1,1,1)*.996, SPEC), //grn Sphere(R, Vec(50,28,Z)+Vec(0,-1,0)*D, C*6e-2,Vec(1,1,1)*.996, SPEC), //blue Sphere(R, Vec(50,28,Z)+Vec(0,0,-1)*R*2*sqrt(2./3.),C*0e-2,Vec(1,1,1)*.996, SPEC), //back // Sphere(1e5, Vec(50,28,Z)+Vec(0,0,1e5+170), Vec(1,1,1)*0,Vec(1,1,1)*.996, SPEC), //front // Sphere(2*R*2*sqrt(2./3.)-R*2*sqrt(2./3.)/3., Vec(50,28,Z)+Vec(0,0,-R*2*sqrt(2./3.)/3.), Vec(1,1,1)*0,Vec(1,1,1)*.3333, SPEC), //front Sphere(2*2*R*2*sqrt(2./3.)-R*2*sqrt(2./3.)/3., Vec(50,28,Z)+Vec(0,0,-R*2*sqrt(2./3.)/3.), Vec(1,1,1)*0,Vec(1,1,1)*.5, SPEC), //front }; ====================================================================== forest ====================================================================== Vec tc(0.0588, 0.361, 0.0941); Vec sc = Vec(1,1,1)*.7; Sphere spheres[] = {//Scene: radius, position, emission, color, material // center 50 40.8 62 // floor 0 // back 0 // Sphere(1e5, Vec(50, 1e5+100, 0), Vec(1,1,1)*1,Vec(),DIFF), //lite // Sphere(1e5, Vec(50, -1e5, 0), Vec(),Vec(.3,.3,.1),DIFF), //grnd // Sphere(1e5, Vec(50, 1e5+100, 0), Vec(0.761, 0.875, 1.00)*1.3,Vec(),DIFF), // //lite Sphere(1e5, Vec(50, 1e5+130, 0), Vec(1,1,1)*1.3,Vec(),DIFF), //lite Sphere(1e2, Vec(50, -1e2+2, 47), Vec(),Vec(1,1,1)*.7,DIFF), //grnd Sphere(1e4, Vec(50, -30, 300)+Vec(-sin(50*M_PI/180),0,cos(50*M_PI/180))*1e4, Vec(), Vec(1,1,1)*.99,SPEC),// mirr L Sphere(1e4, Vec(50, -30, 300)+Vec(sin(50*M_PI/180),0,cos(50*M_PI/180))*1e4, Vec(), Vec(1,1,1)*.99,SPEC),// mirr R Sphere(1e4, Vec(50, -30, -50)+Vec(-sin(30*M_PI/180),0,-cos(30*M_PI/180))*1e4,Vec(), Vec(1,1,1)*.99,SPEC),// mirr FL Sphere(1e4, Vec(50, -30, -50)+Vec(sin(30*M_PI/180),0,-cos(30*M_PI/180))*1e4, Vec(), Vec(1,1,1)*.99,SPEC),// mirr Sphere(4, Vec(50,6*.6,47), Vec(),Vec(.13,.066,.033), DIFF),//"tree" Sphere(16,Vec(50,6*2+16*.6,47), Vec(), tc, DIFF),//"tree" Sphere(11,Vec(50,6*2+16*.6*2+11*.6,47), Vec(), tc, DIFF),//"tree" Sphere(7, Vec(50,6*2+16*.6*2+11*.6*2+7*.6,47), Vec(), tc, DIFF),//"tree" Sphere(15.5,Vec(50,1.8+6*2+16*.6,47), Vec(), sc, DIFF),//"tree" Sphere(10.5,Vec(50,1.8+6*2+16*.6*2+11*.6,47), Vec(), sc, DIFF),//"tree" Sphere(6.5, Vec(50,1.8+6*2+16*.6*2+11*.6*2+7*.6,47), Vec(), sc, DIFF),//"tree" };