Bowling 3D

Team Members:

·         Ramesh Viswanathan

·         Manjuladevi Kuttuva

 

Our goal was to create a simple 3D bowling game with OpenGL. Our efforts were focused on rendering the scene as realistic as possible with OpenGL. The scene consists of a bowling alley with a ball and 10 pins. The game provides input mechanisms to position and select the angle to throw the ball.

 

Technical aspects:

·         Reflections of the ball and pins on the alley – We used a technique that utilizes stencil buffer and clip planes to create reflections.

The steps involved in the stencil-buffer approach are:

1.       Set up the alley clipping plane without enabling it.

2.       Render the alley geometry to the stencil buffer.

3.       Set up the reflected camera transformation.

4.       Set up reflected lighting.

5.       Enable the clipping plane and stencil buffer and render the scene.

6.       Restore the initial camera transformation.

7.       Render the alley to the depth buffer.

8.       Set up original lighting.

9.       Render the scene normally.

Advantages of the stencil buffer approach are:

1.       Fast

2.       Resolution of reflection is the same as the frame buffer.

 

·         Camera is moved along a piecewise Bezier curve to present the scene during introduction.

·         Collision detection using bounding sphere and boxes were used to perform collisions between ball and pins.

·         Simple physics was used to determine the effects of collision between ball and pins and among pins.

Artistic efforts:

·         3D models of the ball, pins, alley and gutters were created programmatically so that resolution of the models could be controlled easily. Pins and gutters were created as Surfaces of Revolution using piecewise Bezier curves.

·         Textures for 3D models were downloaded from the internet.