| Q&A |
Nicolas Schulz
Horde3D
Oct. - 2006
|
| |
 |
"Due
to the shader-driven architecture of the engine the
skinning for the skeletal animation can be done completely
on the graphics card. This saves much CPU power and
memory bandwidth."
<
Horde3D in action |
|
| |
|
| Q1 |
Please
give a brief presentation of the Horde3D team. |
| A1 |
Horde3D
is currently still a one man project which is supported financially
and consultatively by the German University of Augsburg. I
myself have been an enthousiastic 3d engine developer for
many years now and have worked in an ambitious indie game
development group. At the moment I am employed at the university
as a student researcher working on projects shown at several
expositions including the well-known CeBit. |
| |
|
| Q2 |
Horde3D
is a new engine with an optimized managment of resources. Does
this improve 3D performance? |
| A2 |
Resource
management doesn't improve rendering performance directly
but it can speed up loading times and optimize memory consumption.
Resource management is acually an integral base part of any
graphics engine and is thus nothing special. But what we try
to do for Horde3D is making the resource management as robust
as possible. This is achieved by defining a reasonable default
behavior when some files cannot be loaded and by integrating
a simple garbage collector for handling dependencies between
resources. |
| |
|
| Q3 |
What
are the features of Horde3D considering rendering? |
| A3 |
Horde3D
is completely based on shaders and gives you all of their
flexibility. For this reason the engine supports most of the
modern rendering techniques including normal mapped phong
lighting and parallax occlusion mapping. Furthermore Horde3D
uses deferred shading for doing lighting calculations. This
makes it possible to have more light sources in a scene than
with the usual forward renderers and will enable us to do
some cool next-generation atmospheric effects like volumetric
fog, soft particles and realtime clouds. The next things to
be implemented are some sort of soft shadows and facial animation
with support for lip synchronization. |
| |
|
| Q4 |
What
kind of 3D formats are supported? Do you plan to support Collada? |
| A4 |
We
are focusing completely on Collada for importing 3d models to
the engine. Collada is a great invention and takes the burden
from developers to write and maintain several exporters for
the different modelling packages. We have a Collada tool which
reads Collada 1.4 assets and converts them to an optimized Horde3D
specific format which minimizes loading times for models. |
| |
|
| Q5 |
What
makes Horde3D simpler than other 3D engines? |
| A5 |
Horde3D
has another philosophy than some of the other famous open-source
engines. From the perspective of a game programmer using the
engine, it is not intended to be an enormous class library
but a simple C-style DLL with a few intuitive API functions.
This has the advantage that the learning curve for employing
the engine is strongly reduced and that it is very easy to
use the engine from most programming languages and even scripting
languages like LUA. Furthermore we are trying to keep the
internal structure as lightweight and clean as possible. To
accomplish this we are not offering a plenty of different
ways to achieve a goal but only one that we think is best
for the majority of applications. Using this philosophy it
was possible to implement the engine core with all of the
current features with less than 5000 lines of code. |
| |
|
| Q6 |
What
makes Horde3D so powerful for character animation and crowds? |
| A6 |
Due
to the shader-driven architecture of the engine the skinning
for the skeletal animation can be done completely on the graphics
card. This saves much CPU power and memory bandwidth. Additionally,
as already mentioned, we are using deferred shading as major
lighting technique.
This implies that the geometry only has to be drawn once independent
of the number of lights in the scene. So it is perfectly suited
for scenes with many polygons using complex per-pertex calculations
as is common in animated crowd scenarios. |
| |
|
| Q7 |
What
is the license of Horde3D? |
| A7 |
Horde3D
is licensed under the GNU Lesser General Public License (LGPL).
So basically it is free to be used in any type of applications
including commercial ones as long as modifications to the source
code are released back to the community. Additionally we are
also open for dual licensing if you have concerns with the LGPL
for your commercial project. |
| |
|
| Q8 |
Horde3D
is OpenGL based, do you plan any OpenGL ES version? |
| A8 |
Horde3D
is intended to be a next-generation engine. This means it is
thought for games with rather detailed scenes and advanced graphical
effects. At the moment mobile devices don't have the necessary
power for this and the screens are just too small for the details
to make sense. That's why I myself don't plan to do an OpenGL
ES port in the foreseeable future. |
| |
|
| |
|
| |
|
| |
|
| |
|