Publication date: 08/13/2020

## Example

The following example uses several of the concepts presented in this section, including lighting, fog, and normalization. It draws a spinning cylinder that is affected by two lights.

`scene = Scene Box( 300, 300 ); // make a scene box`
`New Window( "Cylinder", scene ); // put the scene in a window`
` `
`For( i = 1, i < 360, i++,`
`	scene << Clear;`
` `

// the lens is 45 degrees, near is 3 units from the camera, far is 7.

`	scene << Perspective( 50, 1, 10 );`
` `

// move the world so that 0,0,0 is visible in the camera

`	scene << Translate( 0.0, 0.0, -2 );`
`	scene << Enable( Lighting );`
`	scene << Enable( Light0 );`
`	scene << Enable( Light1 );`
`	scene << Light( Light0, POSITION, 1, 1, 1, 1 ); // near viewer`
`	scene << Light( Light0, DIFFUSE, 1, 0, 0, 1 ); // red light`
`	scene << Light( Light1, POSITION, -1, -1, -1, 1 ); // behind object`
`	scene << Light( Light1, DIFFUSE, .5, .5, 1, 1 ); // blue-gray light`
`	scene << Enable( Fog );`
`	scene << Enable( NORMALIZE );`
` `
`	scene << Rotate( i, 1, 0, 0 );`
`	scene << Rotate( i * 3, 0, 1, 0 );`
`	scene << Rotate( i * 3 / 2, 0, 0, 1 );`
`	scene << Cylinder( 0.5, 0.5, 0.5, 40, 10 );`
`	scene << Update;`
`	Wait( 0.01 );`
`);`

Figure 13.18 FogĀ