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