blob: a3d0c18bb97b4ac9d603dafb5c3d7fc0dcb65794 [file] [log] [blame]
Brian Pauld88f8e92000-06-27 17:11:24 +00001INTRODUCTION
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).