Here are my solutions for assignment 1.

Goal: Learn to use OpenGL display lists, vertex arrays, and vertex buffer objects. Also learn to add simple blending.

Problem 1: User can switch between immediate mode rendering, rendering from a display list, rendering with vertex arrays and rendering with vertex arrays stored in vertex buffer object. They can also switch between different window resolutions. The images below are 1024x1024 resolution. the 250K dragon is displayed using a display list and the yeahRight model is displayed using VBO. The table shows the results of the different images being rendered in the four different modes with different screen resolutions (in frames per second).



Model
Resolution
Immediate Mode Display List Vertex Arrays VBO
dragon_10k 128x128 1000 8100 1300 6600

256x256 1000 7800 1300 6100

512x512 1000 4300 1200 3500

1024x1024 1000 1600 800 1400
dragon_250k 128x128 219 700 141 220

256x256 219 700 140 219

512x512 219 650 139 218

1024x1024 215 550 131 216
dragon_871k 128x128 12 30 39 92

256x256 12 30 39 91

512x512 12 30 39 91

1024x1024 12 30 38 90
buddha_50k 128x128 200 4000 387 2300

256x256 200 3600 384 2100

512x512 200 2500 372 1750

1024x1024 200 1200 328 1020
buddha_250k 128x128 42 700 140 222

256x256 42 680 140 221

512x512 41 650 138 221

1024x1024 41 520 131 219
buddha_1087k 128x128 10 24 32 76

256x256 10 24 32 75

512x512 10 24 32 75

1024x1024 10 24 31 75
Cube 128x128 7750 7800 7700 7700

256x256 7750 7800 7700 7700

512x512 5600 5500 5500 5500

1024x1024 1500 1500 1500 1500
Bunny 128x128 140 2050 167 935

256x256 140 1850 166 800

512x512 139 1350 164 750

1024x1024 139 780 155 500
YeahRight 128x128 13.8 34.1 45.4 104

256x256 13.8 33.9 45.4 103

512x512 13.8 33.9 45.4 102

1024x1024 13.8 33.9 44.9 102

Part D: Using the machines in 301, I would estimate that they can render about 1.2 million triangles before the graphics card becomes geometry limited. (I ran the yeahRight model and it rendered at 102 frames per second with a 1024x1024 window).

Problem 2: Simple OpenGL Blending.

The user can cycle through different GL_TEXTURE_ENV modes. Below are the images of the four different modes they can cycle through. For this problem the rendering mode is display list with a 1024x1024 window.

GL_DECAL, alpha = 0.5



GL_REPLACE, alpha = 0.5


GL_MODULATE, alpha = 0.5


GL_ADD, alpha = 0.5



GL_MODULATE, alpha = 0.5

The user can also control the alpha value on the sphere. They use the + and - keys to add or subtract .1 to the alpha value. The values range from 0 (the sphere doesn't show up at all) to  1 (where none of the background objects can be seen. The below images are for alpha values .1, .3, .5, .7, .9 and 1, using GL_DECAL.



Here are a few interesting images I got as I worked on this assignment.