1
0
Fork 0
flightgear/Docs/SOURCE/opengl.tex
2009-09-14 13:30:49 +02:00

242 lines
10 KiB
TeX

%%
%% getstart.tex -- Flight Gear documentation: Installation and Getting Started
%% Chapter file
%%
%% Written by Michael Basler % Bernhard Buckel, starting September 1998.
%%
%% Copyright (C) 1999 Michael Basler (pmb@knUUt.de)
%% & Bernhard Buckel (buckel@wmad95.mathematik.uni-wuerzburg.de)
%%
%% This program is free software; you can redistribute it and/or
%% modify it under the terms of the GNU General Public License as
%% published by the Free Software Foundation; either version 2 of the
%% License, or (at your option) any later version.
%%
%% This program is distributed in the hope that it will be useful, but
%% WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%% General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with this program; if not, write to the Free Software
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%%
%% $Id: getstart.tex,v 0.12 1999/03/07 michael
%% (Log is kept at end of this file)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Getting the engine: Installing \Index{OpenGL} \Index{graphics drivers}\label{opengl}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\markboth{\thechapter.\hspace*{1mm} GETTING THE
ENGINE}{\thesection\hspace*{1mm} 3DFX UNDER LINUX}
\FlightGear's graphics engine is based on a \Index{graphics library} called
\Index{OpenGL}. Its primary advantage is it's platform independence, i.\,e., programs
written with \Index{OpenGL} support can be compiled and executed on several platforms,
given the proper drivers having been installed in advance. Thus, independent of if you
want to run the binaries only or if you want to compile the program yourself you must
install some sort of \Index{OpenGL} support for your \Index{video card}. Naturally, you
can skip this chapter in case you already did (maybe for Quake or some other game).
Unfortunately, there are so many graphics boards, graphics chips and
drivers that we are unable to provide a complete description for all
systems at present, but we hope to be able to extend that section with
the help of others soon. To give beginners a hand, we just describe
what we did to install drivers on our systems.
By any means, should you try getting hardware \Index{OpenGL} drivers for your system,
which is exemplary described in sections \ref{3dfxlinux} to \ref{3DFXwin98}, resp. If you
are unable to locate any such drivers you can try software support\index{OpenGL!software
support} as detailed under \ref{softrend}.
\section{\Index{3DFX} under \Index{Linux}\label{3dfxlinux}}
%%Bernhard, 21.02.1999
An excellent place to search for documentation about Linux and 3D
accelerators is the {\it Linux 3Dfx HOWTO} at
\web{http://www.gamers.org/dEngine/xf3D/howto/3Dfx-HOWTO.html}.
It describes all the following steps in an in-depth fashion and
should be your first aid in case something goes wrong with your 3D
setup.
%%
The \Index{3DFX} graphics card is a quite popular one (We tested
the \Index{Voodoo}1 to work). At first, you need the \Index{GLIDE}
library installed. Grab it at:
\href{http://www.3dfx.com/software/download_glidel.html}{http://www.3dfx.com/software/download\_glidel.html}
\noindent
and install it.
%%Bernhard 21.02.1999%%
Be careful, you need different Glide libraries for the different types of VooDoos (I, II, Banshee).
%%
There is even an install script included that will do things for you. The canonical place
for \Index{GLIDE} is \texttt{/usr/local/glide}, if you prefer another location, you'll
have to edit the Makefile for \FlightGear by hand. Be sure to read and understand the
file \texttt{/usr/local/glide/README}. Next, you need to install the \Index{MESA} library
version 3.0 (or later). Grab it at
\web{ftp://iris.ssec.wisc.edu/pub/Mesa},
\noindent
unpack it and run
\texttt{make linux-glide}
\noindent
in the Mesa directory. Follow the instructions in the \texttt{README}
file, take a close look at \texttt{README.3DFX} and play with the demo
programs.
Besides these, you need the \Index{GLUT} library version 3.7 (or
greater, aka GameGLUT) installed. Grab it at:
\web{http://reality.sgi.com/opengl/glut3/glut3.html}.
\noindent
Note: Glut-3.7 is included with Mesa 3.0 so if you've already grabbed
the latest version of mesa, you should have everything you need.
Finally, some more notes on the behavior of \Index{Voodoo} boards:
Your card comes packaged with a \Index{loop-through-cable}. If you
have only one monitor, then the Voodoo will take it over when
used. This means that all the applications on your desktop will
continue running but you'll only see the \FlightGear screen. If
your window manager uses a focus-follows-mouse policy, don't move
the mouse. If you lose the focus, there's no way to shut down
\FlightGear graciously! Better solution: Use two monitors, one for
your desktop, connect the other one to your accelerator. You'll
then get a window on your desktop which manages all keyboard
events and you're still able to see your desktop.
Running \FlightGear under Linux using a 3DFX accelerator board is
somewhat tricky. Most of the boards behavior is controlled by
environment variables.\index{environment variable} The two most
important are:
\begin{itemize}
\item{\texttt{MESA\_GLX\_FX}}: When set to \texttt{f} rendering will be in
fullscreen mode,
%%Bernhard 21.2.99
\texttt{w} will perform rendering in a window at a significant speed penalty.
%%
\item {\texttt{FX\_GLIDE\_NO\_SPLASH}}:
When set to \texttt{1} the rotating 3DFX logo
won't appear. For a description of all environment
variables\index{environment variable} for VooDooI/II have a look at
\href{http://www.bahnhof.se/~engstrom/e_3dfxvars.htm}{http://www.bahnhof.se/\~{}engstrom/e\_3dfxvars.htm}.
\end{itemize}
This completes preparing your \Index{3DFX} equipped Linux PC for
running \FlightGear\hspace{-2mm}.
%%B.B 21.2.99
Now proceed and install the support files as described later in this document.
%%
\section{Rendition Chipset\index{Rendition chipset} under
\Index{Windows 98/NT}\label{renditionwin}}
This section serves as an example for installing \Index{OpenGL}
drivers under \Index{Windows 98/NT}. The \Index{Rendition 2100
chipset} is, for instance, part of the \Index{Diamond Stealth II}
card performing especially well in somewhat weaker machines.
Diamond itself does not provide any \Index{OpenGL} driver support for that board.
However, Rendition, who make the graphics chip, do. Go to their Web site and grab the
latest \Index{OpenGL} \Index{Windows drivers} from
\web{http://www.rendition.com/download.html}
\noindent
Follow the description in \texttt{readme.txt}. We recommend making
the drivers the default ones by copying them to
\texttt{$\backslash$windows$\backslash$system} (which avoids the
hassle of not being sure which driver actually runs).
With this step you're already done.
According to our experience, so-called \Index{mini-OpenGL} drivers
provided by some manufacturers for making Quake playable do not
provide the level of OpenGL support required by {\FlightGear}. At
least, Rendition's \Index{mini-OpenGL} driver definitely does not.
\section{RIVA TNT Chipset\index{RIVA TNT chipset} under
\Index{Windows 98/NT}\label{rivatnt}}
Because of its high performance, the RIVA TNT is one of the most popular chipsets today.
The \Index{Diamond Viper 550}, ELSA Erazor-2, \Index{Creative Graphics Blaster}, and
more cards are equipped with this chip. At least the default Viper 550 drivers are known
to us having native built-in OpenGL support making any add-on OpenGL drivers obsolete.
Similar things should apply to the other RIVA TNT based cards. In any case, NVIDIA's
reference drivers being available from
\web{http://www.nvidia.com/}
\noindent
do the job as well.
\section{3DFX chip based boards\index{3DFX chip} under
\Index{Windows 98/NT}\label{3DFXwin98}}
The \Index{3DXF} based 3D add-on or 2D/3D boards are perhaps the
most popular ones today at all. \Index{3DFX} made Beta OpenGL
Windows 98 drivers available on their Website at
\web{http://www.3dfx.com}.
\noindent
From the main page go to \texttt{Develop 3DFX} and further to \texttt{SDKs and
Demos} and grab them there.
First, make sure you have the file \texttt{glu32.dll} either under
\texttt{$\backslash$Windows$\backslash$System} or elsewhere in your path. If not, install
the MS OpenGL kit \texttt{opengl95} available from Microsoft or elsewhere on the net.
(Which by itself only provides software rendering.)
Next, locate the file \texttt{3dfxopengl.dll}. in the 3DFX driver package, rename it to
\texttt{opengl32.dll} and copy it into \texttt{$\backslash$Windows$\backslash$System}
overwriting the file with the same name installed from the MS kit. This should get you
going.
\section{\Index{OpenGL} software rendering\index{OpenGL!software rendering}
under Windows 98/NT\label{softrend}}
If you have an accelerated 3D card, it is highly recommended you
install hardware \Index{OpenGL} drivers for your specific card.
However, in case you are really unable to find such drivers and
want to try \FlightGear despite this you can install SGI software
\Index{OpenGL} rendering. For this purpose, get the file
\texttt{sgi-opengl2.exe} from
\web{http://www.flightgear.org/Downloads/}.
\noindent
This is a \Index{Windows 98/NT} self extracting installation
program. Install it by double-clicking in Windows explorer. The
package includes some demo games you may wish to try by invoking
them from the Start menu.
%% Revision 0.00 1998/09/08 michael
%% Initial revision for version 0.53.
%% incl. Linux stuff from b buckel
%% Revision 0.01 1998/09/20 michael
%% several extensions and corrections
%% revision 0.10 1998/10/01 michael
%% added 3dfx stuff from b. buckel
%% final proofreading for release
%% revision 0.11 1998/11/01 michael
%% Remark on mini-OpenGL drivers
%% revision 0.12 1999/03/07 bernhard
%% Complete rewrite of 3DFX/Linux part
%% revision 0.12 1999/03/07 michael
%% Added Riva TNT Win95
%% Added 3DFX Win95