#version 3.7; // Fisheye camera camera { spherical location <0,0,0> up y right image_width*x/image_height angle 360 sky <0,0,1> look_at <0,1,0> } global_settings { ambient_light rgb <1,1,1> assumed_gamma 1.0 } background { color rgb <0,0,0> } // Don't use camera light when scene lights are on #if (frame_number < 3) light_source { <0,0,0> color rgb <1,1,1> } #end // Pure texture finish, no shading #declare thefinish = finish { ambient 1 diffuse 0 specular 0 } // Radius of the equirectangular sphere, simply a large number #declare RWORLD = 100; // Equirectangular sphere, rotated to match origin sphere { <0,0,0>, RWORLD hollow texture { pigment { image_map { png "masked.png" once interpolate 2 map_type 1 } } finish { thefinish } } rotate <90,0,0> rotate <0,0,-90> scale <-1,1,1> no_shadow } // Ground plane, checker for simple replacement #declare H = -52.5; // Depth, the largest value that doesn't clip image features #if (frame_number = 1) plane { <0,0,1>, 0 texture { pigment { checker color rgb <0.8,0.2,0.2> color rgb <0.2,0.2,0.8> } finish { diffuse 1 ambient 0.2 specular 0 } normal { granite 0.2 scale 1 } scale 10 } translate <0,0,H> } #end // Place a light at a given longitude and latitude, read off equirectangular #macro MakeLight(longitude,latitude,CC) union { light_source { 0.99*RWORLD*vnormalize(<0,1,0>) color rgb CC } sphere { 1.1*RWORLD*<0,1,0>, 2 // Change radius t0 < 1 to make visible texture { pigment { colour rgb <0,0,1> } finish { ambient 1 diffuse 0 specular 0 } } } rotate rotate <0,0,longitude> } #end // Ground plane for textured surface #if (frame_number >= 2) plane { <0,0,1>, 0 texture { pigment { image_map { png "tex3.png" interpolate 2 map_type 0 } } #if (frame_number = 2) finish { diffuse 0 ambient 1 specular 0 } #else finish { diffuse 0.6 ambient 0.2 specular 0.4 } #end scale 10 } translate <0,0,H> } #if (frame_number = 3) MakeLight(86,52,0.6*<1,1,0.5>) // Main ceiling light MakeLight(-86,45,0.6*<1,1,0.5>) // Second ceiling light MakeLight(-13,10,0.7*<1,1,1>) // Window 1 MakeLight(28,10,0.7*<1,1,1>) // Window 2 right //MakeLight(-42,10,<1,1,1>) // Window 3 left //MakeLight(54,10,<1,1,1>) // Window 4 right #end #end