510 lines
15 KiB
Plaintext
510 lines
15 KiB
Plaintext
3D Graphics Modelling and Rendering mini-HOWTO
|
||
Dave Jarvis
|
||
v1.1, 27 March 2001
|
||
|
||
Details download and installation instructions for a graphics render
|
||
ing and modelling development environment using RedHat Linux.
|
||
______________________________________________________________________
|
||
|
||
Table of Contents
|
||
|
||
|
||
1. Introduction
|
||
|
||
1.1 Preamble
|
||
1.2 Modelling vs. Modeling
|
||
1.3 Copyright Information
|
||
|
||
2. Background Information
|
||
|
||
2.1 The Graphics Library
|
||
2.2 The Graphics Modeller
|
||
2.3 The Graphics Renderer
|
||
|
||
3. Installation Instructions
|
||
|
||
3.1 Warning
|
||
3.2 Download the Software
|
||
3.3 Install the Graphics Library
|
||
3.4 Install the Graphics Renderer
|
||
3.5 Install the Graphics Modeller
|
||
3.6 Clean Up
|
||
|
||
4. Miscellaneous Information
|
||
|
||
4.1 Lighting
|
||
4.2 Tutorials
|
||
|
||
5. Related Links
|
||
|
||
5.1 Graphics Libraries
|
||
5.2 Graphics Renderers
|
||
5.3 Graphics Modellers
|
||
5.4 Miscellaneous Links
|
||
|
||
6. Acknowledgements
|
||
|
||
|
||
|
||
______________________________________________________________________
|
||
|
||
1. Introduction
|
||
|
||
1.1. Preamble
|
||
|
||
This document will guide you through the steps used to install and
|
||
configure an environment for modelling and rendering three-dimensional
|
||
graphics using Linux. In this section you will also find information
|
||
in laymans terms about the required components and how they piece
|
||
together. The installation section is purposely minimal; merely the
|
||
quick and dirty steps needed to take to get up and running (if it
|
||
doesn't work, more information is available). For those that want
|
||
more information about the software components and what they do (in
|
||
general), please continue reading.
|
||
|
||
There are, at the minimum, three software packages you'll need in
|
||
order to get up and running. These are as follows (in the order they
|
||
are explained, not the order they are installed):
|
||
|
||
|
||
· a graphics library;
|
||
|
||
· a graphics modeller;
|
||
|
||
· a graphics renderer.
|
||
|
||
1.2. Modelling vs. Modeling
|
||
|
||
The spelling modelling is Canadian. The spelling modeling is
|
||
American. The original author of this document is Canadian. ;-)
|
||
|
||
1.3. Copyright Information
|
||
|
||
Copyright © 2000-2001 Dave Jarvis
|
||
|
||
This document may be reproduced in whole or in part, without fee,
|
||
subject to the following restrictions:
|
||
|
||
|
||
· the copyright notice above and this permission notice must be
|
||
preserved complete on all complete or partial copies;
|
||
|
||
· any translation or derived work must be approved by the author in
|
||
writing before distribution;
|
||
|
||
· if you distribute this work in part, instructions for obtaining the
|
||
complete version of this manual must be included, and a means for
|
||
obtaining a complete version provided;
|
||
|
||
· small portions may be reproduced as illustrations for reviews or
|
||
quotes in other works without this permission notice if proper
|
||
citation is given.
|
||
|
||
2. Background Information
|
||
|
||
The content of this section exists only to describe, in general, the
|
||
three main components required for three-dimensional modelling and
|
||
rendering with a Linux-based system.
|
||
|
||
2.1. The Graphics Library
|
||
|
||
A graphics library consists of the most basic tools used for
|
||
manipulating graphical images. Think of all the things needed to
|
||
build a house: wiring, plumbing, wood, bricks, and such. The graphics
|
||
library can be thought of as not these items, but rather the tools
|
||
used create such items. After all, wire, metal tubes, planks, and
|
||
bricks don't magically appear; rather they are created and formed as
|
||
entities unto themselves. On a similar note, graphics don't magically
|
||
appear on the screen -- typically they consist of lower-level graphics
|
||
primatives (lines, rectangles, and individual pixels, for example).
|
||
|
||
So the graphics library, then, can be thought of as the low-level
|
||
graphics primatives used to build more complex objects (spheres,
|
||
boxes, complex polygons, etc.). Those complex objects are then used
|
||
to build even more complicated shapes and figures.
|
||
|
||
The graphics library installed was the freeware implementation of
|
||
OpenGL called Mesa.
|
||
|
||
2.2. The Graphics Modeller
|
||
|
||
Since the graphics renderer is, ideally, completely hidden from the
|
||
end-user, we'll deal with that last (besides which, modelling is the
|
||
next logical step in keeping with my house-building analogy).
|
||
However, when it comes to the actual installation, a graphics modeller
|
||
relies on the renderer already being installed.
|
||
|
||
If the graphics library is akin to the tools used to build the tools
|
||
used to build a house (!), then graphics modellers can be thought of
|
||
as the tools used to build the blueprints for the house --
|
||
sophisticated blueprints, as modellers let you dictate exactly where
|
||
the wiring, plumbing, wood panels, bricks, and forth are supposed to
|
||
go. Furthermore, they let you pick the style of panelling and the
|
||
colour of the bricks you desire.
|
||
|
||
The graphics modeller installed was the freeware package called The
|
||
Mops, which produces RenderMan-compatible files.
|
||
|
||
2.3. The Graphics Renderer
|
||
|
||
In keeping with the house-building analogy, the graphics renderer is
|
||
then the construction workers. Once you have the blueprints and
|
||
materials ready to go, you need something to actually build the house
|
||
so it appears how it was designed. The graphics renderer is given
|
||
information (i.e., the blueprints in the form of a RenderMan-
|
||
compatible file, or equivalent) from the the modeller to produce the
|
||
final result.
|
||
|
||
Just as the graphics modeller needs the graphics renderer before it
|
||
can be installed, the renderer relies on the graphics library being
|
||
installed beforehand.
|
||
|
||
The graphics renderer installed was the Blue Moon Rendering Toolkit
|
||
which uses RenderMan files.
|
||
|
||
3. Installation Instructions
|
||
|
||
Keep in mind that these are brief instructions; a quick summary of the
|
||
more important details you'll find listed in README files for the
|
||
corresponding software packages. It is, by no means, a substitute for
|
||
actually reading those files (as they contain copyright information
|
||
and other instructions not necessarily covered by this document).
|
||
|
||
3.1. Warning
|
||
|
||
First, let it be known that this document only covers how to get up
|
||
and running using RedHat v7.0. Whenever given the choice as to which
|
||
software package to download, please make sure it is compatible with
|
||
the flavour of Linux you happen to be running.
|
||
|
||
Second, please only send E-mail if you have information that would be
|
||
helpful to other people who might read this document (such as
|
||
explaining how to install other tools, pointers to other tutorials,
|
||
missing steps grammar and/or speling mistakes and/or tpyos, etc.). If
|
||
software doesn't compile, or you can't figure it out, please read its
|
||
accompanying documentation. Please understand that your system may be
|
||
completely different, and as such debugging problems via E-mail across
|
||
the Internet is not a task anyone enjoys. ;-)
|
||
|
||
Third, these are software packages that installed without any severe
|
||
hitches (read: severe headaches). In the Related Links section, there
|
||
are alternate software packages along side the ones covered below.
|
||
Note that just because a given software package is not covered in
|
||
depth does not mean it is any worse (or better) than those chosen to
|
||
install.
|
||
|
||
Good luck!
|
||
|
||
|
||
3.2. Download the Software
|
||
|
||
Before you begin, you will need a web browser and Unix shell. If you
|
||
don't know how to use a shell [bash, ksh, etc.], you're own your own
|
||
(although instructions are given in both English and shell commands).
|
||
|
||
Unless otherwise specified, all instructions are to be carried out as
|
||
root.
|
||
|
||
|
||
|
||
1. Create a new directory /usr/local/archives for the packages:
|
||
|
||
|
||
mkdir /usr/local/archives
|
||
|
||
|
||
|
||
2. Download the following packages (in .tar.gz form) into the newly
|
||
created directory (homepages are given, as well as links to
|
||
download pages, and minimum software version):
|
||
|
||
|
||
· Mesa Graphics Library <http://www.mesa3d.org/> v3.4.1:
|
||
www.mesa3d.org/download.html <http://www.mesa3d.org/download.html>
|
||
|
||
· Blue Moon Rendering Toolkit <http://www.bmrt.org/> v2.6beta:
|
||
www.bmrt.org/BMRTdownload/index.html
|
||
<http://www.bmrt.org/BMRTdownload/index.html>
|
||
|
||
· The Mops <http://www.informatik.uni-rostock.de/~rschultz/mops/>
|
||
v0.42d: www.informatik.uni-rostock.de/~rschultz/mops/download.html
|
||
<http://www.informatik.uni-rostock.de/~rschultz/mops/download.html>
|
||
|
||
3.3. Install the Graphics Library
|
||
|
||
Old versions of tar do not support the z argument. For those systems,
|
||
leave out the z argument and use gunzip on the file before using tar.
|
||
|
||
|
||
1. Change to the /usr/local/archives directory:
|
||
|
||
|
||
cd /usr/local/archives
|
||
|
||
|
||
|
||
2. Extract Mesa (substitute version number where required):
|
||
|
||
|
||
tar zxf MesaLib-3.4.1.tar.gz
|
||
tar zxf MesaDemos-3.4.1.tar.gz
|
||
|
||
|
||
|
||
3. Change to the MesaLib subdirectory:
|
||
|
||
|
||
cd Mesa-3.4.1
|
||
|
||
4. Configure, make, and install Mesa with the following sequence of
|
||
commands:
|
||
|
||
|
||
./configure; make; make install
|
||
|
||
|
||
|
||
5. Edit /etc/ld.so.conf, and ensure you have a line that reads:
|
||
|
||
|
||
/usr/local/lib
|
||
|
||
|
||
|
||
6. Run the dynamic library configuration program:
|
||
|
||
|
||
ldconfig
|
||
|
||
|
||
|
||
3.4. Install the Graphics Renderer
|
||
|
||
|
||
1. Return to the /usr/local/archives directory:
|
||
|
||
|
||
cd ..
|
||
|
||
|
||
|
||
2. Extract the Blue Moon Rendering Toolkit (substitute version number
|
||
where required):
|
||
|
||
|
||
tar zxf BMRT2.6beta.linux-glibc2.tar.gz
|
||
|
||
|
||
|
||
3. Change to the BMRT subdirectory:
|
||
|
||
|
||
cd BMRT2.6
|
||
|
||
|
||
|
||
4. Copy files to appropriate destination directories:
|
||
|
||
|
||
cp bin/* /usr/local/bin/
|
||
cp lib/lib* /usr/local/lib/
|
||
cp include/* /usr/local/include/
|
||
|
||
|
||
5. Make a directory for the shaders, ensure it is world-writable, then
|
||
copy the shader files into it:
|
||
|
||
|
||
mkdir /usr/local/shaders
|
||
chmod 777 /usr/local/shaders
|
||
cp shaders/*.sl* /usr/local/shaders/
|
||
cp shaders/*.h /usr/local/shaders/
|
||
cp examples/*.sl* /usr/local/shaders/
|
||
cp examples/*.h /usr/local/shaders/
|
||
|
||
|
||
|
||
6. Edit the system login profile (/etc/profile or equivalent), and add
|
||
the line:
|
||
|
||
|
||
export SHADERS=.:/usr/local/shaders
|
||
|
||
|
||
|
||
7. Copy the .rendribrc file to each user's home directory.
|
||
|
||
If anything goes wrong, please consult the README file that
|
||
accompanies the Blue Moon Rendering Toolkit, or visit their website.
|
||
|
||
3.5. Install the Graphics Modeller
|
||
|
||
The Mops may be installed on a per-user basis, or on a system-wide
|
||
basis by root (or equivalent). In this example, it is installed using
|
||
a non-administrative account, which should yield positive results.
|
||
Note that the compile failed during the install (missing a C header
|
||
file), so the precompiled binaries (compatible with RedHat v6.0, your
|
||
system may vary) were installed, as follows:
|
||
|
||
|
||
1. Change to one directory above where you'd like The Mops to reside.
|
||
For example, if /usr/local/mops was desired, then issue the
|
||
following command:
|
||
|
||
|
||
cd /usr/local
|
||
|
||
|
||
|
||
2. Extract the mops (substitute number where required), then change
|
||
into its directory:
|
||
|
||
|
||
tar zxf /usr/local/archives/mops-0.42d-BMRT26-linux.tar.gz
|
||
cd mops
|
||
|
||
|
||
|
||
3. Move the following files from /usr/local/mops/src to
|
||
/usr/local/mops:
|
||
|
||
|
||
mv src/crtmopssh.sh .
|
||
mv src/mfio.so .
|
||
mv src/mops .
|
||
|
||
|
||
|
||
4. Copy the .mopsrc file to the home directory of each user wanting to
|
||
run The Mops. For example, the user "jane" would need the
|
||
following commands run:
|
||
|
||
|
||
|
||
cp src/mopsrc /home/jane/.mopsrc
|
||
|
||
|
||
|
||
5. Create /usr/local/lib/mops and move the buttons and shaders:
|
||
|
||
|
||
mkdir /usr/local/lib/mops/
|
||
mv buttons/* /usr/local/lib/mops/
|
||
mv shader/*.sl* /usr/local/shaders/
|
||
|
||
|
||
|
||
If anything goes wrong, please consult the README and Setup.txt files
|
||
that accompany The Mops, or visit their website.
|
||
|
||
Log out from root. Log in as a regular user, and run The Mops as
|
||
follows:
|
||
|
||
|
||
|
||
/usr/local/mops/mops
|
||
|
||
|
||
|
||
You may wish to create a subdirectory within $HOME/mops called models
|
||
for saving 3D models.
|
||
|
||
3.6. Clean Up
|
||
|
||
Now that the installation is complete, you can remove from your system
|
||
all files that you no longer require (substituting version numbers
|
||
where required).
|
||
|
||
|
||
|
||
cd /usr/local/archives/
|
||
rm -rf BMRT2.6
|
||
rm -rf Mesa-3.4.1
|
||
|
||
|
||
|
||
Note: Be cautious when using rm -rf ... make sure you are in the
|
||
correct directory, and the files and/or directories you wish to delete
|
||
are present.
|
||
|
||
|
||
4. Miscellaneous Information
|
||
|
||
Instead of a frequently asked questions section, here is information
|
||
about some of the (almost embarassing) problems faced.
|
||
|
||
4.1. Lighting
|
||
|
||
The most frustrating problem, initially, was trying to figure out why
|
||
everything was black -- and then how to actually light objects up. In
|
||
these "virtual worlds" where you are modelling objects, the worlds are
|
||
created from scratch. There is no light in the world until you
|
||
actually put a light source in it! The light sources then shine a
|
||
given direction, illuminating things in their path (according to the
|
||
surface properties of the objects). Make certain that your light
|
||
source is:
|
||
|
||
|
||
1. pointing (rotated and translated) in the correct direction;
|
||
|
||
2. intense enough to actually cast discernable lighting.
|
||
|
||
4.2. Tutorials
|
||
|
||
The most basic thing a person would want to do with
|
||
modelling/rendering packages is position a sphere on a surface, give
|
||
it some lighting, and see the result. A decent tutorial should
|
||
describe that first.
|
||
|
||
That said, The Mops has a wonderful first tutorial
|
||
<http://www.informatik.uni-rostock.de/~rschultz/mops/tut1/tut1.html>.
|
||
|
||
5. Related Links
|
||
|
||
5.1. Graphics Libraries
|
||
|
||
Mesa <http://www.mesa3d.org/> - An OpenGL-compliant Graphics Library.
|
||
|
||
5.2. Graphics Renderers
|
||
|
||
BMRT <http://www.bmrt.org/> - The Blue Moon Rendering Toolkit.
|
||
|
||
POV-Ray <http://www.povray.org/> - The Persistence of Vision
|
||
Raytracer.
|
||
|
||
5.3. Graphics Modellers
|
||
|
||
The Mops <http://www.informatik.uni-rostock.de/~rschultz/mops/> - A 3D
|
||
modelling package that uses BMRT.
|
||
|
||
Blender <http://www.blender.nl> - Freeware modelling and rendering
|
||
suite of tools.
|
||
|
||
5.4. Miscellaneous Links
|
||
|
||
Here are some links that don't really fit into any other category, yet
|
||
are still worthwhile checking out if you are seriously considering
|
||
using your Linux computer as a 3D modelling and rendering machine.
|
||
|
||
3D Software for Linux <http://glide.xxedgexx.com/software.html> -
|
||
Contains most (if not all) links in this document and then some.
|
||
|
||
3D Modelling Software for Linux
|
||
<http://ntua.linuxberg.com/x11html/gra_3d.html> - Links to software
|
||
packages chiefly related to modelling.
|
||
|
||
|
||
3D Modelling and Rendering using Linux <http://linux3d.netpedia.net> -
|
||
A comprehensive site with articles and software that explains what
|
||
this document summarizes.
|
||
|
||
6. Acknowledgements
|
||
|
||
I would like to extend a heart-felt thanks to the developers of the
|
||
software packages detailed in this document. The quality of their
|
||
products is of a commercial level, yet they keep the spirit of free
|
||
software alive. Well done!
|
||
|
||
|
||
|