|
|
SPACESIMULATOR.NET
IS PROUD TO PRESENT...
3D
ENGINE TUTORIALS: FROM VERTICES DEFINITION TO SPACE FIGHTS!
In these lessons I will explain how to
construct a 3d engine in C using OpenGL. I assume that you already have a
basic knowledge of C. If not, I advise you to study it before reading these
tutorials (there are tons of online tutorials for C). The engine that we are
going to build will be structured to account for open environments, include
features suitable for space simulators (after all, we are at
spacesimulator.net) and will take into account that in the future will
be added sections to manage landscapes
and more advanced tutorials in which I will reveal some solutions that I have
implemented in my own 3D engine. However, I will proceed gradually from the
most elementary concepts to the more complex ones.
More advanced tutorials are in development. I
plan to release about four tutorials every year. If you want to keep yourself
informed as to when I will release a new tutorial, please subscribe to the
mailing list by sending a mail to subscribe[at]spacesimulator.net.
I would also appreciate it if you would tell
me your opinion regarding my tutorials: how they are written, conceptual or
grammar mistakes, suggestions and so on. I am only a programmer and I cannot
guarantee that my work is perfect. Surely there are mistakes. I am also not
responsible for any damage that may occur from using my source code and/or the
files from this Web Site.
The code was developed using Visual C, but I
think you won't have too many problems using other compilers. At the moment, I
am looking for ports to other platforms and other languages. Please let me know if you are
interested in doing it.
| N. |
Tutorial
(English) |
Translations |
Source
code |
Screenshots |
Description |
| 1 |
The
3d engine |
Dutch
French
German
Italian
Spanish
|
All
platforms |
 |
Basic
definitions: 3d engine, vertices and polygons. The first step to create
the data structure for a 3d engine. |
| 2 |
OpenGL
and GLUT |
French
Italian |
Windows
Linux
SDL
MAC
OS |
 |
Here we analyze the
rendering pipeline, the graphic library OpenGL and the utility library
GLUT. At the end of this lesson we will be able to show a rotating solid
object! |
| 3 |
Texture
mapping |
|
Windows
Linux
MAC
OS |
 |
How to load
an image and use it to cover an object. This technique is called texture
mapping and is the most responsible for the realism of the scene. |
| 4 |
3ds
Loader |
|
Windows
Linux
SDL
MAC
OS |
 |
The data
structure for a complex object can't be written by hand. There are a lot
of programs that help to create 3d meshes in a very quick way. In this
lesson we study how to load a 3ds file, a format that is really famous
on the net. |
| 5 |
Vectors,
normals and OpenGL
Lighting |
|
Windows
Linux |
 |
Lighting
is the other important thing, after texture mapping, that adds to the
scene further realism. Without lights all the objects seems flat.
We will study also Vectors and normals because they are indispensable to make
lighting calculations. |
| 6 |
Matrices
and multi-objects loading |
|
Windows
|
|
In this lesson we will
improve and extend our object structure, we will be able to load some objects in
our scene and manage their positions and rotations using matrices.
|
| If you want to
support this web site and have the possibility to use the source
code of the next lessons I invite you to make a donation.
Read more info on the
store section!
DONATIONS! THE BEST WAY TO KEEP
ALIVE SPACESIMULATOR.NET!!!
|
| 7 |
Camera
and 3d freedom |
|
Windows
(only exe)
Windows
(source)
|
|
Of
course our biggest aim is to explore the universe by moving ourselves through it as we like, making the monitor a free moving video camera.
How can we do this? Simple: with the videocamera tutorial!
|
| 8 |
Print
fonts using display lists |
|
Windows
(only exe)
Windows
(source)
|
|
All
this advanced graphic programming and then? We forgot to print simple
fonts on the screen! We will do this using a bitmapped font, the best
way to develop multiplatform games!
|
| 9 |
.INI
configuration files - Parser |
|
Windows
(only exe)
Windows
(source)
|
|
Where
can we store all our Universe settings? Ini files are the best choice!
Very useful and portable library to read/write INI files!
|
| 10 |
SDL Framework and FPS calculation |
|
Windows
(only exe)
Windows
(source)
|
|
This
os-platform independent framework will give us the possibility to manage
all the boring stuff that a videogame needs: graphic context, sound and
input.
|
| 11 |
Physics:
Dynamics, Acceleration and Force |
|
Windows
(only exe)
Windows
(source)
|
|
Physics,
the secret to give life to our spaceships. In
this tutorial we will add the essential rules to our engine to simulate
a real universe.
|
| 12 |
Physics: Collision
Detection and Collision Response |
|
Windows
(only exe)
Windows
(source)
|
|
Another
tutorial on Physics: this time we will learn basic collisions detection
and collision response.
|
|
|