1INTRODUCTION 2------------ 3 4This directory is usually included in the Mesa demos distribution or 5in the GLUT distribution. 6 7I have written the demos included in this directory mainly for showing 8the capabilities of the Mesa library when using the Voodoo driver. 9However all the demos are written using the GLUT and OpenGL so they 10work with any GLUT/OpenGL platform (tested: Linux+Mesa+Voodoo driver, 11Linux+Mesa+X11 driver, Win95+Mesa+Voodoo driver and SGI Onyx IR thanks 12to Mark Kilgard). 13 14All the demos make an heavy use of texture mapping, blending, etc. so 15you _need_ some kind of hardware support for the OpenGL otherwise they 16will run at ~1fps. You need also a OpenGL 1.1 compliant library. 17 18You can find some screenshot of these demos at 19http://www-hmw.caribel.pisa.it/fxmesa/fxdemos.hmtl 20 21Write me if you find some bug in the demos. 22 23David Bucciarelli (tech.hmw@plus.it) 24 25Humanware s.r.l. 26Via XXIV Maggio 62 27Pisa, Italy 28Tel./Fax +39-50-554108 29email: info.hmw@plus.it 30www: www-hmw.caribel.pisa.it 31 32 33A BRIEF DESCRIPTION OF THE DEMOS 34-------------------------------- 35 36 37IPERS 38----- 39 40Sources: ipers.c image.c 41 42A nice spinning fractal object. 43 44 45RAY 46--- 47 48Sources: ray.c 49 50I'm using ray tracing to dynamically generate texture maps with 51specular, diffuse, shadows, and mirror colors. Each frame the texture 52maps of the plane and of the sphere are partially updated. With this 53technique you can obtain true mirrors, shadows, specular highlights, 54bump mapping, etc. in realtime. This demo is really CPU intensive 55(~25fps on a PentiumII@300MHz with a Pure3D). Support on-the-fly 56switching between fullscreen and in-window rendering under Linux/Mesa 57(start your X server in 16 bpp mode and press the spacebar). 58 59 60TUNNEL 61------ 62 63Sources: tunnel.c image.c sources.c 64Data: bw.rgb tile.rgb 65 66The model was designed and prelighted with Alias|Wavefront 67PowerAnimator V8. Triangle strips were built with a tool written by me 68and then statically included in the sources. This demo doesn't 69require the ZBuffer and use antialiased polygons. Support on-the-fly 70switching between fullscreen and in-window rendering under Linux/Mesa 71(start your X server in 16 bpp mode and press the spacebar). 72 73 74TUNNEL2 75------ 76 77Sources: tunnel2.c image.c sources.c 78Data: bw.rgb tile.rgb 79 80The some tunnel demo but with two output channels. A nice 81example of the Mesa/Voodoo support for multiple boards in 82the some PC. 83 84 85TEAPOT 86------ 87 88Sources: teapot.c image.c dteapot.c shadow.c 89Data: bw.rgb tile.rgb 90 91The shadow is drawn projecting the teapot geometry over the plane. All 92other light effects are drawn using the standard OpenGL capabilities. 93Support on-the-fly switching between fullscreen and in-window 94rendering under Linux/Mesa (start your X server in 16 bpp mode and 95press the spacebar). 96 97 98FIRE 99---- 100 101Sources: fire.c image.c 102Data: s128.rgb tree2.rgb 103 104The demo use a small particle system to draw some nice visual effect. 105You can interactively change many parameters of the particle system 106and you can choose the number of particles at the startup ('fire 1074000'). This demo should be called fountain. Support on-the-fly 108switching between fullscreen and in-window rendering under Linux/Mesa 109(start your X server in 16 bpp mode and press the spacebar). 110 111 112TERRAIN 113------- 114 115Sources: mesaland.c 116 117This demo is base on another demo written by Mikael SkiZoWalker. I 118have added the capabilities to freely fly around, view culling and 119some nice color. Support on-the-fly switching between fullscreen and 120in-window rendering under Linux/Mesa (start your X server in 16 bpp 121mode and press the spacebar). 122 123 124GLTEST 125------ 126 127Sources: gltest.c 128 129This is a simple benchmark suite that I'm using in the development of 130the Mesa/Voodoo driver. Type 'gltest >my.res' and you will get some 131data about the performances of your OpenGL. Follow the results with my 132PC (Linux+Mesa-2.6+PentiumII@300MHz+Pure3D): 133 134Simple Points 135587900.080674 Pnts/sec 136 137Smooth Lines 138SIZE=480 => 39007.426183 Lins/sec 139SIZE=250 => 74575.016485 Lins/sec 140SIZE=100 => 179734.882409 Lins/sec 141SIZE=050 => 183987.795297 Lins/sec 142SIZE=025 => 183820.086309 Lins/sec 143 144 145ZSmooth Triangles 146SIZE=480 => 784.954997 Tris/sec 147SIZE=250 => 2862.325889 Tris/sec 148SIZE=100 => 17779.492938 Tris/sec 149SIZE=050 => 159339.829844 Tris/sec 150SIZE=025 => 428602.984008 Tris/sec 151 152 153ZSmooth Tex Blend Triangles 154SIZE=480 => 784.473931 Tris/sec 155SIZE=250 => 2853.781513 Tris/sec 156SIZE=100 => 17598.252146 Tris/sec 157SIZE=050 => 152632.578337 Tris/sec 158SIZE=025 => 377584.760048 Tris/sec 159 160 161ZSmooth Tex Blend TMesh Triangles 162SIZE=400 => 563.900695 Tris/sec, MPixel Fill/sec: 45.112056 163SIZE=250 => 1449.777225 Tris/sec, MPixel Fill/sec: 45.305538 164SIZE=100 => 8702.869121 Tris/sec, MPixel Fill/sec: 43.514346 165SIZE=050 => 31896.867466 Tris/sec, MPixel Fill/sec: 39.871084 166SIZE=025 => 114037.262894 Tris/sec, MPixel Fill/sec: 35.636645 167SIZE=010 => 220494.235839 Tris/sec, MPixel Fill/sec: 11.024712 168SIZE=005 => 225615.506651 Tris/sec, MPixel Fill/sec: 2.820194 169SIZE=002 => 225607.681439 Tris/sec, MPixel Fill/sec: 0.451215 170 171 172Color/Depth Buffer Clears 173295.042474 Clrs/sec, MPixel Fill/sec: 90.553256 174 175 176Follow the results with my 177PC (Linux+Mesa-3.0beta5+PentiumII@300MHz+Voodoo2): 178 179 180Simple Points 1811620113.525130 Pnts/sec 182 183Smooth Lines 184SIZE=480 => 73841.166065 Lins/sec 185SIZE=250 => 140794.035316 Lins/sec 186SIZE=100 => 344185.242157 Lins/sec 187SIZE=050 => 420399.008289 Lins/sec 188SIZE=025 => 420261.389773 Lins/sec 189 190 191ZSmooth Triangles 192SIZE=480 => 1434.668506 Tris/sec 193SIZE=250 => 5228.449614 Tris/sec 194SIZE=100 => 46603.815842 Tris/sec 195SIZE=050 => 325757.045961 Tris/sec 196SIZE=025 => 589022.403336 Tris/sec 197 198 199ZSmooth Tex Blend Triangles 200SIZE=480 => 1414.900041 Tris/sec 201SIZE=250 => 5006.055235 Tris/sec 202SIZE=100 => 43602.252031 Tris/sec 203SIZE=050 => 303497.092692 Tris/sec 204SIZE=025 => 517087.428669 Tris/sec 205 206 207ZSmooth Tex Blend TMesh Triangles 208SIZE=400 => 1023.273112 Tris/sec, MPixel Fill/sec: 81.861849 209SIZE=250 => 2595.692121 Tris/sec, MPixel Fill/sec: 81.115379 210SIZE=100 => 15788.198912 Tris/sec, MPixel Fill/sec: 78.940995 211SIZE=050 => 58784.121300 Tris/sec, MPixel Fill/sec: 73.480152 212SIZE=025 => 244233.873481 Tris/sec, MPixel Fill/sec: 76.323085 213SIZE=010 => 474995.004191 Tris/sec, MPixel Fill/sec: 23.749750 214SIZE=005 => 475124.354163 Tris/sec, MPixel Fill/sec: 5.939054 215SIZE=002 => 474959.089503 Tris/sec, MPixel Fill/sec: 0.949918 216 217 218Color/Depth Buffer Clears 219478.654830 Clrs/sec, MPixel Fill/sec: 146.906826 220 221 222PALTEX and GLBPALTX 223------------------- 224 225Sources: paltex.c and glbpaltx.c 226 227The PALTEX example was written by Brian Paul and it shows the 228capabilities of the GL_EXT_paletted_texture extension. I have written 229the other example in order to show the capabilities of the 230gl3DfxSetPaletteEXT() (it used only by GLQuake and Quake2). 231