232 |
Section IV: Questions specific to using OpenGL with the Java version |
Section IV: Questions specific to using OpenGL with the Java version |
233 |
|
|
234 |
----- |
----- |
235 |
1. What video card should I get? |
1. Isn't it a downside not to use pure Java? Can you run the OpenGL version |
236 |
|
on any non-Linux operating systems? Why not java3d? |
237 |
|
|
238 |
|
There are several answers here. |
239 |
|
|
240 |
|
a) OpenGL and GLX are standard APIs, and the same code should run unchanged |
241 |
|
on Solaris, IRIX, etc. Additionally, we have been careful to separate the |
242 |
|
OS-dependent parts into one C++ file, which can easily be ported; I'd estimate |
243 |
|
a week or two of work by a programmer experienced on using OpenGL on |
244 |
|
the platform being ported to. |
245 |
|
|
246 |
|
So the portability is only marginally affected |
247 |
|
|
248 |
|
b) Yes, it is a downside, but the benefits outweigh the costs: |
249 |
|
we really want the advanced properties the OpenGL for freeer visualizations. |
250 |
|
Java2D would only be a stopgap measure and has no *efficient* Linux implementations. |
251 |
|
|
252 |
|
c) Java3D is proprietary; there are no free implementations. We want our |
253 |
|
software to run on a purely free software platform for ideological |
254 |
|
reasons. Yes, we know NVIDIA's drivers are proprietary; however, for most |
255 |
|
OpenGL extensions there are free implementations. |
256 |
|
|
257 |
|
----- |
258 |
|
2. What video card should I get? |
259 |
|
|
260 |
Currently, the recommended cards (on Linux) are as follows |
Currently, the recommended cards (on Linux) are as follows |
261 |
(note, this is just personal opinions; not all the cards below have been |
(note, this is just personal opinions; not all the cards below have been |
262 |
tested and, as usual, we guarantee *nothing*) |
tested and, as usual, we guarantee *nothing*) |
263 |
|
|
264 |
|
Currently, the best option is GeForce4 Ti. |
265 |
|
|
266 |
ATI: |
ATI: |
267 |
- R300: Radeon 9500, 9500PRO, 9700, 9700PRO: GOOD FEATURES, SHAKY DRIVERS. |
- R300: Radeon 9500, 9500PRO, 9700, 9700PRO: GOOD FEATURES, SHAKY DRIVERS. |
|
ATI turned the tables in fall 2002 by releasing a texture |
|
|
shading linux driver. |
|
268 |
|
|
269 |
These boards excellent with the fragment program |
ATI turned the tables in fall 2002 by releasing a texture |
270 |
support. Gzz still has some problems but these will |
shading linux driver. |
271 |
likely be resolved soon since active work is being done |
|
272 |
in the area. |
These boards excellent with the fragment program |
273 |
|
support. Gzz still has some problems but these will |
274 |
Also, the drivers still somewhat unstable but we're |
likely be resolved soon since active work is being done |
275 |
working around that. See GL.workaroundStupidBuggyAtiDrivers |
in the area. |
276 |
for a list of bugs. |
|
277 |
|
Also, the drivers still somewhat unstable but we're |
278 |
|
working around the bugs as hard as we can.. See |
279 |
|
the variable GL.workaroundStupidBuggyAtiDrivers |
280 |
|
for a list of bugs. |
281 |
|
|
282 |
|
There are some bugs we can't work around which will cause |
283 |
|
significant performance degradation in important applications |
284 |
|
(e.g. xupdf) |
285 |
|
|
286 |
- R100, R200: Radeon 7500, 8500, 9000, 9100: AVOID |
- R100, R200: Radeon 7500, 8500, 9000, 9100: AVOID |
287 |
|
|
288 |
- ATI did not have proper Linux drivers with texture |
ATI did not have proper Linux drivers with texture |
289 |
shading support out during the reign of these cards. Therefore, |
shading support out during the reign of these cards. Therefore, |
290 |
we did not buy any and have not developed support for the |
we did not buy any and have not developed support for the |
291 |
ATI_fragment_shader extension, and you will get very suboptimal |
ATI_fragment_shader extension, and you will get very suboptimal |
292 |
results with these. |
results with these; just base OpenGL support. |
293 |
|
|
294 |
If you are into programming and own one of these cards, |
If you are into programming and own one of these cards, |
295 |
it should not be too difficult to rectify the situation; |
it should not be too difficult to rectify the situation; |
300 |
NVIDIA: |
NVIDIA: |
301 |
- NV20: GeForce4 Ti, GeForce3, GeForce3 Ti, GeForce4 Go 4200: RECOMMENDED |
- NV20: GeForce4 Ti, GeForce3, GeForce3 Ti, GeForce4 Go 4200: RECOMMENDED |
302 |
|
|
303 |
- NVIDIA drivers are good and we put their register combiners |
NVIDIA drivers are good and we put their register combiners |
304 |
extensions to active use in Gzz. Libpaper uses texture shading |
extensions to active use in Gzz. Libpaper uses texture shading |
305 |
on NV20, and we are working on vertex programs. |
on NV20, and we are working on vertex programs. The texture shading |
306 |
|
pipeline is slightly restrictive but reasonable. |
307 |
|
|
308 |
- NV10: GeForce2 Ti, GeForce2 MX, GeForce4 MX, GeForce4 Go 460: PASSABLE |
- NV10: GeForce2 Ti, GeForce2 MX, GeForce4 MX, GeForce4 Go 460: PASSABLE |
309 |
|
|
328 |
the graphics MUCH better, but is not absolutely required.. |
the graphics MUCH better, but is not absolutely required.. |
329 |
|
|
330 |
--- |
--- |
331 |
2. I'm a video card / input device / ... manufacturer. How can I get my |
3. I'm a video card / input device / ... manufacturer. How can I get my |
332 |
hardware better supported? |
hardware better supported? |
333 |
|
|
334 |
Well, as usual, no guarantees, but if you donate us cool hardware with |
Well, as usual, no guarantees, but if you donate us cool hardware with |
340 |
9900?), it would probably be fully supported in days. |
9900?), it would probably be fully supported in days. |
341 |
|
|
342 |
--- |
--- |
343 |
3. Why are fragment programs (texture shading) so important for Gzz? |
4. Why are fragment programs (texture shading) so important for Gzz? |
344 |
|
|
345 |
They allow detailed control of the output, pixel by pixel, at amazing |
They allow detailed control of the output, pixel by pixel, at amazing |
346 |
speeds. For instance, rendering unique backgrounds using libpaper stops |
speeds. For instance, rendering unique backgrounds using libpaper stops |
353 |
Quite simply, this is where a lot of our visual experimentation will be |
Quite simply, this is where a lot of our visual experimentation will be |
354 |
happening in the near future. Be there or be square ;) |
happening in the near future. Be there or be square ;) |
355 |
|
|
356 |
|
--- |
357 |
|
5. Isn't the variable name "GL.workaroundStupidBuggyAtiDrivers" a bit |
358 |
|
unprofessional? |
359 |
|
|
360 |
|
So are their drivers :( |
361 |
|
|
362 |
|
For instance, advertising the opengl compressed extension and not |
363 |
|
implementing the entry point glCompressedTexImage2DARB is pretty bad. |
364 |
|
|
365 |
|
I will change the name once I see them fixing some of the most |
366 |
|
glaring problems. |
367 |
|
|