/* Create a scene to render! */ Scene *SceneSetupTest1( void ) { // Create the main scene data structure Scene *scn = new Scene(); // Set the scene's background color scn->backgroundColor = Color( 0.462f, 0.725f, 0.0f ); // Create a camera for the scene scn->camera = new Camera( vec3(0,10,5), vec3(0,0,0), vec3(0,1,0), 60.0, 512, 512 ); // Create a group to contain all the scene geometry, tell the scene about it Group *grp = new Group(); scn->geometry = grp; // Create a material type for our geometry Material *aoMtl = new AmbientOcclusionMaterial( 20 ); Material *redMtl = new LambertianMaterial( Color( 1, 0, 0 ) ); Material *yellowMtl = new LambertianMaterial( Color( 1, 1, 0 ) ); Material *greenMtl = new LambertianMaterial( Color( 0, 1, 0 ) ); Material *blueMtl = new LambertianMaterial( Color( 0, 0, 1 ) ); // Create a red sphere Primitive *prm = new Sphere( redMtl, vec3( -4, 5, 0 ), 3 ); grp->Add( prm ); prm = new InfinitePlane( blueMtl, vec4( 1, 0, 0 , -5) ); grp->Add( prm ); // Create a green sphere prm = new Sphere( greenMtl, vec3( 4, 5, 0 ), 3 ); grp->Add( prm ); // Create a red triangle prm = new Triangle( greenMtl, vec3( 0, 5, 0 ), vec3( -1, -2, 0 ), vec3( 1, -2, 0 ) ); grp->Add( prm ); return scn; }