diff --git a/progs/demos/README b/progs/demos/README new file mode 100644 index 00000000000..a3d0c18bb97 --- /dev/null +++ b/progs/demos/README @@ -0,0 +1,230 @@ +INTRODUCTION +------------ + +This directory is usually included in the Mesa demos distribution or +in the GLUT distribution. + +I have written the demos included in this directory mainly for showing +the capabilities of the Mesa library when using the Voodoo driver. +However all the demos are written using the GLUT and OpenGL so they +work with any GLUT/OpenGL platform (tested: Linux+Mesa+Voodoo driver, +Linux+Mesa+X11 driver, Win95+Mesa+Voodoo driver and SGI Onyx IR thanks +to Mark Kilgard). + +All the demos make an heavy use of texture mapping, blending, etc. so +you _need_ some kind of hardware support for the OpenGL otherwise they +will run at ~1fps. You need also a OpenGL 1.1 compliant library. + +You can find some screenshot of these demos at +http://www-hmw.caribel.pisa.it/fxmesa/fxdemos.hmtl + +Write me if you find some bug in the demos. + +David Bucciarelli (tech.hmw@plus.it) + +Humanware s.r.l. +Via XXIV Maggio 62 +Pisa, Italy +Tel./Fax +39-50-554108 +email: info.hmw@plus.it +www: www-hmw.caribel.pisa.it + + +A BRIEF DESCRIPTION OF THE DEMOS +-------------------------------- + + +IPERS +----- + +Sources: ipers.c image.c + +A nice spinning fractal object. + + +RAY +--- + +Sources: ray.c + +I'm using ray tracing to dynamically generate texture maps with +specular, diffuse, shadows, and mirror colors. Each frame the texture +maps of the plane and of the sphere are partially updated. With this +technique you can obtain true mirrors, shadows, specular highlights, +bump mapping, etc. in realtime. This demo is really CPU intensive +(~25fps on a PentiumII@300MHz with a Pure3D). Support on-the-fly +switching between fullscreen and in-window rendering under Linux/Mesa +(start your X server in 16 bpp mode and press the spacebar). + + +TUNNEL +------ + +Sources: tunnel.c image.c sources.c +Data: bw.rgb tile.rgb + +The model was designed and prelighted with Alias|Wavefront +PowerAnimator V8. Triangle strips were built with a tool written by me +and then statically included in the sources. This demo doesn't +require the ZBuffer and use antialiased polygons. Support on-the-fly +switching between fullscreen and in-window rendering under Linux/Mesa +(start your X server in 16 bpp mode and press the spacebar). + + +TUNNEL2 +------ + +Sources: tunnel2.c image.c sources.c +Data: bw.rgb tile.rgb + +The some tunnel demo but with two output channels. A nice +example of the Mesa/Voodoo support for multiple boards in +the some PC. + + +TEAPOT +------ + +Sources: teapot.c image.c dteapot.c shadow.c +Data: bw.rgb tile.rgb + +The shadow is drawn projecting the teapot geometry over the plane. All +other light effects are drawn using the standard OpenGL capabilities. +Support on-the-fly switching between fullscreen and in-window +rendering under Linux/Mesa (start your X server in 16 bpp mode and +press the spacebar). + + +FIRE +---- + +Sources: fire.c image.c +Data: s128.rgb tree2.rgb + +The demo use a small particle system to draw some nice visual effect. +You can interactively change many parameters of the particle system +and you can choose the number of particles at the startup ('fire +4000'). This demo should be called fountain. Support on-the-fly +switching between fullscreen and in-window rendering under Linux/Mesa +(start your X server in 16 bpp mode and press the spacebar). + + +TERRAIN +------- + +Sources: mesaland.c + +This demo is base on another demo written by Mikael SkiZoWalker. I +have added the capabilities to freely fly around, view culling and +some nice color. Support on-the-fly switching between fullscreen and +in-window rendering under Linux/Mesa (start your X server in 16 bpp +mode and press the spacebar). + + +GLTEST +------ + +Sources: gltest.c + +This is a simple benchmark suite that I'm using in the development of +the Mesa/Voodoo driver. Type 'gltest >my.res' and you will get some +data about the performances of your OpenGL. Follow the results with my +PC (Linux+Mesa-2.6+PentiumII@300MHz+Pure3D): + +Simple Points +587900.080674 Pnts/sec + +Smooth Lines +SIZE=480 => 39007.426183 Lins/sec +SIZE=250 => 74575.016485 Lins/sec +SIZE=100 => 179734.882409 Lins/sec +SIZE=050 => 183987.795297 Lins/sec +SIZE=025 => 183820.086309 Lins/sec + + +ZSmooth Triangles +SIZE=480 => 784.954997 Tris/sec +SIZE=250 => 2862.325889 Tris/sec +SIZE=100 => 17779.492938 Tris/sec +SIZE=050 => 159339.829844 Tris/sec +SIZE=025 => 428602.984008 Tris/sec + + +ZSmooth Tex Blend Triangles +SIZE=480 => 784.473931 Tris/sec +SIZE=250 => 2853.781513 Tris/sec +SIZE=100 => 17598.252146 Tris/sec +SIZE=050 => 152632.578337 Tris/sec +SIZE=025 => 377584.760048 Tris/sec + + +ZSmooth Tex Blend TMesh Triangles +SIZE=400 => 563.900695 Tris/sec, MPixel Fill/sec: 45.112056 +SIZE=250 => 1449.777225 Tris/sec, MPixel Fill/sec: 45.305538 +SIZE=100 => 8702.869121 Tris/sec, MPixel Fill/sec: 43.514346 +SIZE=050 => 31896.867466 Tris/sec, MPixel Fill/sec: 39.871084 +SIZE=025 => 114037.262894 Tris/sec, MPixel Fill/sec: 35.636645 +SIZE=010 => 220494.235839 Tris/sec, MPixel Fill/sec: 11.024712 +SIZE=005 => 225615.506651 Tris/sec, MPixel Fill/sec: 2.820194 +SIZE=002 => 225607.681439 Tris/sec, MPixel Fill/sec: 0.451215 + + +Color/Depth Buffer Clears +295.042474 Clrs/sec, MPixel Fill/sec: 90.553256 + + +Follow the results with my +PC (Linux+Mesa-3.0beta5+PentiumII@300MHz+Voodoo2): + + +Simple Points +1620113.525130 Pnts/sec + +Smooth Lines +SIZE=480 => 73841.166065 Lins/sec +SIZE=250 => 140794.035316 Lins/sec +SIZE=100 => 344185.242157 Lins/sec +SIZE=050 => 420399.008289 Lins/sec +SIZE=025 => 420261.389773 Lins/sec + + +ZSmooth Triangles +SIZE=480 => 1434.668506 Tris/sec +SIZE=250 => 5228.449614 Tris/sec +SIZE=100 => 46603.815842 Tris/sec +SIZE=050 => 325757.045961 Tris/sec +SIZE=025 => 589022.403336 Tris/sec + + +ZSmooth Tex Blend Triangles +SIZE=480 => 1414.900041 Tris/sec +SIZE=250 => 5006.055235 Tris/sec +SIZE=100 => 43602.252031 Tris/sec +SIZE=050 => 303497.092692 Tris/sec +SIZE=025 => 517087.428669 Tris/sec + + +ZSmooth Tex Blend TMesh Triangles +SIZE=400 => 1023.273112 Tris/sec, MPixel Fill/sec: 81.861849 +SIZE=250 => 2595.692121 Tris/sec, MPixel Fill/sec: 81.115379 +SIZE=100 => 15788.198912 Tris/sec, MPixel Fill/sec: 78.940995 +SIZE=050 => 58784.121300 Tris/sec, MPixel Fill/sec: 73.480152 +SIZE=025 => 244233.873481 Tris/sec, MPixel Fill/sec: 76.323085 +SIZE=010 => 474995.004191 Tris/sec, MPixel Fill/sec: 23.749750 +SIZE=005 => 475124.354163 Tris/sec, MPixel Fill/sec: 5.939054 +SIZE=002 => 474959.089503 Tris/sec, MPixel Fill/sec: 0.949918 + + +Color/Depth Buffer Clears +478.654830 Clrs/sec, MPixel Fill/sec: 146.906826 + + +PALTEX and GLBPALTX +------------------- + +Sources: paltex.c and glbpaltx.c + +The PALTEX example was written by Brian Paul and it shows the +capabilities of the GL_EXT_paletted_texture extension. I have written +the other example in order to show the capabilities of the +gl3DfxSetPaletteEXT() (it used only by GLQuake and Quake2). diff --git a/progs/images/bw.rgb b/progs/images/bw.rgb new file mode 100644 index 00000000000..f5de0f14026 Binary files /dev/null and b/progs/images/bw.rgb differ diff --git a/progs/images/s128.rgb b/progs/images/s128.rgb new file mode 100644 index 00000000000..79f5c1d98c6 Binary files /dev/null and b/progs/images/s128.rgb differ diff --git a/progs/images/tree2.rgba b/progs/images/tree2.rgba new file mode 100644 index 00000000000..67b02799cf5 Binary files /dev/null and b/progs/images/tree2.rgba differ diff --git a/progs/images/tree3.rgb b/progs/images/tree3.rgb new file mode 100644 index 00000000000..ce2c44dd663 Binary files /dev/null and b/progs/images/tree3.rgb differ