3D-grafik för Linux med Voodoo

(98-20) Brist på programvara gör att det bara finns stöd för ett 3D-kort under Linux. Begränsningarna är många och bara vissa tillämpningar fungerar.

Professionell 3D-grafik använder nästan enbart grafikbiblioteket OpenGL. Hur snabba programmen blir avgörs av hur stor del av OpenGL som hanteras av speciell maskinvara i grafikkortet, samt hur bra OpenGL-implementationen är.

Till Linux finns dels ett par kommersiella varianter av OpenGL, dels en klon med fri källkod: Mesa. Problemet är att OpenGL-varianterna inte kan dra nytta av 3D-funktionerna i moderna grafikkort, utan centralprocessorn får göra allt arbete. Resultatet blir att interaktiv 3D-grafik - exempelvis att göra modeller för animering - blir olidligt långsamt.

Eftersom Linux växer snabbt har flera tillverkare annonserat framtida produkter som kan dra nytta av 3D-maskinvara, se länkar.

Men det finns ett alternativ för den som vill ha 3D-grafik idag: Mesa-biblioteket i kombination med ett eller två kort med Voodoo2-chips från 3Dfx.

Det som behövs förutom operativet är Mesa- och 3DFx Glide-biblioteken. Det bästa är kanske att kompilera Mesa själv eftersom det då går att välja optimering för ens egen version av processor och operativ.

Jag hade inga större problem med att kompilera och installera 3Dfx och Mesa-programmen på Redhat 5.1 med de senaste C-biblioteken och kompilatorerna. Det enda som inte fungerade var Posix-trådar, vilket kan vara en nackdel för den som utvecklar trådade program. (Trådade program används till exempel för att få bättre prestanda med flera processorer.)

Mesa är avsevärt sämre optimerat än exempelvis Microsofts OpenGL implementation. Det gör att många program blir märkbart långsammare under Linux än Windows. Om det spelar roll för användandet beror på tillämpningen, det vill säga hur stor del av tiden som spenderas i OpenGL-biblioteket. En Pentium2-maskin är tillräckligt snabb för de flesta tillämpningar och ger bra prestanda för medelstora scener.

Den stora nackdelen ligger istället i att Voodoo2-kortet är skilt från datorns vanliga grafikkort. För de flesta program krävs därför två skärmar: En som visar 3D-grafiken och en med programmenyer, trådmodeller etcetera.

Det går också att koppla Voodoo2-kortet och datorns ordinarie grafikkort till samma skärm och få Mesa att automatiskt byta mellan dem. För att det ska fungera med tilllämpningar måste alla programmenyer göras i OpenGL, vilket är en klumpig lösning.

Ytterligare en begränsning är att Voodoo2 bara klarar en upplösning av 800x600 med 16-bitars färg. Två kort kan parallellkopplas och ger då 1024x768 punkter samt snabbare grafik.

Som jämförelse klarar de flesta professionella grafikkort åtminstone 1280x1024 med 24-bitars färg.

Fördelen är att Mesa är en relativt komplett klon av OpenGL. Många kodexempel från Silicon Graphics följer med och fungerar utan problem.

Slutsatsen är att den som absolut behöver snabb 3D-grafik under Linux just nu mycket väl kan använda en Voodoo2-lösning för egenutvecklade program. Övriga bör välja en annan lösning än Linux - eller vänta.

(Och ja - det går att spela Quake.)

Testfakta

Begränsningar i upplösning och lösningen med två olika grafikkort gör att en Voodoo2-lösning bara passar för speciella 3D-tillämpingar.

Pris: Cirka fyra arbetstimmar plus en tusenlapp för grafikkortet.

Kräver: Linux, Mesa och 3DFx-bibliotek. PCI-buss. Ska i princip fungera på alla processorarkitekturer. Testet gjordes på Intel x86.

Betyg:1

Länkar

glide.xxedgexx.com

Allmän info om 3D-grafik under Linux och vidare länkar till programvaran.

www.metrolink.com

Metrolink har utlovat 3D-stöd i kommande produkter.

www.xig.com

Xi Graphics har också lovat 3D-grafik för Linux.

www.sgi.com

Utvecklarna av OpenGL.

www.ssec.wisc.edu/

~brianp/Mesa.html

OpenGL-klon med fri källkod.

www.3dfx.com

Gör chips för 3D.

Text : Ola Sigurdson

  (19981210)