次の例では、ライト・霧・正規化など、この節で説明した複数の処理を使っています。このスクリプトは、2つの光源の影響を受ける、回転する円柱を描きます。
scene = Scene Box( 300, 300 ); // Scene Boxを作成する
New Window( "円柱", scene ); // シーンをウィンドウに配置する
For( i = 1, i < 360, i++,
scene << Clear;
// レンズは45度、近い距離(near)はカメラから3単位、遠い距離(far)は7単位
scene << Perspective( 50, 1, 10 );
// カメラで原点(0,0,0)が見えるように移動する
scene << Translate( 0.0, 0.0, -2 );
scene << Enable( Lighting );
scene << Enable( Light0 );
scene << Enable( Light1 );
scene << Light( Light0, POSITION, 1, 1, 1, 1 ); // ビュアーに近い
scene << Light( Light0, DIFFUSE, 1, 0, 0, 1 ); // 赤色の光源
scene << Light( Light1, POSITION, -1, -1, -1, 1 ); // オブジェクトの背後
scene << Light( Light1, DIFFUSE, .5, .5, 1, 1 ); // 青灰色の光源
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 );
);
図13.18 霧