You are not logged in Log in Join
You are here: Home » Members » DaddyGravity » ContagiousFun » LFCornellPy » View File

Log in
Name

Password

 

LFCornellPy

File details
Size
5 K
File type
text/plain

File contents

#! /usr/bin/env python

from lightflowPM import *

s = scene()

s.newInterface( "default",
		[ "trace-depth", 6,
		  "radiosity-depth", 6, 6,
		  "radiosity-sampling", "default",
		  "radiosity-samples", 400,
		  "radiosity-threshold", 0.1,
		  "radiosity-reuse-distance", 0.25, 0.4, 0.01,
		  "photon-count", 300000,
		  "photon-clustering-count", 2000, 100 ] )


s.lightOn( s.newLight( "soft-conic",
		       [ "position", vector3( 0, 0, 0.98 ),
			 "direction", vector3( 0, 0, -1 ),
			 "angle", 0.0, 3.141592 / 2.0,
			 "radius", 0.05,
			 "zbuffer", 100,
			 "samples", 7,
			 "color", vector3( 8, 8, 8 ) ] ) )


neon = s.newMaterial( "matte", [ "kc", vector3( 3, 3, 3 ), "shadowing", 0.0 ] )

whitewash = s.newMaterial( "generic",
                           [ "kdr", vector3( 0.9, 0.9, 0.9 ),
                             "ksr", vector3( 0.5, 0.5, 0.5 ),
                             "km", 0.07,
                             "shinyness", 1.0,
                             "radiosity", 1,
                             "caustics", 0, 0 ] )

redwash = s.newMaterial( "generic",
                         [ "kdr", vector3( 0.8, 0.1, 0.1 ),
                           "ksr", vector3( 0.5, 0.5, 0.5 ),
                           "km", 0.07,
                           "shinyness", 1.0,
                           "radiosity", 1,
                           "caustics", 0, 0] )

bluewash = s.newMaterial( "generic",
                          [ "kdr", vector3( 0.2, 0.3, 0.8 ),
                            "ksr", vector3( 0.5, 0.5, 0.5 ),
                            "km", 0.07,
                            "shinyness", 1.0,
                            "radiosity", 1,
                            "caustics", 0, 0 ] )

trnswash = s.newMaterial( "generic",
                          [ "kdr", vector3( 0.9, 0.9, 0.9 ),
                            "ksr", vector3( 0.5, 0.5, 0.5 ),
                            "km", 0.07,
                            "shinyness", 1.0,
                            "radiosity", 1,
                            "caustics", 0, 0,
                            "visibility", 1 ] )


metal = s.newMaterial( "physical",
		       [ "fresnel", 1,
			 "IOR", 9.0,
			 "kr", vector3( 1, 1, 1 ),
			 "kd", 0.0,
			 "km", 0.02,
			 "shinyness", 1.0,
			 "radiosity", 0,
			 "caustics", 2, 2 ] )

glass = s.newMaterial( "generic",
		       [ "fresnel", 1,
			 "IOR", 1.57,
			 "kdr", vector3( 0, 0, 0 ),
 			 "kdt", vector3( 0, 0, 0 ),
			 "ksr", vector3( 1, 1, 1 ), vector3( 0.5, 0.8, 1 ),
			 "kst", vector3( 1, 1, 1 ), vector3( 1, 0.6, 0.2 ),
			 "kr", vector3( 1, 1, 1 ),
			 "kt", vector3( 1, 1, 1 ),
			 "km", 0.02,
			 "shinyness", 1.0,
			 "transmission", 0,
			 "radiosity", 0,
			 "caustics", 2, 2 ] )


s.materialBegin( whitewash )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -0.25, -0.25, 0.995 ), vector3( 0.25, -0.25, 0.995 ),
			    vector3( -0.25,  0.25, 0.995 ), vector3( 0.25,  0.25, 0.995 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -0.25,  0.25, 0.99 ), vector3( 0.25, 0.25, 0.99 ),
			    vector3( -0.25,  0.25, 1.00 ), vector3( 0.25, 0.25, 1.00 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -0.25, -0.25, 0.99 ), vector3( -0.25, -0.25, 1.00 ),
			    vector3(  0.25, -0.25, 0.99 ), vector3(  0.25, -0.25, 1.00 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3(  0.25, -0.25, 0.99 ), vector3(  0.25, -0.25, 1.00 ),
			    vector3(  0.25,  0.25, 0.99 ), vector3(  0.25,  0.25, 1.00 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -0.25, -0.25, 0.99 ), vector3( -0.25, 0.25, 0.99 ),
			    vector3( -0.25, -0.25, 1.00 ), vector3( -0.25, 0.25, 1.00 ) ] ) )

s.materialEnd()

s.materialBegin( neon )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -0.25, -0.25, 0.99 ), vector3( 0.25, -0.25, 0.99 ),
			    vector3( -0.25,  0.25, 0.99 ), vector3( 0.25,  0.25, 0.99 ) ] ) )

s.materialEnd()

s.materialBegin( trnswash )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -1, -1, -1 ), vector3( 1, -1, -1 ),
			    vector3( -1, -1,  1 ), vector3( 1, -1,  1 ) ] ) )

s.materialEnd()

s.materialBegin( whitewash )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -1, -1, -1 ), vector3( -1, 1, -1 ),
			    vector3(  1, -1, -1 ), vector3(  1, 1, -1 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -1, -1, 1 ), vector3( 1, -1, 1 ),
			    vector3( -1,  1, 1 ), vector3( 1,  1, 1 ) ] ) )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -1, 1, -1 ), vector3( -1, 1, 1 ),
			    vector3(  1, 1, -1 ), vector3(  1, 1, 1 ) ] ) )

s.materialEnd()

s.materialBegin( redwash )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( -1, -1, -1 ), vector3( -1, -1, 1 ),
			    vector3( -1,  1, -1 ), vector3( -1,  1, 1 ) ] ) )

s.materialEnd()

s.materialBegin( bluewash )

s.addObject( s.newObject( "patch",
			  [ "points",
			    vector3( 1, -1, -1 ), vector3( 1, 1, -1 ),
			    vector3( 1, -1,  1 ), vector3( 1, 1, 1 ) ] ) )

s.materialEnd()


s.materialBegin( glass )

s.transformBegin( transform().translation( vector3( -0.45, 0, -0.1 ) ) )

s.addObject( s.newObject( "sphere", [ "radius", 0.35 ] ) )

s.transformEnd()

s.materialEnd()


s.materialBegin( metal )

s.transformBegin( transform().translation( vector3( 0.45, 0.4, -0.65 ) ) )

s.addObject( s.newObject( "sphere", [ "radius", 0.35 ] ) )

s.transformEnd()

s.materialEnd()



saver = s.newImager( "tga-saver", [ "file", "cornell.tga" ] )

s.imagerBegin( saver )

camera = s.newCamera( "pinhole", [ "eye", vector3( 0, -2.99, 0 ), "aim", vector3( 0, 0, 0 ) ] )

s.imagerEnd()


s.radiosity()

s.render( camera, 300, 300 )