132001f49SmrgINTRODUCTION 232001f49Smrg------------ 332001f49Smrg 432001f49SmrgThis directory is usually included in the Mesa demos distribution or 532001f49Smrgin the GLUT distribution. 632001f49Smrg 732001f49SmrgI have written the demos included in this directory mainly for showing 832001f49Smrgthe capabilities of the Mesa library when using the Voodoo driver. 932001f49SmrgHowever all the demos are written using the GLUT and OpenGL so they 1032001f49Smrgwork with any GLUT/OpenGL platform (tested: Linux+Mesa+Voodoo driver, 1132001f49SmrgLinux+Mesa+X11 driver, Win95+Mesa+Voodoo driver and SGI Onyx IR thanks 1232001f49Smrgto Mark Kilgard). 1332001f49Smrg 1432001f49SmrgAll the demos make an heavy use of texture mapping, blending, etc. so 1532001f49Smrgyou _need_ some kind of hardware support for the OpenGL otherwise they 1632001f49Smrgwill run at ~1fps. You need also a OpenGL 1.1 compliant library. 1732001f49Smrg 1832001f49SmrgYou can find some screenshot of these demos at 1932001f49Smrghttp://www-hmw.caribel.pisa.it/fxmesa/fxdemos.hmtl 2032001f49Smrg 2132001f49SmrgWrite me if you find some bug in the demos. 2232001f49Smrg 2332001f49SmrgDavid Bucciarelli (tech.hmw@plus.it) 2432001f49Smrg 2532001f49SmrgHumanware s.r.l. 2632001f49SmrgVia XXIV Maggio 62 2732001f49SmrgPisa, Italy 2832001f49SmrgTel./Fax +39-50-554108 2932001f49Smrgemail: info.hmw@plus.it 3032001f49Smrgwww: www-hmw.caribel.pisa.it 3132001f49Smrg 3232001f49Smrg 3332001f49SmrgA BRIEF DESCRIPTION OF THE DEMOS 3432001f49Smrg-------------------------------- 3532001f49Smrg 3632001f49Smrg 3732001f49SmrgIPERS 3832001f49Smrg----- 3932001f49Smrg 4032001f49SmrgSources: ipers.c image.c 4132001f49Smrg 4232001f49SmrgA nice spinning fractal object. 4332001f49Smrg 4432001f49Smrg 4532001f49SmrgRAY 4632001f49Smrg--- 4732001f49Smrg 4832001f49SmrgSources: ray.c 4932001f49Smrg 5032001f49SmrgI'm using ray tracing to dynamically generate texture maps with 5132001f49Smrgspecular, diffuse, shadows, and mirror colors. Each frame the texture 5232001f49Smrgmaps of the plane and of the sphere are partially updated. With this 5332001f49Smrgtechnique you can obtain true mirrors, shadows, specular highlights, 5432001f49Smrgbump mapping, etc. in realtime. This demo is really CPU intensive 5532001f49Smrg(~25fps on a PentiumII@300MHz with a Pure3D). Support on-the-fly 5632001f49Smrgswitching between fullscreen and in-window rendering under Linux/Mesa 5732001f49Smrg(start your X server in 16 bpp mode and press the spacebar). 5832001f49Smrg 5932001f49Smrg 6032001f49SmrgTUNNEL 6132001f49Smrg------ 6232001f49Smrg 6332001f49SmrgSources: tunnel.c image.c sources.c 6432001f49SmrgData: bw.rgb tile.rgb 6532001f49Smrg 6632001f49SmrgThe model was designed and prelighted with Alias|Wavefront 6732001f49SmrgPowerAnimator V8. Triangle strips were built with a tool written by me 6832001f49Smrgand then statically included in the sources. This demo doesn't 6932001f49Smrgrequire the ZBuffer and use antialiased polygons. Support on-the-fly 7032001f49Smrgswitching between fullscreen and in-window rendering under Linux/Mesa 7132001f49Smrg(start your X server in 16 bpp mode and press the spacebar). 7232001f49Smrg 7332001f49Smrg 7432001f49SmrgTUNNEL2 7532001f49Smrg------ 7632001f49Smrg 7732001f49SmrgSources: tunnel2.c image.c sources.c 7832001f49SmrgData: bw.rgb tile.rgb 7932001f49Smrg 8032001f49SmrgThe some tunnel demo but with two output channels. A nice 8132001f49Smrgexample of the Mesa/Voodoo support for multiple boards in 8232001f49Smrgthe some PC. 8332001f49Smrg 8432001f49Smrg 8532001f49SmrgTEAPOT 8632001f49Smrg------ 8732001f49Smrg 8832001f49SmrgSources: teapot.c image.c dteapot.c shadow.c 8932001f49SmrgData: bw.rgb tile.rgb 9032001f49Smrg 9132001f49SmrgThe shadow is drawn projecting the teapot geometry over the plane. All 9232001f49Smrgother light effects are drawn using the standard OpenGL capabilities. 9332001f49SmrgSupport on-the-fly switching between fullscreen and in-window 9432001f49Smrgrendering under Linux/Mesa (start your X server in 16 bpp mode and 9532001f49Smrgpress the spacebar). 9632001f49Smrg 9732001f49Smrg 9832001f49SmrgFIRE 9932001f49Smrg---- 10032001f49Smrg 10132001f49SmrgSources: fire.c image.c 10232001f49SmrgData: s128.rgb tree2.rgb 10332001f49Smrg 10432001f49SmrgThe demo use a small particle system to draw some nice visual effect. 10532001f49SmrgYou can interactively change many parameters of the particle system 10632001f49Smrgand you can choose the number of particles at the startup ('fire 10732001f49Smrg4000'). This demo should be called fountain. Support on-the-fly 10832001f49Smrgswitching between fullscreen and in-window rendering under Linux/Mesa 10932001f49Smrg(start your X server in 16 bpp mode and press the spacebar). 11032001f49Smrg 11132001f49Smrg 11232001f49SmrgTERRAIN 11332001f49Smrg------- 11432001f49Smrg 11532001f49SmrgSources: mesaland.c 11632001f49Smrg 11732001f49SmrgThis demo is base on another demo written by Mikael SkiZoWalker. I 11832001f49Smrghave added the capabilities to freely fly around, view culling and 11932001f49Smrgsome nice color. Support on-the-fly switching between fullscreen and 12032001f49Smrgin-window rendering under Linux/Mesa (start your X server in 16 bpp 12132001f49Smrgmode and press the spacebar). 12232001f49Smrg 12332001f49Smrg 12432001f49SmrgGLTEST 12532001f49Smrg------ 12632001f49Smrg 12732001f49SmrgSources: gltest.c 12832001f49Smrg 12932001f49SmrgThis is a simple benchmark suite that I'm using in the development of 13032001f49Smrgthe Mesa/Voodoo driver. Type 'gltest >my.res' and you will get some 13132001f49Smrgdata about the performances of your OpenGL. Follow the results with my 13232001f49SmrgPC (Linux+Mesa-2.6+PentiumII@300MHz+Pure3D): 13332001f49Smrg 13432001f49SmrgSimple Points 13532001f49Smrg587900.080674 Pnts/sec 13632001f49Smrg 13732001f49SmrgSmooth Lines 13832001f49SmrgSIZE=480 => 39007.426183 Lins/sec 13932001f49SmrgSIZE=250 => 74575.016485 Lins/sec 14032001f49SmrgSIZE=100 => 179734.882409 Lins/sec 14132001f49SmrgSIZE=050 => 183987.795297 Lins/sec 14232001f49SmrgSIZE=025 => 183820.086309 Lins/sec 14332001f49Smrg 14432001f49Smrg 14532001f49SmrgZSmooth Triangles 14632001f49SmrgSIZE=480 => 784.954997 Tris/sec 14732001f49SmrgSIZE=250 => 2862.325889 Tris/sec 14832001f49SmrgSIZE=100 => 17779.492938 Tris/sec 14932001f49SmrgSIZE=050 => 159339.829844 Tris/sec 15032001f49SmrgSIZE=025 => 428602.984008 Tris/sec 15132001f49Smrg 15232001f49Smrg 15332001f49SmrgZSmooth Tex Blend Triangles 15432001f49SmrgSIZE=480 => 784.473931 Tris/sec 15532001f49SmrgSIZE=250 => 2853.781513 Tris/sec 15632001f49SmrgSIZE=100 => 17598.252146 Tris/sec 15732001f49SmrgSIZE=050 => 152632.578337 Tris/sec 15832001f49SmrgSIZE=025 => 377584.760048 Tris/sec 15932001f49Smrg 16032001f49Smrg 16132001f49SmrgZSmooth Tex Blend TMesh Triangles 16232001f49SmrgSIZE=400 => 563.900695 Tris/sec, MPixel Fill/sec: 45.112056 16332001f49SmrgSIZE=250 => 1449.777225 Tris/sec, MPixel Fill/sec: 45.305538 16432001f49SmrgSIZE=100 => 8702.869121 Tris/sec, MPixel Fill/sec: 43.514346 16532001f49SmrgSIZE=050 => 31896.867466 Tris/sec, MPixel Fill/sec: 39.871084 16632001f49SmrgSIZE=025 => 114037.262894 Tris/sec, MPixel Fill/sec: 35.636645 16732001f49SmrgSIZE=010 => 220494.235839 Tris/sec, MPixel Fill/sec: 11.024712 16832001f49SmrgSIZE=005 => 225615.506651 Tris/sec, MPixel Fill/sec: 2.820194 16932001f49SmrgSIZE=002 => 225607.681439 Tris/sec, MPixel Fill/sec: 0.451215 17032001f49Smrg 17132001f49Smrg 17232001f49SmrgColor/Depth Buffer Clears 17332001f49Smrg295.042474 Clrs/sec, MPixel Fill/sec: 90.553256 17432001f49Smrg 17532001f49Smrg 17632001f49SmrgFollow the results with my 17732001f49SmrgPC (Linux+Mesa-3.0beta5+PentiumII@300MHz+Voodoo2): 17832001f49Smrg 17932001f49Smrg 18032001f49SmrgSimple Points 18132001f49Smrg1620113.525130 Pnts/sec 18232001f49Smrg 18332001f49SmrgSmooth Lines 18432001f49SmrgSIZE=480 => 73841.166065 Lins/sec 18532001f49SmrgSIZE=250 => 140794.035316 Lins/sec 18632001f49SmrgSIZE=100 => 344185.242157 Lins/sec 18732001f49SmrgSIZE=050 => 420399.008289 Lins/sec 18832001f49SmrgSIZE=025 => 420261.389773 Lins/sec 18932001f49Smrg 19032001f49Smrg 19132001f49SmrgZSmooth Triangles 19232001f49SmrgSIZE=480 => 1434.668506 Tris/sec 19332001f49SmrgSIZE=250 => 5228.449614 Tris/sec 19432001f49SmrgSIZE=100 => 46603.815842 Tris/sec 19532001f49SmrgSIZE=050 => 325757.045961 Tris/sec 19632001f49SmrgSIZE=025 => 589022.403336 Tris/sec 19732001f49Smrg 19832001f49Smrg 19932001f49SmrgZSmooth Tex Blend Triangles 20032001f49SmrgSIZE=480 => 1414.900041 Tris/sec 20132001f49SmrgSIZE=250 => 5006.055235 Tris/sec 20232001f49SmrgSIZE=100 => 43602.252031 Tris/sec 20332001f49SmrgSIZE=050 => 303497.092692 Tris/sec 20432001f49SmrgSIZE=025 => 517087.428669 Tris/sec 20532001f49Smrg 20632001f49Smrg 20732001f49SmrgZSmooth Tex Blend TMesh Triangles 20832001f49SmrgSIZE=400 => 1023.273112 Tris/sec, MPixel Fill/sec: 81.861849 20932001f49SmrgSIZE=250 => 2595.692121 Tris/sec, MPixel Fill/sec: 81.115379 21032001f49SmrgSIZE=100 => 15788.198912 Tris/sec, MPixel Fill/sec: 78.940995 21132001f49SmrgSIZE=050 => 58784.121300 Tris/sec, MPixel Fill/sec: 73.480152 21232001f49SmrgSIZE=025 => 244233.873481 Tris/sec, MPixel Fill/sec: 76.323085 21332001f49SmrgSIZE=010 => 474995.004191 Tris/sec, MPixel Fill/sec: 23.749750 21432001f49SmrgSIZE=005 => 475124.354163 Tris/sec, MPixel Fill/sec: 5.939054 21532001f49SmrgSIZE=002 => 474959.089503 Tris/sec, MPixel Fill/sec: 0.949918 21632001f49Smrg 21732001f49Smrg 21832001f49SmrgColor/Depth Buffer Clears 21932001f49Smrg478.654830 Clrs/sec, MPixel Fill/sec: 146.906826 22032001f49Smrg 22132001f49Smrg 22232001f49SmrgPALTEX and GLBPALTX 22332001f49Smrg------------------- 22432001f49Smrg 22532001f49SmrgSources: paltex.c and glbpaltx.c 22632001f49Smrg 22732001f49SmrgThe PALTEX example was written by Brian Paul and it shows the 22832001f49Smrgcapabilities of the GL_EXT_paletted_texture extension. I have written 22932001f49Smrgthe other example in order to show the capabilities of the 23032001f49Smrggl3DfxSetPaletteEXT() (it used only by GLQuake and Quake2). 231