| 734 |   | [[Image(motorbike-final.png)]] | 
                      
                        | 735 |   |   called in `main()` right after `read_wavefront("motorBike.obj");`. Now mistery occurs with garbled part of motorbike. Where the problem is? Possible suggestions: pointer problems, normal calculation,  OpenGL bug, shader, data, ... Hint: Observe number of triangles versus number of vertices. Use debugger, Valgrind and VisIt to locate the problem. Quick fix is given as final [attachment:motorbike.c] source. | 
                      
                      
                        |   | 734 | [[Image(motorbike-final.png,right)]] | 
                      
                        |   | 735 |   called in `main()` right after `read_wavefront("motorBike.obj");`. Now mistery occurs with garbled part of motorbike. Where the problem is? Possible suggestions: pointer problems, memory leackage, normals calculation,  OpenGL bug, shader, data, ... Use debugger, [http://valgrind.org/ Valgrind] and VisIt (normals) to locate the problem. Hint: Observe number of triangles versus number of vertices.  Quick fix is given as final [attachment:motorbike.c] source. | 
                      
                        |   | 736 |  | 
                      
                        |   | 737 | == Homework == | 
                      
                        |   | 738 |  1. Colorize the model by groups | 
                      
                        |   | 739 |  1. Add opacity (alpha) | 
                      
                        |   | 740 |  1. Find (or create) nice shader source | 
                      
                        |   | 741 |  1. Add scientific data such as pressure at the surface | 
                      
                        |   | 742 |  1. Draw streamlines with velocity colorization | 
                      
                        |   | 743 |  1. Convert example into GPU buffered (VBOs).  |