def main(): """@Todo: DocString.""" fix = SceneFile('test.pov') fix.append(Version(3.6)) part = lg_3853 # *********************************************************************** # Settings --> After Includes to overwrite presets # *********************************************************************** # @TODO: Read from Config image_width = 1600 # @TODO: Read from Config image_height = 1200 fix.append( GlobalSettings(assumed_gamma=1.5, ambient_light=Color(rgb=Vector(1, 1, 1)))) # *********************************************************************** # Camera # *********************************************************************** fix.append( Camera(location=Vector(0, 500, 0), direction=Vector(0, 25, 0), right=x * image_width / image_height, look_at=(0.0, 0.0, 0.0))) # *********************************************************************** # Background # *********************************************************************** fix.append( SkySphere( Pigment( Gradient(y * 0.8), ColorMap({ 0.00: Color(rgb=Vector(0.6, 0.7, 1.0)), 0.70: Color(rgb=Vector(0.0, 0.1, 0.8)) }), ))) # *********************************************************************** # Light # *********************************************************************** fix.append( Union( LightSource( Vector(0, 0, 0), # light's position (translated below) Color(rgb=(1, 1, 1)), # light's color Translate(Vector(-300, 300, -300))), LightSource( Vector(0, 0, 0), # light's position (translated below) Color(rgb=Vector(1, 1, 1)), # light's color Translate(Vector(300, 300, 300))))) # *********************************************************************** # Ground plane # *********************************************************************** # fix.append( # Plane( # y, -5.01, # Pigment( # Color(rgb=Vector(0.5, 0.5, 0.5)) # ) # ) # ) fix.append( Union( Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 9, 0, 8, 45, 0, 45), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 3, 0, 8, 135, 0, 45), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -3, 0, 8, 215, 0, -45), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -9, 0, 8, 315, 0, -45), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 9, 0, 3, 45, 45, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 3, 0, 3, 45, 135, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -3, 0, 3, -45, 215, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -9, 0, 3, -45, 315, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick( part.solid(), LG_WHITE, 9, 0, -2, 45, 0, 45, ), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 3, 0, -2, 45, 0, 135), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -3, 0, -2, -45, 0, 215), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -9, 0, -2, -45, 0, 315), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick( part.solid(), LG_WHITE, 9, 0, -7, 0, 0, 0, ), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, 3, 0, -7, 90, 0, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -3, 0, -7, 180, 0, 0), Comment('**** Start 2441 Red Car Base 7 x 4 x 2/3 ****'), std_brick(part.solid(), LG_WHITE, -9, 0, -7, 270, 0, 0), )) return fix
from pov.infinite_solid.Plane import Plane from pov.language_directive.Version import Version from pov.language_directive.Include import Include from pov.other.Camera import Camera from pov.other.LightSource import LightSource from pov.texture.Finish import Finish from pov.texture.Texture import Texture from pov.texture.Pigment import Pigment from pov.texture.ColorMap import ColorMap fix = SceneFile('test.pov') fix.append(Version(3.6)) fix.append(Include('colors.inc')) fix.append( GlobalSettings(assumed_gamma=1.0) ) # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( Camera( location=Vector(0.0, 0.5, -4.0), direction=1.5 * z, right=x*image_width/image_height, look_at=Vector(0.0, 0.0, 0.0) ) )
def main(): """@Todo: DocString.""" fix = SceneFile('test.pov') fix.append(Version(3.6)) # *********************************************************************** # Settings --> After Includes to overwrite presets # *********************************************************************** # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( GlobalSettings( assumed_gamma=1.5, ambient_light=Color(rgb=Vector(1, 1, 1)) ) ) # L3P Settings # l3_version = 1.4 # Quality level, 0=BBox, 1=no refr, 2=normal, 3=studlogo, 4=stud2logo # l3_quality = lg_quality # Width of seam between two bricks # L3SW = 0.5 # L3Studs = 1 # 1=on 0=off # L3Bumps = 0 # 1=on 0=off # L3Ambient = 0.4 # L3Diffuse = 0.4 # L3Ior = 1.25 # L3NormalBumps = Normal( # bumps=0.01, # scale=20 # ) # L3NormalSlope = Normal( # bumps=0.3, # scale=0.5 # ) # At least a small seam when transparent # if L3SW: # L3SWT = L3SW # else: # L3SWT = 0.001 # *********************************************************************** # Camera # *********************************************************************** fix.append( Camera( location=Vector(5, 12, 12), direction=1.5 * z, right=x * image_width / image_height, look_at=(0.0, 5.0, 0.0) ) ) # *********************************************************************** # Background # *********************************************************************** fix.append( SkySphere( Pigment( Gradient(y), ColorMap({ 0.00: Color(rgb=Vector(0.6, 0.7, 1.0)), 0.70: Color(rgb=Vector(0.0, 0.1, 0.8)) }), ) ) ) # *********************************************************************** # Light # *********************************************************************** fix.append( # LightSource( # Vector(0, 0, 0) # light's position (translated below) # Color(rgb=(1, 1, 1) # light's color # Translate( # Vector(-3000, 3000, -3000) # ) # ) LightSource( Vector(0, 0, 0), # light's position (translated below) Color(rgb=Vector(1, 1, 1)), # light's color Translate( Vector(300, 300, 300) ) ) ) # *********************************************************************** # Ground plane # *********************************************************************** fix.append( Plane( y, -0.01, Pigment( Color(rgb=Vector(0.7, 0.5, 0.3)) ) ) ) # *********************************************************************** # Objects # *********************************************************************** # Pizza to go / Car fix.append( lg_10036_1_car.nonmoving() ) # object {set_10036_1_car_steering_wheel} # object {set_10036_1_car_schutter_l} # object {set_10036_1_car_schutter_r} # object {set_10036_1_car_sunroof} # object {set_10036_1_car_sunroof_glass} # object {set_10036_1_car_wheel_fr} # object {set_10036_1_car_wheel_fl} # object {set_10036_1_car_wheel_rr} # object {set_10036_1_car_wheel_rl} # object {set_10036_1_house_base} # object {set_10036_1_house_nonmoving fix.append( lg_10036_1_house.set_10036_1_house_nonmoving() ) # object {set_10036_1_house_oven_door} return fix
def test_scene1(self): """ Test Scene 1. Example taken from: http://www.f-lohmueller.de/pov_tut/basic/povkurs3.htm """ lsep = os.linesep ref = "#version 3.6;" + lsep ref += "global_settings {" + lsep ref += " assumed_gamma 1.0" + lsep ref += "}" + lsep ref += "#default {" + lsep ref += " finish {" + lsep ref += " ambient 0.1" + lsep ref += " diffuse 0.9" + lsep ref += " }" + lsep ref += "}" + lsep ref += "#include \"pov/tests/fixture/colors.inc\"" + lsep ref += "#include \"pov/tests/fixture/textures.inc\"" + lsep ref += "camera {" + lsep ref += " location <0.0, 1.0, -3.0>" + lsep ref += " angle 75" + lsep ref += " right <1.33333333333, 0.0, 0.0>" + lsep ref += " look_at <0.0, 1.0, 0.0>" + lsep ref += "}" + lsep ref += "light_source {" + lsep ref += " <1500, 3000, -2500>" + lsep ref += " color White" + lsep ref += "}" + lsep ref += "plane {" + lsep ref += " <0.0, 1.0, 0.0>, 1.0" + lsep ref += " texture {" + lsep ref += " pigment {" + lsep ref += " bozo" + lsep ref += " color_map {" + lsep ref += " [0.0 color rgb <0.05, 0.15, 0.45>]" + lsep ref += " [0.5 color rgb <0.05, 0.15, 0.45>]" + lsep ref += " [0.85 color rgb <0.2, 0.2, 0.2>]" + lsep ref += " [1.0 color rgb <0.5, 0.5, 0.5>]" + lsep ref += " [0.7 color rgb <1.0, 1.0, 1.0>]" + lsep ref += " }" + lsep ref += " scale <2.5, 2.5, 3.75>" + lsep ref += " translate <0.0, 0.0, 0.0>" + lsep ref += " turbulence 0.92" + lsep ref += " }" + lsep ref += " finish {" + lsep ref += " ambient 1.0" + lsep ref += " diffuse 0.0" + lsep ref += " }" + lsep ref += " }" + lsep ref += " hollow" + lsep ref += " scale 10000.0" + lsep ref += "}" + lsep ref += "fog {" + lsep ref += " color rgb <0.8, 0.8, 0.8>" + lsep ref += " turbulence 1.8" + lsep ref += " fog_offset 0.1" + lsep ref += " fog_alt 1.5" + lsep ref += " fog_type 2" + lsep ref += " distance 50.0" + lsep ref += "}" + lsep ref += "plane {" + lsep ref += " <0.0, 1.0, 0.0>, 0.0" + lsep ref += " texture {" + lsep ref += " pigment {" + lsep ref += " color rgb <0.22, 0.45, 0.0>" + lsep ref += " }" + lsep ref += " normal {" + lsep ref += " bumps 0.75" + lsep ref += " scale 0.015" + lsep ref += " }" + lsep ref += " finish {" + lsep ref += " phong 0.1" + lsep ref += " }" + lsep ref += " }" + lsep ref += "}" + lsep ref += "sphere {" + lsep ref += " <0.0, 0.0, 0.0>, 0.75" + lsep ref += " texture {" + lsep ref += " pigment {" + lsep ref += " color rgb <0.9, 0.55, 0.0>" + lsep ref += " }" + lsep ref += " finish {" + lsep ref += " phong 1.0" + lsep ref += " }" + lsep ref += " }" + lsep ref += " translate <0.85, 1.1, 0.0>" + lsep ref += "}" + lsep fix = SceneFile('test.pov') fix.append(Version(3.6)) fix.append(GlobalSettings(assumed_gamma=1.0)) fix.append(Default(Finish(ambient=0.1, diffuse=0.9))) fix.append(Include('pov/tests/fixture/colors.inc'), Include('pov/tests/fixture/textures.inc')) # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( Camera(location=Vector(0.0, 1.0, -3.0), look_at=Vector(0.0, 1.0, 0.0), right=(x * image_width / image_height), angle=75), LightSource(Vector(1500, 3000, -2500), color='White')) fix.append( Plane(Vector(0.0, 1.0, 0.0), 1.0, Texture( Pigment(ColorMap({ 0.00: Color(rgb=Vector(0.05, 0.15, 0.45)), 0.50: Color(rgb=Vector(0.05, 0.15, 0.45)), 0.70: Color(rgb=Vector(1.0, 1.0, 1.0)), 0.85: Color(rgb=Vector(0.2, 0.2, 0.2)), 1.00: Color(rgb=Vector(0.5, 0.5, 0.5)) }), bozo=True, turbulence=0.92, scale=Vector(1.0, 1.0, 1.5) * 2.5, translate=Vector(0.0, 0.0, 0.0)), Finish(ambient=1.0, diffuse=0.0)), hollow=True, scale=10000.0)) fix.append( Fog(Color(rgb=Vector(1, 1, 1)) * 0.8, fog_type=2, turbulence=1.8, fog_offset=0.1, fog_alt=1.5, distance=50.0)) fix.append( Plane( Vector(0.0, 1.0, 0.0), 0.0, Texture(Pigment(Color(rgb=Vector(0.22, 0.45, 0.0))), Normal(bumps=0.75, scale=0.015), Finish(phong=0.1))), Sphere( Vector(0.0, 0.0, 0.0), 0.75, Texture(Pigment(Color(rgb=Vector(0.9, 0.55, 0.0))), Finish(phong=1.0)), Translate(Vector(0.85, 1.1, 0.0)))) # ---------------------------------------------------- msg = '\n' + ''.join( difflib.ndiff(ref.splitlines(1), str(fix).splitlines(1))) self.assertEqual(ref, str(fix), msg)
def test_image_map_example(self): """@TODO: Apidoc.""" ref = os.linesep.join([ '#version 3.6;', '#include "pov/tests/fixture/colors.inc"', 'global_settings {', ' assumed_gamma 1.0', '}', 'camera {', ' location <0.0, 0.0, -4.0>', ' look_at <0.0, 0.0, 0.0>', ' right <1.33333333333, 0.0, 0.0>', ' direction <0.0, 0.0, 2.0>', '}', 'sky_sphere {', ' pigment {', ' color_map {', ' [0.0 color rgbft <0, 0, 0.6, 0, 0>]', ' [1.0 color rgb <1, 1, 1>]', ' }', ' gradient <0.0, 1.0, 0.0>', ' }', '}', 'light_source {', ' <0, 0, 0>', ' color rgb <1, 1, 1>', ' translate <-30, 30, -30>', '}', 'plane {', ' <0.0, 1.0, 0.0>, -1', ' texture {', ' pigment {', ' checker', ' color rgb <1, 1, 1>', ' color rgbft <0, 0, 1, 0, 0>', ' scale 0.5', ' }', ' finish {', ' reflection 0.2', ' }', ' }', '}', 'plane {', ' <0.0, 0.0, 1.0>, -1', ' texture {', ' pigment {', ' image_map {', ' png "test.png"', ' filter 0 0.8', ' filter 1 0.8', ' once', ' interpolate 2', ' }', ' translate <-0.5, -0.5, -0.0>', ' scale 2', ' }', ' finish {', ' ambient 0.3', ' }', ' }', '}', '' ]) fix = SceneFile('test.pov') fix.append(Version(3.6)) fix.append(Include('pov/tests/fixture/colors.inc')) fix.append(GlobalSettings(assumed_gamma=1.0, )) # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( Camera(location=Vector(0.0, 0.0, -4.0), direction=2 * z, right=x * image_width / image_height, look_at=Vector(0.0, 0.0, 0.0)), SkySphere( Pigment(ColorMap({ 0.0: Color(blue=0.6), 1.0: Color(rgb=Vector(1, 1, 1)) }), gradient=y)), LightSource(Vector(0, 0, 0), Color(rgb=Vector(1, 1, 1)), Translate(Vector(-30, 30, -30)))) fix.append( Plane( y, -1, Texture( Pigment(Color(rgb=Vector(1, 1, 1)), Color(blue=1), checker=True, scale=0.5), Finish(reflection=0.2))), Plane( z, -1, Texture( Pigment(ImageMap( 'png', 'test.png', Filter(0, 0.8), Filter(1, 0.8), interpolate=2, once=True, ), Translate(-0.5 * (x + y)), scale=2), Finish(ambient=0.3)))) # ---------------------------------------------------- msg = '\n' + ''.join( difflib.ndiff(ref.splitlines(1), str(fix).splitlines(1))) self.assertEqual(ref, str(fix), msg)
def test_checkered_floor_example(self): """Test examples/checkered_floor.pov.""" lsep = os.linesep ref = '#version 3.6;' + lsep ref += '#include "pov/tests/fixture/colors.inc"' + lsep ref += 'global_settings {' + lsep ref += ' assumed_gamma 1.0' + lsep ref += ' max_trace_level 5' + lsep ref += '}' + lsep ref += 'camera {' + lsep ref += ' location <0.0, 0.5, -4.0>' + lsep ref += ' look_at <0.0, 0.0, 0.0>' + lsep ref += ' right <1.33333333333, 0.0, 0.0>' + lsep ref += ' direction <0.0, 0.0, 1.5>' + lsep ref += '}' + lsep ref += 'sky_sphere {' + lsep ref += ' pigment {' + lsep ref += ' color_map {' + lsep ref += ' [0.0 color rgb <0.6, 0.7, 1.0>]' + lsep ref += ' [0.7 color rgb <0.0, 0.1, 0.8>]' + lsep ref += ' }' + lsep ref += ' gradient <0.0, 1.0, 0.0>' + lsep ref += ' }' + lsep ref += '}' + lsep ref += 'light_source {' + lsep ref += ' <0, 0, 0>' + lsep ref += ' color rgb <1, 1, 1>' + lsep ref += ' translate <-30, 30, -30>' + lsep ref += '}' + lsep ref += 'plane {' + lsep ref += ' <0.0, 1.0, 0.0>, -1' + lsep ref += ' texture {' + lsep ref += ' pigment {' + lsep ref += ' checker' + lsep ref += ' color rgb <1, 1, 1>' + lsep ref += ' color rgbft <0, 0, 1, 0, 0>' + lsep ref += ' scale 0.5' + lsep ref += ' }' + lsep ref += ' finish {' + lsep ref += ' ambient 0.1' + lsep ref += ' diffuse 0.8' + lsep ref += ' }' + lsep ref += ' }' + lsep ref += '}' + lsep ref += 'sphere {' + lsep ref += ' <0, 0, 0>, 1' + lsep ref += ' texture {' + lsep ref += ' pigment {' + lsep ref += ' color rgb <0.8, 0.8, 1.0>' + lsep ref += ' }' + lsep ref += ' finish {' + lsep ref += ' conserve_energy' + lsep ref += ' reflection {' + lsep ref += ' metallic' + lsep ref += ' 0.8' + lsep ref += ' }' + lsep ref += ' diffuse 0.3' + lsep ref += ' ambient 0.0' + lsep ref += ' specular 0.6' + lsep ref += ' }' + lsep ref += ' }' + lsep ref += '}' + lsep fix = SceneFile('test.pov') fix.append(Version(3.6)) fix.append(Include('pov/tests/fixture/colors.inc')) fix.append(GlobalSettings(assumed_gamma=1.0, max_trace_level=5)) # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( Camera(location=Vector(0.0, 0.5, -4.0), direction=1.5 * z, right=x * image_width / image_height, look_at=Vector(0.0, 0.0, 0.0)), SkySphere( Pigment(ColorMap({ 0.0: Color(rgb=Vector(0.6, 0.7, 1.0)), 0.7: Color(rgb=Vector(0.0, 0.1, 0.8)) }), gradient=y)), LightSource(Vector(0, 0, 0), Color(rgb=Vector(1, 1, 1)), Translate(Vector(-30, 30, -30)))) fix.append( Plane( y, -1, Texture( Pigment(Color(rgb=Vector(1, 1, 1)), Color(blue=1), checker=True, scale=0.5), Finish(diffuse=0.8, ambient=0.1))), Sphere((0, 0, 0), 1, Texture( Pigment(Color(rgb=Vector(0.8, 0.8, 1.0))), Finish(Reflection(0.8, metallic=True), diffuse=0.3, ambient=0.0, specular=0.6, conserve_energy=True)))) # ---------------------------------------------------- msg = '\n' + ''.join( difflib.ndiff(ref.splitlines(1), str(fix).splitlines(1))) self.assertEqual(ref, str(fix), msg)
def test_examples_basic_scene(self): """Test examples/basic_scene.pov.""" lsep = os.linesep ref = '#version 3.6;' + lsep ref += '#include "pov/tests/fixture/colors.inc"' + lsep ref += 'global_settings {' + lsep ref += ' assumed_gamma 1.0' + lsep ref += '}' + lsep ref += 'camera {' + lsep ref += ' location <0.0, 0.5, -4.0>' + lsep ref += ' look_at <0.0, 0.0, 0.0>' + lsep ref += ' right <1.33333333333, 0.0, 0.0>' + lsep ref += ' direction <0.0, 0.0, 1.5>' + lsep ref += '}' + lsep ref += 'sky_sphere {' + lsep ref += ' pigment {' + lsep ref += ' color_map {' + lsep ref += ' [0.0 color rgb <0.6, 0.7, 1.0>]' + lsep ref += ' [0.7 color rgb <0.0, 0.1, 0.8>]' + lsep ref += ' }' + lsep ref += ' gradient <0.0, 1.0, 0.0>' + lsep ref += ' }' + lsep ref += '}' + lsep ref += 'light_source {' + lsep ref += ' <0.0, 0.0, 0.0>' + lsep ref += ' color rgb <1.0, 1.0, 1.0>' + lsep ref += ' translate <-30.0, 30.0, -30.0>' + lsep ref += '}' + lsep ref += 'plane {' + lsep ref += ' <0.0, 1.0, 0.0>, -1' + lsep ref += ' pigment {' + lsep ref += ' color rgb <0.7, 0.5, 0.3>' + lsep ref += ' }' + lsep ref += '}' + lsep ref += 'sphere {' + lsep ref += ' <0.0, 0.0, 0.0>, 1.0' + lsep ref += ' texture {' + lsep ref += ' pigment {' + lsep ref += ' radial color_map {' + lsep ref += ' [0.0 color rgb <1.0, 0.4, 0.2>]' + lsep ref += ' [1.0 color rgb <1.0, 0.4, 0.2>]' + lsep ref += ' [0.66 color rgb <0.4, 1.0, 0.2>]' + lsep ref += ' [0.33 color rgb <0.2, 0.4, 1.0>]' + lsep ref += ' }' + lsep ref += ' frequency 8' + lsep ref += ' }' + lsep ref += ' finish {' + lsep ref += ' specular 0.6' + lsep ref += ' }' + lsep ref += ' }' + lsep ref += '}' + lsep fix = SceneFile('test.pov') fix.append(Version(3.6)) fix.append(Include('pov/tests/fixture/colors.inc')) fix.append(GlobalSettings(assumed_gamma=1.0)) # @TODO: Read from Config image_width = 800 # @TODO: Read from Config image_height = 600 fix.append( Camera(location=Vector(0.0, 0.5, -4.0), direction=1.5 * z, right=x * image_width / image_height, look_at=Vector(0.0, 0.0, 0.0))) fix.append( SkySphere( Pigment(ColorMap({ 0.0: Color(rgb=Vector(0.6, 0.7, 1.0)), 0.7: Color(rgb=Vector(0.0, 0.1, 0.8)) }), gradient=y)), LightSource((0.0, 0.0, 0.0), Color(rgb=Vector(1.0, 1.0, 1.0)), translate=Vector(-30.0, 30.0, -30.0))) fix.append( Plane(y, -1, Pigment(Color(rgb=Vector(0.7, 0.5, 0.3)))), Sphere( Vector(0.0, 0.0, 0.0), 1.0, Texture( Pigment(radial=ColorMap({ 0.00: Color(rgb=Vector(1.0, 0.4, 0.2)), 0.33: Color(rgb=Vector(0.2, 0.4, 1.0)), 0.66: Color(rgb=Vector(0.4, 1.0, 0.2)), 1.00: Color(rgb=Vector(1.0, 0.4, 0.2)) }), frequency=8), Finish(specular=0.6)))) # ---------------------------------------------------- msg = '\n' + ''.join( difflib.ndiff(ref.splitlines(1), str(fix).splitlines(1))) self.assertEqual(ref, str(fix), msg)