Lab4

 

Due date: Monday, December 1, 2003.

Option 1

·       Implement high performance rendering with both display lists and vertex array techniques. Please do an analysis for the following three cases:

·       The happy Budda model with smooth shading

·       The happy Budda model with smooth shading and marble procedural texture

·       A shadow scene you used in lab3

 

For each of the three cases, is it fill-limited, geometry-limited or application-limited? Why? Please resolve all major performance bottlenecks with techniques described in our lecture in OpenGL performance issues.

 

Also, please report the best timing you can achieve with the smooth shaded Budda model, together with the rendering parameters you used, and compare with the rendering rates (#triangles/sec) advertised by the vendor. Analyze your results, and explain possible causes of the differences between your results and the vendor’s advertised results. Please note, often times, vendors report their triangle rendering rates rendered with connected primitives, such as triangle stripes. You are not asked to implement triangle-striping algorithms in this lab, but please keep this in mind when you perform the comparison.

 

Options 2

§       In lieu of what is described in the above, if you don’t want to spend time crunching numbers, you can play with Cg shaders to implement a pixel shader program to achieve high gloss scene with a non-trivial BRDF

 

Design Project

For this part, please form 2-person teams to finish. Here is a hypothetical situation. You and an MBA friend of yours co-founded a company. He is CEO, CFO and President. You are CTO and chief of labor. The only other employee in your company is a psychopath who maintains the code and server and knows where you, your GF and parents live. Your product is a software package written in the later half of the Year 2002 A.D. for a graduate level computer graph­ics course, which you spent a Christmas break to expand. Your CEO decided to market your product (gnuEgraphics.com) using feature based pricing. A sample feature list you have include the following:

§       loading geometry files in 10 different polygon mesh formats

§       loading 2D textures in 20 different file formats

§       loading video (yeah, movies) textures in 5 different formats

§       loading in description of procedural textures describing marble, water, cloud, smoke, ..

§       handle time dependent geometric models, such as a dancing performer on an figure skating competition

§       a scene-graph editor with graphical user interface

§       an interface to camera and lighting movement paths

§       rendering the geometry in basic lighting and shading scenarios

§       rendering the geometry with 2D textures, procedural textures, or video textures (you have to efficiently manage your textures, say, for your scenes using on average 500 different textures per view)

§       rendering special effects such as bump maps, gloss maps and BRDF (note, BRDF is view dependent and light position dependent)

§       rendering scenes with mirrors

§       rendering shadows

§       efficient rendering accelerations in hardware using display lists, and or, vertex arrays (you have to build these structures first, right?)

§       efficient rendering accelerations in software using occlusion culling, levels of detail, ...

§       antialiasing

Here is your challenge, you guys sell source code as well as executable. When a customer orders a package with a certain feature combination, say, a geometry viewer with video texture (RGBA four channels), and shadows (where the shadows are cast onto a complex geometry in colored and semi-transparent fashion). Your web server needs to get all the related source code together and zip it up for downloading in 5 sec­onds. Nothing but the ordered features should be included, however.

 

Note:

 

Please turn in a 3-page introduction to your overall design, illustrated with a block diagram, key data structure and pseudo code for major functional modules (no source code allowed!)

The point of this exercise is to give each one of you a new angle to look at how graphics rendering techniques and essentials fit into the same picture. Indeed, no matter what your field of expertise is later on, a good understanding is always the first step towards a successful design.

All submissions are to be electronic. Deadlines must be observed and late penalty will be aggressively collected.