<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://horde3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Volker</id>
		<title>Horde3D Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://horde3d.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Volker"/>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Special:Contributions/Volker"/>
		<updated>2026-04-05T20:44:05Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.3</generator>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=785</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=785"/>
				<updated>2017-03-23T13:00:41Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://hcm-lab.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://hcm-lab.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://hcm-lab.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://hcm-lab.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://hcm-lab.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio ====&lt;br /&gt;
To compile the Editor yourself with Visual Studio 2008 or 2010:&lt;br /&gt;
# Download the [http://qt-project.org/downloads#qt-lib Qt libraries for Windows]. Make sure to choose the correct file (VS 2008 or VS 2010)!&lt;br /&gt;
# Install the libraries and remember the path (e.g. C:\Qt )&lt;br /&gt;
# Set your environment variables (Control Panel\System\Environment Variables):&lt;br /&gt;
## Add a new user-variable &amp;quot;QTDIR&amp;quot; and set it to the Qt folder (e.g. ''c:\Qt\4.8.2'' ).&lt;br /&gt;
## Add the directory of Qt's bin-folder to the system &amp;quot;Path&amp;quot;-variable (e.g. ''C:\Qt\4.8.2\bin;'').&lt;br /&gt;
# Restart your pc.&lt;br /&gt;
# Open the solution ''Horde3DEditor_XXXX_with_GameEngine.sln'' (2008/2010 depending on your VS version) and build it.&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio 2005 ====&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
=== Linux &amp;amp; Mac ===&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
For the installation under a Linux or MacOS environment you have to install at least&lt;br /&gt;
the Qt development libraries version 4.3.3 or above and CMake 2.8.3 to be able to compile the editor. &lt;br /&gt;
You will also need OpenAL (with development files) and ogg (also with developement files).&lt;br /&gt;
&lt;br /&gt;
After checking out the whole community&lt;br /&gt;
svn trunk (svn co http://hcm-lab.de/public/Horde3D/trunk/), you have to create some temporary build directory and call&lt;br /&gt;
cmake from within that directory with the Tools/Horde3DEditor directory of the community branch checkout as argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
&lt;br /&gt;
Depending on the editor version you're using there may be an additional wizzard&lt;br /&gt;
page comming next, that allows you to define Horde3D's resource directories.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Since the usage of those directories is deprecated the current community branch version of the editor does not offer this page anymore (so skip this step in the video tutorial)'''.&lt;br /&gt;
&lt;br /&gt;
Otherwise after choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=784</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=784"/>
				<updated>2017-03-23T12:59:22Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://hcm-lab.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio ====&lt;br /&gt;
To compile the Editor yourself with Visual Studio 2008 or 2010:&lt;br /&gt;
# Download the [http://qt-project.org/downloads#qt-lib Qt libraries for Windows]. Make sure to choose the correct file (VS 2008 or VS 2010)!&lt;br /&gt;
# Install the libraries and remember the path (e.g. C:\Qt )&lt;br /&gt;
# Set your environment variables (Control Panel\System\Environment Variables):&lt;br /&gt;
## Add a new user-variable &amp;quot;QTDIR&amp;quot; and set it to the Qt folder (e.g. ''c:\Qt\4.8.2'' ).&lt;br /&gt;
## Add the directory of Qt's bin-folder to the system &amp;quot;Path&amp;quot;-variable (e.g. ''C:\Qt\4.8.2\bin;'').&lt;br /&gt;
# Restart your pc.&lt;br /&gt;
# Open the solution ''Horde3DEditor_XXXX_with_GameEngine.sln'' (2008/2010 depending on your VS version) and build it.&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio 2005 ====&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
=== Linux &amp;amp; Mac ===&lt;br /&gt;
==== Requirements ====&lt;br /&gt;
For the installation under a Linux or MacOS environment you have to install at least&lt;br /&gt;
the Qt development libraries version 4.3.3 or above and CMake 2.8.3 to be able to compile the editor. &lt;br /&gt;
You will also need OpenAL (with development files) and ogg (also with developement files).&lt;br /&gt;
&lt;br /&gt;
After checking out the whole community&lt;br /&gt;
svn trunk (svn co http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/), you have to create some temporary build directory and call&lt;br /&gt;
cmake from within that directory with the Tools/Horde3DEditor directory of the community branch checkout as argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
&lt;br /&gt;
Depending on the editor version you're using there may be an additional wizzard&lt;br /&gt;
page comming next, that allows you to define Horde3D's resource directories.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Since the usage of those directories is deprecated the current community branch version of the editor does not offer this page anymore (so skip this step in the video tutorial)'''.&lt;br /&gt;
&lt;br /&gt;
Otherwise after choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=How_to_contribute&amp;diff=782</id>
		<title>How to contribute</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=How_to_contribute&amp;diff=782"/>
				<updated>2014-03-03T21:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to contribute ==&lt;br /&gt;
&lt;br /&gt;
There are '''three''' main channels to contribute to the '''Horde3D''' project:&lt;br /&gt;
&lt;br /&gt;
# [http://www.horde3d.org/forums/ Forum]: contribute to create a friendly community.&lt;br /&gt;
# [http://www.horde3d.org/wiki/ Wiki]: help us documenting the project.&lt;br /&gt;
# [https://github.com/horde3d/Horde3D GitHub]: use your coding skills to improve the technology.&lt;br /&gt;
&lt;br /&gt;
=== Report an issue ===&lt;br /&gt;
&lt;br /&gt;
To report an issue, please use the official '''Issue Tracker''' at:&lt;br /&gt;
&lt;br /&gt;
https://github.com/horde3d/horde3d/issues&lt;br /&gt;
&lt;br /&gt;
=== Become a contributor ===&lt;br /&gt;
&lt;br /&gt;
To contribute with code, please follow this workflow:&lt;br /&gt;
&lt;br /&gt;
# [https://github.com/horde3d/horde3d/fork Fork] the project.&lt;br /&gt;
# Clone it on your machine.&lt;br /&gt;
# Code it!&lt;br /&gt;
# Commit &amp;amp; push back to your fork.&lt;br /&gt;
# Prepare a [https://help.github.com/articles/using-pull-requests pull request].&lt;br /&gt;
&lt;br /&gt;
=== Repository structure ===&lt;br /&gt;
&lt;br /&gt;
According to the project vision of '''to be simple''', the official [https://github.com/horde3d/horde3d GitHub repository] contains '''two''' branches:&lt;br /&gt;
&lt;br /&gt;
* '''master:''' ''last stable release + critical fixes''. It could generate new '''releases'''.&lt;br /&gt;
* '''develop:''' ''last stable release + critical fixes (merged from master) + new (almost stable) features''. It cannot generate new '''releases'''.&lt;br /&gt;
&lt;br /&gt;
When the '''codebase''' is considered stable on ''develop branch'', it is merged back to ''master brach'' and a new '''release''' is generated.&lt;br /&gt;
&lt;br /&gt;
=== Restrictions ===&lt;br /&gt;
&lt;br /&gt;
You are not allowed to upload copyright protected files. You should commit only tested things and should not upload code that does not compile on your own development platform. If you are not sure if things you've developed are running on other platforms please specify in your '''pull request''', so other people get informed and can test it on their platforms.&lt;br /&gt;
&lt;br /&gt;
We can only accept code that is distributed under the EPL license or a compatible license and assume that your submission is under that (EPL) license if not specified otherwise.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=SVN_Source_Instructions&amp;diff=770</id>
		<title>SVN Source Instructions</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=SVN_Source_Instructions&amp;diff=770"/>
				<updated>2013-11-26T19:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The latest Horde3D code and sample assets can be checked out from the official trunk hosted at SourceForge.&lt;br /&gt;
&lt;br /&gt;
*If you use Tortoise SVN, simply do a checkout with: &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;svn://svn.code.sf.net/p/horde3d/code/trunk&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you are using command line svn:&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;svn co svn://svn.code.sf.net/p/horde3d/code/trunk horde3d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the [[Building_Horde3D|build instructions]] for your platform to compile the source.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=769</id>
		<title>Building Horde3D</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=769"/>
				<updated>2013-10-14T13:19:14Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
This article contains instructions for building Horde3D from source on all supported platforms. Since Horde3D is very lightweight and has a minimal amount of external dependencies, getting it to compile and run is usually quite straightforward.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the SDK ==&lt;br /&gt;
&lt;br /&gt;
Besides the [http://sourceforge.net/projects/horde3d/files/ official release packages], there is also a subversion repository hosted at SourceForge which is usually more up-to-date than the stable point releases.&lt;br /&gt;
&lt;br /&gt;
The repository has the common SVN structure ''branches'', ''tags'' and ''trunk''. The latest development snapshot can be found in the ''trunk'' folder, while the official releases are tagged in the ''tags'' folder. If you check out the trunk folder, you will get the SDK along with all official extensions.&lt;br /&gt;
&lt;br /&gt;
See [[SVN Source Instructions]] for instructions on how to obtain code from Subversion.&lt;br /&gt;
&lt;br /&gt;
== Building on Windows ==&lt;br /&gt;
&lt;br /&gt;
The preferred way of building Horde3D on Windows is using '''Visual Studio'''. The SDK comes with a solution file for Visual Studio 2005 that can be opened with the Visual C++ Express Edition as well. If you have Visual Studio 2008 (Standard/Professional or Express), you can simply use the VS Conversion Wizard to update the solution and project files. The solution contains the samples that can be started directly from Visual Studio. Just set the desired sample as startup project.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use CMake to create the Visual Studio solution files. The process is similar to what you do on Linux then. However, if you want to use Visual Studio's ''nmake'', you usually have to use the Visual Studio Command Prompt instead of the standard ''cmd'' shell. Sample batch files for creating VS 2005 and 2008 projects can be found in the ''CMake'' folder located in the Horde3D repository.&lt;br /&gt;
&lt;br /&gt;
== Building on Linux ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D SDK is compatible with gcc and ships with [http://www.cmake.org CMake] configuration files. To build Horde3D, just switch to the Horde3D root directory. Create a new directory which will contain the makefiles created by CMake, for example ''CMake'' and change into it. After that, type&lt;br /&gt;
&lt;br /&gt;
  cmake ..&lt;br /&gt;
&lt;br /&gt;
which will create the makefiles. Once they are created, you can type &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; to build the code or &amp;lt;tt&amp;gt;make clean&amp;lt;/tt&amp;gt; to remove all generated files.&lt;br /&gt;
&lt;br /&gt;
=== Linkage order for your application ===&lt;br /&gt;
You must link Horde3D library to your final executable before GL one.&lt;br /&gt;
&lt;br /&gt;
'''WRONG''':&lt;br /&gt;
  g++ -o app main.cpp -lGL '''-lHorde3D'''&lt;br /&gt;
&lt;br /&gt;
'''RIGHT''':&lt;br /&gt;
  g++ -o app main.cpp '''-lHorde3D''' -lGL&lt;br /&gt;
&lt;br /&gt;
This is required for GCC 3.x and 4.x series on Linux. If you don't follow the linkage order, you will get [http://horde3d.org/forums/viewtopic.php?f=2&amp;amp;t=384 glCreateShader error within h3dInit call].&lt;br /&gt;
&lt;br /&gt;
== Building on Max OS X ==&lt;br /&gt;
&lt;br /&gt;
Mac OS X is an advanced graphical system layered over a traditional Unix core. Because of this, you can either use Apple's graphical Xcode IDE to develop Horde3D based applications, or you can go the traditional Unix way using gcc and makefiles.&lt;br /&gt;
&lt;br /&gt;
==== The Mac Way Using Xcode ====&lt;br /&gt;
&lt;br /&gt;
To create the Xcode project files, you have to install CMake first. After installing the CMake command line tools (so choose NOT to skip the installation when asked during the CMake installation), you should be able to run CMake from the console. Switch to Horde3D root directory and create a new directory in which the CMake output will be stored, for example ''CMake''. Change the current directory to that newly created one and type&lt;br /&gt;
&lt;br /&gt;
  cmake -G &amp;quot;Xcode&amp;quot; ..&lt;br /&gt;
&lt;br /&gt;
You should now be able to open the newly created project in Xcode in order to build Horde3D.&lt;br /&gt;
&lt;br /&gt;
==== The Unix Way Using the Command Line ====&lt;br /&gt;
&lt;br /&gt;
To create the Makefiles, you have to install CMake first. After installing the CMake command line tools (so choose NOT to skip the installation when asked during the CMake installation), you should be able to run CMake from the console. Switch to Horde3D root directory and create a new directory in which the CMake output will be stored, for example ''CMake''. Change the current directory to that newly created one and type&lt;br /&gt;
&lt;br /&gt;
  cmake -G &amp;quot;Unix Makefiles&amp;quot; ..&lt;br /&gt;
&lt;br /&gt;
The current directory should now contain a set of Makefiles, and you can build Horde3D by typing&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
be warned that this makefile method generates an incorrect directory structure, and you may have to move the ''Content'' directory up one level before the samples will find their data.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
==== A minimal app to test your include\linker settings ====&lt;br /&gt;
  #include &amp;quot;glfw.h&amp;quot;&lt;br /&gt;
  #include &amp;quot;Horde3D.h&amp;quot;&lt;br /&gt;
  #include &amp;quot;Horde3DUtils.h&amp;quot;&lt;br /&gt;
  int main()&lt;br /&gt;
  {&lt;br /&gt;
    glfwInit();&lt;br /&gt;
    if(!glfwOpenWindow(640,480,8,8,8,8,24,8,GLFW_WINDOW))&lt;br /&gt;
    {&lt;br /&gt;
        glfwTerminate();&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    h3dInit();&lt;br /&gt;
    h3dRelease();&lt;br /&gt;
    glfwCloseWindow();&lt;br /&gt;
    glfwTerminate();&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=768</id>
		<title>Building Horde3D</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=768"/>
				<updated>2013-10-14T13:17:08Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
This article contains instructions for building Horde3D from source on all supported platforms. Since Horde3D is very lightweight and has a minimal amount of external dependencies, getting it to compile and run is usually quite straightforward.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the SDK ==&lt;br /&gt;
&lt;br /&gt;
Besides the [http://sourceforge.net/projects/horde3d/files/ official release packages], there is also a subversion repository hosted at SourceForge which is usually more up-to-date than the stable point releases.&lt;br /&gt;
&lt;br /&gt;
The repository has the common SVN structure ''branches'', ''tags'' and ''trunk''. The latest development snapshot can be found in the ''trunk'' folder, while the official releases are tagged in the ''tags'' folder. If you check out the trunk folder, you will get the SDK along with all official extensions.&lt;br /&gt;
&lt;br /&gt;
See [[SVN Source Instructions]] for instructions on how to obtain code from Subversion.&lt;br /&gt;
&lt;br /&gt;
== Building on Windows ==&lt;br /&gt;
&lt;br /&gt;
The preferred way of building Horde3D on Windows is using '''Visual Studio'''. The SDK comes with a solution file for Visual Studio 2005 that can be opened with the Visual C++ Express Edition as well. If you have Visual Studio 2008 (Standard/Professional or Express), you can simply use the VS Conversion Wizard to update the solution and project files. The solution contains the samples that can be started directly from Visual Studio. Just set the desired sample as startup project.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use CMake to create the Visual Studio solution files. The process is similar to what you do on Linux then. However, if you want to use Visual Studio's ''nmake'', you usually have to use the Visual Studio Command Prompt instead of the standard ''cmd'' shell. Sample batch files for creating VS 2005 and 2008 projects can be found in the ''CMake'' folder located in the Horde3D repository.&lt;br /&gt;
&lt;br /&gt;
== Building on Linux ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D SDK is compatible with gcc and ships with [http://www.cmake.org CMake] configuration files. To build Horde3D, just switch to the Horde3D root directory. Create a new directory which will contain the makefiles created by CMake, for example ''CMake'' and change into it. After that, type&lt;br /&gt;
&lt;br /&gt;
  cmake ..&lt;br /&gt;
&lt;br /&gt;
which will create the makefiles. Once they are created, you can type &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; to build the code or &amp;lt;tt&amp;gt;make clean&amp;lt;/tt&amp;gt; to remove all generated files.&lt;br /&gt;
&lt;br /&gt;
=== Linkage order for your application ===&lt;br /&gt;
You must link Horde3D library to your final executable before GL one.&lt;br /&gt;
&lt;br /&gt;
'''WRONG''':&lt;br /&gt;
  gcc -o app main.cpp -lGL '''-lHorde3D'''&lt;br /&gt;
&lt;br /&gt;
'''RIGHT''':&lt;br /&gt;
  gcc -o app main.cpp '''-lHorde3D''' -lGL&lt;br /&gt;
&lt;br /&gt;
This is required for GCC 3.x and 4.x series on Linux. If you don't follow the linkage order, you will get [http://horde3d.org/forums/viewtopic.php?f=2&amp;amp;t=384 glCreateShader error within h3dInit call].&lt;br /&gt;
&lt;br /&gt;
== Building on Max OS X ==&lt;br /&gt;
&lt;br /&gt;
Mac OS X is an advanced graphical system layered over a traditional Unix core. Because of this, you can either use Apple's graphical Xcode IDE to develop Horde3D based applications, or you can go the traditional Unix way using gcc and makefiles.&lt;br /&gt;
&lt;br /&gt;
==== The Mac Way Using Xcode ====&lt;br /&gt;
&lt;br /&gt;
To create the Xcode project files, you have to install CMake first. After installing the CMake command line tools (so choose NOT to skip the installation when asked during the CMake installation), you should be able to run CMake from the console. Switch to Horde3D root directory and create a new directory in which the CMake output will be stored, for example ''CMake''. Change the current directory to that newly created one and type&lt;br /&gt;
&lt;br /&gt;
  cmake -G &amp;quot;Xcode&amp;quot; ..&lt;br /&gt;
&lt;br /&gt;
You should now be able to open the newly created project in Xcode in order to build Horde3D.&lt;br /&gt;
&lt;br /&gt;
==== The Unix Way Using the Command Line ====&lt;br /&gt;
&lt;br /&gt;
To create the Makefiles, you have to install CMake first. After installing the CMake command line tools (so choose NOT to skip the installation when asked during the CMake installation), you should be able to run CMake from the console. Switch to Horde3D root directory and create a new directory in which the CMake output will be stored, for example ''CMake''. Change the current directory to that newly created one and type&lt;br /&gt;
&lt;br /&gt;
  cmake -G &amp;quot;Unix Makefiles&amp;quot; ..&lt;br /&gt;
&lt;br /&gt;
The current directory should now contain a set of Makefiles, and you can build Horde3D by typing&lt;br /&gt;
&lt;br /&gt;
  make&lt;br /&gt;
&lt;br /&gt;
be warned that this makefile method generates an incorrect directory structure, and you may have to move the ''Content'' directory up one level before the samples will find their data.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
==== A minimal app to test your include\linker settings ====&lt;br /&gt;
  #include &amp;quot;glfw.h&amp;quot;&lt;br /&gt;
  #include &amp;quot;Horde3D.h&amp;quot;&lt;br /&gt;
  #include &amp;quot;Horde3DUtils.h&amp;quot;&lt;br /&gt;
  int main()&lt;br /&gt;
  {&lt;br /&gt;
    glfwInit();&lt;br /&gt;
    if(!glfwOpenWindow(640,480,8,8,8,8,24,8,GLFW_WINDOW))&lt;br /&gt;
    {&lt;br /&gt;
        glfwTerminate();&lt;br /&gt;
        return 1;&lt;br /&gt;
    }&lt;br /&gt;
    h3dInit();&lt;br /&gt;
    h3dRelease();&lt;br /&gt;
    glfwCloseWindow();&lt;br /&gt;
    glfwTerminate();&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=MediaWiki:Common.css&amp;diff=756</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=MediaWiki:Common.css&amp;diff=756"/>
				<updated>2013-09-24T19:07:11Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
body.page-Main_Page h1.firstHeading { display:none; }&lt;br /&gt;
&lt;br /&gt;
#dhtmlgoodies_slideshow {&lt;br /&gt;
	width:100%;	/* Total width of slideshow */&lt;br /&gt;
}&lt;br /&gt;
#galleryContainer {&lt;br /&gt;
	position:relative;&lt;br /&gt;
	overflow:hidden;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
	height:150px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#arrow_left {&lt;br /&gt;
	position:absolute;&lt;br /&gt;
	left:0px;&lt;br /&gt;
	z-index:10;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
}&lt;br /&gt;
#arrow_right {&lt;br /&gt;
	position:absolute;&lt;br /&gt;
	right:0px;&lt;br /&gt;
	z-index:10;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
}&lt;br /&gt;
#theImages {&lt;br /&gt;
	position:absolute;&lt;br /&gt;
	height:150px;&lt;br /&gt;
	left:0px;&lt;br /&gt;
        top:0px;&lt;br /&gt;
	width:100000px;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
}&lt;br /&gt;
#theImages #slideEnd {&lt;br /&gt;
	float:left;&lt;br /&gt;
}&lt;br /&gt;
#theImages img {&lt;br /&gt;
	float:left;&lt;br /&gt;
	padding:0px;&lt;br /&gt;
        cursor:pointer;&lt;br /&gt;
	border:0px;&lt;br /&gt;
}&lt;br /&gt;
#theImages .imageCaption {&lt;br /&gt;
	display:none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Main_Page&amp;diff=755</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Main_Page&amp;diff=755"/>
				<updated>2013-09-24T18:59:42Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: Merged changes from christoph&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
&amp;lt;!-- hero --&amp;gt;&lt;br /&gt;
{{Filmstrip}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock | width=100% | thickness=1 | color=#999999 | content-color=#ffffcc | content=&lt;br /&gt;
'''Welcome to the Horde3D Wiki!'''&lt;br /&gt;
As this is a wiki, feel free to make it better! The Horde3D team does not take any responsibility for the content or the accuracy of the content provided on these pages.&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
&amp;lt;!-- two column layout table --&amp;gt;&lt;br /&gt;
{| width=100% border=0&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;!-- left panel: begin --&amp;gt;&lt;br /&gt;
{{ContentBlock | width=100% | icon=Download45.png | header=Getting Started&lt;br /&gt;
| sub-header=Overview of the project and how to get started&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
* [[Overview | Overview]] - Introduction for beginners&lt;br /&gt;
* [[Horde3D_Wiki:Getting Started | Installation]] - Acquisition and setup&lt;br /&gt;
* [[Language Bindings]] - C#, Lua, Python, ...&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock | width=100% | color=#FFCC33 | icon=InfoIcon.png | header=Programming&lt;br /&gt;
| sub-header=Useful information for programmers&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
* [[Horde3D_Wiki:Community_Portal#Programming Guide | Tutorials]] - A wide variety of tutorials&lt;br /&gt;
** [[Horde3D_Wiki:Community_Portal#Programming Guide | Integration]] - Integration with SDL, Qt, ...&lt;br /&gt;
** [[Horde3D_Wiki:Community_Portal#Shader Guide | Pipeline]] - Shader and effect development&lt;br /&gt;
* [[Horde3D_Wiki:HOWTO | Recipes]] - How-tos and small code snippets&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock | width=100% | color=#FFCC33 | icon=InfoIcon.png | header=Content Creation&lt;br /&gt;
| sub-header=Useful information for artists&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
* [[Horde3D_Wiki:Community_Portal#Asset Creation | Tutorials]] - A wide variety of tutorials&lt;br /&gt;
** [[Horde3D_Wiki:Community_Portal#Asset Creation | Production Pipeline]] - Get the most out of your tools&lt;br /&gt;
* [[Resources]] - Free models and textures&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- left panel: end --&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&amp;lt;!-- right panel: begin --&amp;gt;&lt;br /&gt;
{{ContentBlock | width=100% | icon=HighlightIcon.png | header=Documentation&lt;br /&gt;
| sub-header=Reference information and documentation&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
* '''[http://horde3d.org/features.html Features &amp;amp; Requirements]''' - What Horde3D can do for you&lt;br /&gt;
* '''[http://horde3d.org/docs/manual.html Reference Manual]''' - The official manual&lt;br /&gt;
* [[Horde3D_Wiki:FAQ | FAQ]] - Frequently Asked Questions&lt;br /&gt;
* '''[[Glossary | Glossary]]''' - Terms and acronyms explained&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock | width=100% | color=#FFCC33 | icon=DevIcon45.png | header=Development&lt;br /&gt;
| sub-header=These pages are of interest to developers of Horde3D&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
*[[Community Roadmap | Roadmap]] - Progress and release information &lt;br /&gt;
*[[Community Branch | Contributing]] - Getting your code into Horde3D&lt;br /&gt;
*[[Platform Issues | Known Issues]] - List of known bugs&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock | width=100% | icon=HighlightIcon.png | header=Related Projects&lt;br /&gt;
| sub-header=Software using or made for Horde3D&lt;br /&gt;
| content={{!!}}&lt;br /&gt;
* '''[[Horde3D Scene Editor | Horde3D Editor]]''' - Scene editor&lt;br /&gt;
* '''[[Extensions | Horde3D Extensions ]]''' - List of extensions&lt;br /&gt;
* '''[http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ Horde3D GameEngine]''' - Component based game engine&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;!-- right panel: end --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Filmstrip&amp;diff=753</id>
		<title>Template:Filmstrip</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Filmstrip&amp;diff=753"/>
				<updated>2013-09-19T00:23:32Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0 auto;&amp;quot; id=&amp;quot;dhtmlgoodies_slideshow&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;galleryContainer&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;arrow_left&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/6/64/Arrow_left.gif&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;arrow_right&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/9/9c/Arrow_right.gif&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div id=&amp;quot;theImages&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;!-- Thumbnails --&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/a/a0/H3Dchicago.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/d/d5/H3Dknight.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=50&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/d/dd/H3Dalfred.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
				&amp;lt;a href=&amp;quot;#&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/1/1e/H3Dterrain.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;		&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/projects/ritchiegame/&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/a/ac/Cityrun.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/6/68/H3Deditor.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://mm-werkstatt.informatik.uni-augsburg.de/projects/SheepMeUp&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/e/e0/SheepMeUp.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://www.dogbytegames.com/offroad_legends.html&amp;quot;&amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/4/40/Offroad_legends_screenshot_1.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://www.stuckiegamez.co.uk/index.php?page=caffeine-weedunks&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://horde3d.org/wiki/images/d/db/PliughtOfTheWeedunks.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
                                &amp;lt;a href=&amp;quot;http://www.horde3d.org/wiki/index.php5?title=Sound_Extension&amp;quot; &amp;gt;&lt;br /&gt;
                                   &amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/2/27/H3Dsound.jpg&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
				&amp;lt;!-- End thumbnails --&amp;gt;				&lt;br /&gt;
				&amp;lt;div id=&amp;quot;slideEnd&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:Offroad_legends_screenshot_1.jpg&amp;diff=752</id>
		<title>File:Offroad legends screenshot 1.jpg</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:Offroad_legends_screenshot_1.jpg&amp;diff=752"/>
				<updated>2013-09-19T00:20:10Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: http://www.dogbytegames.com/images/offroad_legends_screenshot_1.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://www.dogbytegames.com/images/offroad_legends_screenshot_1.jpg&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=751</id>
		<title>Language Bindings</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=751"/>
				<updated>2013-09-19T00:09:15Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Due to its simple 'C' DLL interface, Horde3D can be accessed from most programming and scripting languages without much effort.&lt;br /&gt;
The community has already created bindings for the following languages. Most of the bindings can be found in the [[Community Branch | Community SVN Branch]], however, not all of them are constantly maintained and up-to-date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''C#'''&lt;br /&gt;
** Maintained by the Horde3D team&lt;br /&gt;
** Can be found on [http://sourceforge.net/projects/horde3d/files/Horde3D%20Language%20Bindings/ SourceForge] as well as in the Community Branch&lt;br /&gt;
* '''Lua'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** The Horde3D Editor has separate bindings as well that can be found [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/src/HordeSceneEditor/LuaBindingsHorde.cpp here]&lt;br /&gt;
* '''Python'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=313 this thread] for further info&lt;br /&gt;
* '''D'''&lt;br /&gt;
** Two independent bindings exist, both located in the Community Branch&lt;br /&gt;
** 1. Native bindings which redeclare the C API and are directly usable by linking against the Horde3D library (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=932 this thread])&lt;br /&gt;
** 2. Bindings using Derelict and function pointers (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=180 this thread])&lt;br /&gt;
* '''Pascal'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1058 this thread] for further info&lt;br /&gt;
* '''Squirrel'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=578 this thread] for further info&lt;br /&gt;
* '''Haskel'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=550 this thread] for further info&lt;br /&gt;
* '''Java'''&lt;br /&gt;
** Available in [http://bitbucket.org/fk/horde3d-java/ Felix Krull's Mercurial repository]&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1093 this thread] for further info&lt;br /&gt;
* '''WinDev 15'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=8&amp;amp;t=1173 this thread] for further info&lt;br /&gt;
* '''BlitzMax'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=4&amp;amp;t=1236 this thread] for further info&lt;br /&gt;
* '''Go'''&lt;br /&gt;
** See [http://bitbucket.org/tshannon/gohorde/ this page] for further info&lt;br /&gt;
** The knight sample implemented with glfw in Go can be found [https://bitbucket.org/tshannon/gohorde/src/0f3d82c4f8b812d1a7c556b8a014af38e2c73285/examples/knight/knight.go?at=default here]&lt;br /&gt;
** And example in SDL can be found [https://bitbucket.org/tshannon/gohorde/src/0f3d82c4f8b812d1a7c556b8a014af38e2c73285/examples/sdl/sdl.go?at=default here]&lt;br /&gt;
* '''Lisp'''&lt;br /&gt;
** See [https://github.com/anwyn/cl-horde3d this git repo] for further info&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=750</id>
		<title>Language Bindings</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=750"/>
				<updated>2013-09-19T00:08:48Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Due to its simple 'C' DLL interface, Horde3D can be accessed from most programming and scripting languages without much effort.&lt;br /&gt;
The community has already created bindings for the following languages. Most of the bindings can be found in the [[Community Branch | Community SVN Branch]], however, not all of them are constantly maintained and up-to-date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''C#'''&lt;br /&gt;
** Maintained by the Horde3D team&lt;br /&gt;
** Can be found on [http://sourceforge.net/projects/horde3d/files/Horde3D%20Language%20Bindings/ SourceForge] as well as in the Community Branch&lt;br /&gt;
* '''Lua'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** The Horde3D Editor has separate bindings as well that can be found [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/src/HordeSceneEditor/LuaBindingsHorde.cpp here]&lt;br /&gt;
* '''Python'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=313 this thread] for further info&lt;br /&gt;
* '''D'''&lt;br /&gt;
** Two independent bindings exist, both located in the Community Branch&lt;br /&gt;
** 1. Native bindings which redeclare the C API and are directly usable by linking against the Horde3D library (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=932 this thread])&lt;br /&gt;
** 2. Bindings using Derelict and function pointers (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=180 this thread])&lt;br /&gt;
* '''Pascal'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1058 this thread] for further info&lt;br /&gt;
* '''Squirrel'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=578 this thread] for further info&lt;br /&gt;
* '''Haskel'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=550 this thread] for further info&lt;br /&gt;
* '''Java'''&lt;br /&gt;
** Available in [http://bitbucket.org/fk/horde3d-java/ Felix Krull's Mercurial repository]&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1093 this thread] for further info&lt;br /&gt;
* '''WinDev 15'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=8&amp;amp;t=1173 this thread] for further info&lt;br /&gt;
* '''BlitzMax'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=4&amp;amp;t=1236 this thread] for further info&lt;br /&gt;
* '''Go'''&lt;br /&gt;
** See [http://bitbucket.org/tshannon/gohorde/ this page] for further info&lt;br /&gt;
** The knight sample implemented with glfw in Go can be found [https://bitbucket.org/tshannon/gohorde/src/0f3d82c4f8b812d1a7c556b8a014af38e2c73285/examples/knight/knight.go?at=default here]&lt;br /&gt;
** And example in SDL can be found [https://bitbucket.org/tshannon/gohorde/src/0f3d82c4f8b812d1a7c556b8a014af38e2c73285/examples/sdl/sdl.go?at=default here]&lt;br /&gt;
* '''Lisp'''&lt;br /&gt;
** See [https://github.com/anwyn/cl-horde3d] for further info&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_portal&amp;diff=748</id>
		<title>Horde3D Wiki:Community portal</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_portal&amp;diff=748"/>
				<updated>2013-09-19T00:00:41Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: Volker moved page Horde3D Wiki:Community Portal to Horde3D Wiki:Community portal: Main Navigation bar has wrong link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__{{ContentBlock|color=orange&lt;br /&gt;
|content= '''The community portal section of the Horde3D wiki contains community contributed articles that are not part of the official documentation. Feel free to add articles to our wiki or links to external tutorials.'''}}&lt;br /&gt;
{{SpacerBlock}}&lt;br /&gt;
{{ContentBlock|&lt;br /&gt;
|header=Information, instructions and tips on using Horde3D&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
==Programming Guide==&lt;br /&gt;
=== Build Instructions ===&lt;br /&gt;
#[[Building Horde3D]] - Instructions for obtaining the code and building Horde on all supported platforms&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
===Beginner Tutorials===&lt;br /&gt;
#[[Tutorial - Hello World]] - In this section we will create a simple application that loads a character and animates it using a walk cycle.&lt;br /&gt;
#[[Tutorial - Picking]] - In this section we will demonstrate picking the node under the mouse cursor&lt;br /&gt;
#[[Tutorial - Simple HUD]] - How to use showOverlay to create a simple HUD.&lt;br /&gt;
#[[Tutorial - Setup Horde with SDL]]   - How to Setup Horde with SDL.&lt;br /&gt;
#[[Tutorial - Setup Horde with Qt4]]   - How to Setup Horde with Qt4.&lt;br /&gt;
#[[Tutorial - Setup Horde with Qt5 &amp;amp; QtQuick 2.1]]   - How to Setup Horde with Qt5 &amp;amp; QtQuick 2.1.&lt;br /&gt;
#[[Tutorial - Setup Horde with Gtkmm]] - How to Setup Horde with Gtkmm&lt;br /&gt;
#[[Tutorial - Setup Horde with SFML]] - How to Setup Horde with SFML&lt;br /&gt;
#[[Tutorial - Stereo rendering]] - Basic outline for quad-buffered stereo rendering&lt;br /&gt;
&lt;br /&gt;
===Advanced Tutorials===&lt;br /&gt;
#[[Basic Pipeline Tutorial]] - Create your first custom pipeline.&lt;br /&gt;
#[[Procedurally generated geometry tutorial]] - How to create Horde3D compatible procedural geometry (Horde3D 1.0.0 '''Beta 3''' only!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shader Development==&lt;br /&gt;
[[Category: Techniques]]&lt;br /&gt;
===General===&lt;br /&gt;
#A syntax highlighting scheme for Notepad++ which works with Horde3D shader files can be found [http://www.horde3d.org/forums/viewtopic.php?f=5&amp;amp;t=697 here].&lt;br /&gt;
&lt;br /&gt;
===Debugging and Profiling===&lt;br /&gt;
#[[Using GPU PerfStudio]] - Quick steps to get started with GPU PerfStudio&lt;br /&gt;
&lt;br /&gt;
===Render System Basics===&lt;br /&gt;
#[[The Flexible Rendering Pipeline]] - Introduction to Horde's data-driven rendering pipelines&lt;br /&gt;
&lt;br /&gt;
===Rendering Quality===&lt;br /&gt;
#[[Gamma Correction]] - Overview of gamma correction and how to apply it with Horde&lt;br /&gt;
&lt;br /&gt;
===Shading===&lt;br /&gt;
#[[Shading Technique - Dot Product Detail Texturing]] - Using the dot product of vectors and signed textures for high frequency detail&lt;br /&gt;
#[[Shading Technique - Palette Coloring]] - Quick and dirty palette recoloration of objects&lt;br /&gt;
#[[Shading Technique - Gloss Mapping]] - Mask which areas of an object have specular highlights&lt;br /&gt;
#[[Shading Technique - Glow Mapping]] - Allow areas on an object to emit a strong glowing highlight&lt;br /&gt;
#[[Shading Technique - Fresnel]] - Using reflection and refraction&lt;br /&gt;
#[[Shading Technique - Linear Depth Buffer]] - Create a custom linear depth buffer using vertex&lt;br /&gt;
#[[Shading Technique - Terrain Shading]] - Height and slope based shading with triplanar texturing&lt;br /&gt;
&lt;br /&gt;
===Preprocessing===&lt;br /&gt;
#[[Preprocessing Technique - Distance Field Vector Textures]] - Using Adobe Photoshop to generate textures suitable for efficient vector art rendering&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Asset Creation==&lt;br /&gt;
&lt;br /&gt;
[[Category: Content Import]]&lt;br /&gt;
#[[DCC Tool Support]] - List of supported Digital Content Creation Tools&lt;br /&gt;
#[[AssetTroubleshooting|Troubleshooting]] - ''&amp;quot;Help, my model is not showing up!&amp;quot;''&lt;br /&gt;
#[[Tips and Techniques]] - Asset creation suggestions &amp;amp; ideas for Horde3d, exporting and program quirks..&lt;br /&gt;
#[[Extending ColladaConv]] - Add support for exporting cameras&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_Portal&amp;diff=749</id>
		<title>Horde3D Wiki:Community Portal</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_Portal&amp;diff=749"/>
				<updated>2013-09-19T00:00:41Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: Volker moved page Horde3D Wiki:Community Portal to Horde3D Wiki:Community portal: Main Navigation bar has wrong link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Horde3D Wiki:Community portal]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Tutorial_-_Setup_Horde_with_Qt5_%26_QtQuick_2.1&amp;diff=747</id>
		<title>Tutorial - Setup Horde with Qt5 &amp; QtQuick 2.1</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Tutorial_-_Setup_Horde_with_Qt5_%26_QtQuick_2.1&amp;diff=747"/>
				<updated>2013-09-06T16:36:16Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white&lt;br /&gt;
|content=Before you start, if you don't know what '''QtQuick''' is, you should read the QtQuick Documentation:&lt;br /&gt;
&lt;br /&gt;
http://qt-project.org/doc/qt-5.1/qtquick/qtquick-index.html&lt;br /&gt;
(Substitute correct version of your Qt distribution).&lt;br /&gt;
&lt;br /&gt;
Horde3D library should be already installed for build scripts to succeed.&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= QtHorde3D.h|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#ifndef QTHORDE3D_H&lt;br /&gt;
#define QTHORDE3D_H&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QQuickItem&amp;gt;&lt;br /&gt;
#include &amp;lt;QOpenGLFramebufferObject&amp;gt;&lt;br /&gt;
#include &amp;lt;Horde3D.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class QtHorde3D: public QQuickItem&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
&lt;br /&gt;
private:&lt;br /&gt;
    int m_timerID;&lt;br /&gt;
    QOpenGLFramebufferObject* m_fbo;&lt;br /&gt;
    H3DNode m_cam;&lt;br /&gt;
&lt;br /&gt;
public:&lt;br /&gt;
    QtHorde3D(QQuickItem* parent = 0);&lt;br /&gt;
    ~QtHorde3D();&lt;br /&gt;
&lt;br /&gt;
protected:&lt;br /&gt;
    QSGNode* updatePaintNode(QSGNode* old, UpdatePaintNodeData* data);&lt;br /&gt;
    void timerEvent(QTimerEvent* evt);&lt;br /&gt;
&lt;br /&gt;
private slots:&lt;br /&gt;
    void cleanup();&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
#endif // QTHORDE3D_H&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|width=1600|&lt;br /&gt;
description= QtHorde3D.cpp|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;QtHorde3D.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QQuickWindow&amp;gt;&lt;br /&gt;
#include &amp;lt;QOpenGLContext&amp;gt;&lt;br /&gt;
#include &amp;lt;QSGSimpleTextureNode&amp;gt;&lt;br /&gt;
#include &amp;lt;Horde3DUtils.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QtHorde3D::QtHorde3D(QQuickItem* parent)&lt;br /&gt;
   :    QQuickItem(parent),&lt;br /&gt;
        m_timerID(0),&lt;br /&gt;
        m_fbo(0),&lt;br /&gt;
        m_cam(0)&lt;br /&gt;
{&lt;br /&gt;
    this-&amp;gt;setFlag(QQuickItem::ItemHasContents);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
QtHorde3D::~QtHorde3D()&lt;br /&gt;
{&lt;br /&gt;
    this-&amp;gt;cleanup();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void QtHorde3D::timerEvent(QTimerEvent* evt)&lt;br /&gt;
{&lt;br /&gt;
    if (evt &amp;amp;&amp;amp; evt-&amp;gt;timerId() == m_timerID)&lt;br /&gt;
        this-&amp;gt;update();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
QSGNode* QtHorde3D::updatePaintNode(QSGNode* node, UpdatePaintNodeData* data)&lt;br /&gt;
{&lt;br /&gt;
    QSGSimpleTextureNode* textureNode = static_cast&amp;lt;QSGSimpleTextureNode*&amp;gt;(node);&lt;br /&gt;
&lt;br /&gt;
    if (!textureNode)&lt;br /&gt;
        textureNode = new QSGSimpleTextureNode();&lt;br /&gt;
&lt;br /&gt;
    // Push Qt state.&lt;br /&gt;
    glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS);&lt;br /&gt;
    glPushAttrib(GL_ALL_ATTRIB_BITS);&lt;br /&gt;
    glMatrixMode(GL_TEXTURE);&lt;br /&gt;
    glPushMatrix();&lt;br /&gt;
    glLoadIdentity();&lt;br /&gt;
    glMatrixMode(GL_PROJECTION);&lt;br /&gt;
    glPushMatrix();&lt;br /&gt;
    glMatrixMode(GL_MODELVIEW);&lt;br /&gt;
    glPushMatrix();&lt;br /&gt;
&lt;br /&gt;
    glShadeModel(GL_FLAT);&lt;br /&gt;
    glDisable(GL_CULL_FACE);&lt;br /&gt;
    glDisable(GL_LIGHTING);&lt;br /&gt;
    glDisable(GL_STENCIL_TEST);&lt;br /&gt;
    glDisable(GL_DEPTH_TEST);&lt;br /&gt;
    glEnable(GL_BLEND);&lt;br /&gt;
    glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);&lt;br /&gt;
&lt;br /&gt;
    // Render Horde3D.&lt;br /&gt;
    int x = this-&amp;gt;x();&lt;br /&gt;
    int y = this-&amp;gt;y();&lt;br /&gt;
    int width = this-&amp;gt;width();&lt;br /&gt;
    int height = this-&amp;gt;height();&lt;br /&gt;
&lt;br /&gt;
    delete m_fbo;&lt;br /&gt;
    m_fbo = 0;&lt;br /&gt;
&lt;br /&gt;
   if (width &amp;amp;&amp;amp; height)&lt;br /&gt;
    {&lt;br /&gt;
        m_fbo = new QOpenGLFramebufferObject(width, height);&lt;br /&gt;
        textureNode-&amp;gt;setTexture(this-&amp;gt;window()-&amp;gt;createTextureFromId(m_fbo-&amp;gt;texture(), m_fbo-&amp;gt;size()));&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        textureNode-&amp;gt;setTexture(this-&amp;gt;window()-&amp;gt;createTextureFromId(0, QSize(0,0)));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    textureNode-&amp;gt;setRect(this-&amp;gt;boundingRect());&lt;br /&gt;
&lt;br /&gt;
    // Flip Y-axis between Horde3D and GLSL.&lt;br /&gt;
    QMatrix4x4 flipY;&lt;br /&gt;
    flipY.translate(width*0.5, height*0.5);&lt;br /&gt;
    flipY.scale(1.0, -1.0);&lt;br /&gt;
    flipY.translate(-width*0.5, -height*0.5);&lt;br /&gt;
    data-&amp;gt;transformNode-&amp;gt;setMatrix(flipY);&lt;br /&gt;
&lt;br /&gt;
    if (m_fbo)&lt;br /&gt;
    {&lt;br /&gt;
        m_fbo-&amp;gt;bind();&lt;br /&gt;
&lt;br /&gt;
        if (!m_cam)&lt;br /&gt;
        {&lt;br /&gt;
            // Initialize engine.&lt;br /&gt;
            h3dInit();&lt;br /&gt;
&lt;br /&gt;
            h3dSetOption(H3DOptions::LoadTextures, 1);&lt;br /&gt;
            h3dSetOption(H3DOptions::TexCompression, 0);&lt;br /&gt;
            h3dSetOption(H3DOptions::FastAnimation, 0);&lt;br /&gt;
            h3dSetOption(H3DOptions::MaxAnisotropy, 4);&lt;br /&gt;
            h3dSetOption(H3DOptions::ShadowMapSize, 2048);&lt;br /&gt;
&lt;br /&gt;
            // Add resources.&lt;br /&gt;
            H3DRes pipelineRes = h3dAddResource(H3DResTypes::Pipeline, &amp;quot;pipelines/forward.pipeline.xml&amp;quot;, 0);&lt;br /&gt;
            H3DRes envRes = h3dAddResource(H3DResTypes::SceneGraph, &amp;quot;models/platform/platform.scene.xml&amp;quot;, 0);&lt;br /&gt;
            H3DRes modelRes = h3dAddResource(H3DResTypes::SceneGraph, &amp;quot;models/knight/knight.scene.xml&amp;quot;, 0);&lt;br /&gt;
&lt;br /&gt;
            // Load added resources.&lt;br /&gt;
            h3dutLoadResourcesFromDisk(&amp;quot;Content&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            // Add an environment.&lt;br /&gt;
            H3DNode env = h3dAddNodes(H3DRootNode, envRes);&lt;br /&gt;
            h3dSetNodeTransform(env, 0, 0, 0, 0, 0, 0, 20, 20, 20 );&lt;br /&gt;
&lt;br /&gt;
            // Add a model.&lt;br /&gt;
            H3DNode model = h3dAddNodes(H3DRootNode, modelRes);&lt;br /&gt;
            h3dSetNodeTransform(model, 0, 0, 0, 0, 180, 0, 1, 1, 1 );&lt;br /&gt;
&lt;br /&gt;
            // Add a light source.&lt;br /&gt;
            H3DNode light = h3dAddLightNode( H3DRootNode, &amp;quot;Light1&amp;quot;, 0, &amp;quot;LIGHTING&amp;quot;, &amp;quot;SHADOWMAP&amp;quot; );&lt;br /&gt;
            h3dSetNodeTransform( light, 0, 15, 40, 0, 0, 0, 100, 100, 100 );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::RadiusF, 0, 1000 );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::FovF, 0, 90 );&lt;br /&gt;
            h3dSetNodeParamI( light, H3DLight::ShadowMapCountI, 1 );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::ShadowMapBiasF, 0, 0.01f );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::ColorF3, 0, 1.0f );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::ColorF3, 1, 0.8f );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::ColorF3, 2, 0.7f );&lt;br /&gt;
            h3dSetNodeParamF( light, H3DLight::ColorMultiplierF, 0, 1.0f );&lt;br /&gt;
&lt;br /&gt;
            // Add a camera.&lt;br /&gt;
            m_cam = h3dAddCameraNode(H3DRootNode, &amp;quot;Camera&amp;quot;, pipelineRes);&lt;br /&gt;
            h3dSetNodeTransform(m_cam, 0, 30, 100, 0, 0, 0, 1, 1, 1 );&lt;br /&gt;
&lt;br /&gt;
            QObject::connect(QOpenGLContext::currentContext(), SIGNAL(aboutToBeDestroyed()), this, SLOT(cleanup()), Qt::DirectConnection);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Setup viewport and render target sizes.&lt;br /&gt;
        h3dSetNodeParamI(m_cam, H3DCamera::ViewportXI, 0);&lt;br /&gt;
        h3dSetNodeParamI(m_cam, H3DCamera::ViewportYI, 0);&lt;br /&gt;
        h3dSetNodeParamI(m_cam, H3DCamera::ViewportWidthI, width);&lt;br /&gt;
        h3dSetNodeParamI(m_cam, H3DCamera::ViewportHeightI, height);&lt;br /&gt;
        h3dSetupCameraView(m_cam, 45.0f, (float)width / height, 0.1f, 1000.0f);&lt;br /&gt;
        h3dResizePipelineBuffers(h3dGetNodeParamI(m_cam, H3DCamera::PipeResI), width, height);&lt;br /&gt;
&lt;br /&gt;
        // Render scene.&lt;br /&gt;
        h3dRender(m_cam);&lt;br /&gt;
&lt;br /&gt;
        // Finish rendering of frame.&lt;br /&gt;
        h3dFinalizeFrame();&lt;br /&gt;
&lt;br /&gt;
        m_fbo-&amp;gt;release();&lt;br /&gt;
&lt;br /&gt;
        // Restore (pop) Qt state.&lt;br /&gt;
        glMatrixMode(GL_TEXTURE);&lt;br /&gt;
        glPopMatrix();&lt;br /&gt;
        glMatrixMode(GL_PROJECTION);&lt;br /&gt;
        glPopMatrix();&lt;br /&gt;
        glMatrixMode(GL_MODELVIEW);&lt;br /&gt;
        glPopMatrix();&lt;br /&gt;
        glPopAttrib();&lt;br /&gt;
        glPopClientAttrib();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!m_timerID)&lt;br /&gt;
        m_timerID = this-&amp;gt;startTimer(16);&lt;br /&gt;
&lt;br /&gt;
    return textureNode;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void QtHorde3D::cleanup()&lt;br /&gt;
{&lt;br /&gt;
    this-&amp;gt;killTimer(m_timerID);&lt;br /&gt;
    m_timerID = 0;&lt;br /&gt;
&lt;br /&gt;
    if (m_cam)&lt;br /&gt;
    {&lt;br /&gt;
        h3dRelease();&lt;br /&gt;
        m_cam = 0;&lt;br /&gt;
&lt;br /&gt;
        delete m_fbo;&lt;br /&gt;
        m_fbo = 0;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= main.qml|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
import QtQuick 2.1&lt;br /&gt;
import Horde3D 1.0&lt;br /&gt;
&lt;br /&gt;
Item {&lt;br /&gt;
    id: main&lt;br /&gt;
&lt;br /&gt;
    Horde3D {&lt;br /&gt;
        id: centralArea&lt;br /&gt;
&lt;br /&gt;
        anchors.fill: parent&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    Rectangle {&lt;br /&gt;
        color: Qt.rgba(1, 1, 1, 0.7)&lt;br /&gt;
        radius: 10&lt;br /&gt;
        border.width: 1&lt;br /&gt;
        border.color: &amp;quot;white&amp;quot;&lt;br /&gt;
        anchors.fill: label&lt;br /&gt;
        anchors.margins: -10&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    Text {&lt;br /&gt;
        id: label&lt;br /&gt;
        color: &amp;quot;black&amp;quot;&lt;br /&gt;
        wrapMode: Text.WordWrap&lt;br /&gt;
        text: &amp;quot;The background here is a scene rendered with Horde3D. This text label and its border is rendered using QML&amp;quot;&lt;br /&gt;
        anchors.right: parent.right&lt;br /&gt;
        anchors.left: parent.left&lt;br /&gt;
        anchors.bottom: parent.bottom&lt;br /&gt;
        anchors.margins: 20&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= main.cpp|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;QtHorde3D.h&amp;quot;&lt;br /&gt;
#include &amp;lt;QQuickView&amp;gt;&lt;br /&gt;
#include &amp;lt;QGuiApplication&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
    QGuiApplication app(argc, argv);&lt;br /&gt;
&lt;br /&gt;
    qmlRegisterType&amp;lt;QtHorde3D&amp;gt;(&amp;quot;Horde3D&amp;quot;, 1, 0, &amp;quot;Horde3D&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    QQuickView win;&lt;br /&gt;
    win.setSource(QUrl(&amp;quot;main.qml&amp;quot;));&lt;br /&gt;
    win.setResizeMode(QQuickView::SizeRootObjectToView);&lt;br /&gt;
    win.show();&lt;br /&gt;
&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
QMake project file:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= h3d_qt5.pro|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
TEMPLATE = app&lt;br /&gt;
TARGET = h3d_qt5&lt;br /&gt;
DEPENDPATH += .&lt;br /&gt;
INCLUDEPATH += .&lt;br /&gt;
LIBS += -lHorde3D -lHorde3DUtils&lt;br /&gt;
QT += qml quick&lt;br /&gt;
&lt;br /&gt;
# Input&lt;br /&gt;
HEADERS += QtHorde3D.h&lt;br /&gt;
SOURCES += QtHorde3D.cpp main.cpp&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
'''Note''': [http://www.horde3d.org/wiki/index.php5?title=Building_Horde3D#Linkage_order_for_your_application Linkage order for your application]&lt;br /&gt;
&lt;br /&gt;
CMake project file:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= CMakeLists.txt|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)&lt;br /&gt;
&lt;br /&gt;
PROJECT(h3d_qt5)&lt;br /&gt;
&lt;br /&gt;
FIND_PACKAGE(Qt5Quick)&lt;br /&gt;
&lt;br /&gt;
SET(CMAKE_AUTOMOC ON)&lt;br /&gt;
SET(h3d_qt5_SOURCES QtHorde3D.cpp main.cpp)&lt;br /&gt;
&lt;br /&gt;
ADD_EXECUTABLE(Qt5Horde3D ${h3d_qt5_SOURCES})&lt;br /&gt;
&lt;br /&gt;
QT5_USE_MODULES(Qt5Horde3D Qml Quick)&lt;br /&gt;
TARGET_LINK_LIBRARIES(Qt5Horde3D Horde3D Horde3DUtils)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;br /&gt;
[http://i766.photobucket.com/albums/xx304/emanuelebertoldi/qt5horde3d_zpsed07e753.jpg The result should look like this]&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary|&lt;br /&gt;
name = Horde With Qt5 &amp;amp; QtQuick 2.1|&lt;br /&gt;
screenshot = H3DPlaceHolder.png|&lt;br /&gt;
description = This tutorial introduces the use of Horde3D with Qt5 &amp;amp; QtQuick 2.1|&lt;br /&gt;
version = 1.0|&lt;br /&gt;
horde3dversion = 1.0 beta 5|&lt;br /&gt;
released = 2013-09-06|&lt;br /&gt;
author =  Zuck|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=725</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=725"/>
				<updated>2012-10-05T19:29:01Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio ====&lt;br /&gt;
To compile the Editor yourself with Visual Studio 2008 or 2010:&lt;br /&gt;
# Download the [http://qt-project.org/downloads#qt-lib Qt libraries for Windows]. Make sure to choose the correct file (VS 2008 or VS 2010)!&lt;br /&gt;
# Install the libraries and remember the path (e.g. C:\Qt )&lt;br /&gt;
# Set your environment variables (Control Panel\System\Environment Variables):&lt;br /&gt;
## Add a new user-variable &amp;quot;QTDIR&amp;quot; and set it to the Qt folder (e.g. ''c:\Qt\4.8.2'' ).&lt;br /&gt;
## Add the directory of Qt's bin-folder to the system &amp;quot;Path&amp;quot;-variable (e.g. ''C:\Qt\4.8.2\bin;'').&lt;br /&gt;
# Restart your pc.&lt;br /&gt;
# Open the solution ''Horde3DEditor_XXXX_with_GameEngine.sln'' (2008/2010 depending on your VS version) and build it.&lt;br /&gt;
&lt;br /&gt;
==== Visual Studio 2005 ====&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux &amp;amp; Mac ===&lt;br /&gt;
For the installation under a Linux or MacOS environment you have to install at least&lt;br /&gt;
the Qt development libraries version 4.3.3 or above and CMake 2.8.3 to be able to compile the editor. After checking out the whole community&lt;br /&gt;
svn trunk (svn co http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/), you have to create some temporary build directory and call&lt;br /&gt;
cmake from within that directory with the Tools/Horde3DEditor directory of the community branch checkout as argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
&lt;br /&gt;
Depending on the editor version you're using there may be an additional wizzard&lt;br /&gt;
page comming next, that allows you to define Horde3D's resource directories.&amp;lt;br/&amp;gt;&lt;br /&gt;
'''Since the usage of those directories is deprecated the current community branch version of the editor does not offer this page anymore (so skip this step in the video tutorial)'''.&lt;br /&gt;
&lt;br /&gt;
Otherwise after choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=716</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=716"/>
				<updated>2012-02-07T08:43:09Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux &amp;amp; Mac ===&lt;br /&gt;
For the installation under a Linux or MacOS environment you have to install at least&lt;br /&gt;
the Qt development libraries version 4.3.3 or above and CMake 2.8.3 to be able to compile the editor. After checking out the whole community&lt;br /&gt;
svn trunk (svn co http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/), you have to create some temporary build directory and call&lt;br /&gt;
cmake from within that directory with the Tools/Horde3DEditor directory of the community branch checkout as argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=715</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=715"/>
				<updated>2012-02-02T17:22:37Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux &amp;amp; Mac ===&lt;br /&gt;
For the installation under a Linux or MacOS environment you have to install at least&lt;br /&gt;
the Qt development libraries version 4.3.3 or above and CMake 2.8.3 to be able to compile the editor. After checking out the community&lt;br /&gt;
svn, you have to create some temporary build directory and call cmake from within that directory with the Tools/Horde3DEditor directory of the community branch checkout &lt;br /&gt;
as argument.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=714</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=714"/>
				<updated>2012-02-02T17:17:00Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
In the repository there are also CMake configuration files to build the entire editor with all editor plugins and the Horde3D engine itself. Note that at least CMake 2.8.3 is required.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
For the installation under a Linux environment you have to install at least&lt;br /&gt;
Qt 4.3.3 to be able to compile the editor. After downloading and extracting&lt;br /&gt;
the compressed archive you have to run [http://doc.trolltech.com/4.4/qmake-manual.html qmake], which will create the make&lt;br /&gt;
files for your compiler. By typing '''make''' afterwards the editor will be created&lt;br /&gt;
in the ''bin'' subfolder of the directory where you placed the extracted files.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
Although it may be possible to compile the linux package under Mac OS X,&lt;br /&gt;
I can't provide support until someone buys me a macintosh. You can ﬁnd&lt;br /&gt;
some further information in the [http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=304 Horde3D forums].&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=DCC_Tool_Support&amp;diff=709</id>
		<title>DCC Tool Support</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=DCC_Tool_Support&amp;diff=709"/>
				<updated>2011-11-01T14:14:36Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: direct link to settings images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
== Textures ==&lt;br /&gt;
&lt;br /&gt;
Horde3D can load textures from standard image formats (TGA, JPEG, PNG, BMP, PSD, HDR), so virtually any image editing software can be used to create textures. Note however, that some more exotic features of these formats like progressive JPEGs are not supported.&lt;br /&gt;
&lt;br /&gt;
Besides the mentioned formats, Horde3D can directly load DDS (Direct Draw Surface) textures. DDS files can store less common texture types like cube maps or volume textures. They can also store data in a DXT compressed format which is understood directly by the graphics hardware. Since no decompression is required, loading DDS files is usually much more efficient than loading compressed JPEG or PNG images.&lt;br /&gt;
&lt;br /&gt;
The following tools are especially useful for creating DDS files:&lt;br /&gt;
&lt;br /&gt;
* [http://developer.nvidia.com/object/nv_texture_tools.html NVidia Texture Tools]&lt;br /&gt;
* [http://developer.amd.com/gpu/cubemapgen/pages/default.aspx ATI CubeMapGen]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ee417856%28VS.85%29.aspx DxTex.exe (in DirectX SDK)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Models and Animations ==&lt;br /&gt;
&lt;br /&gt;
Horde3D uses Collada as source format for 3d assets, so it supports a wide range of modeling applications. However, since Collada is a complex format which provides several ways to store the same data, the Collada output that a DCC tool produces may have some slight incompatibility with Horde's ColladaConv. Luckily, these problems are usually easy to fix and in fact the range of supported applications has already increased a lot over time. If you have a Collada file that is not working with Horde, feel free to give a shout in the forums.&lt;br /&gt;
&lt;br /&gt;
=== Collada Compatibility===&lt;br /&gt;
&lt;br /&gt;
* '''3D Studio Max 2009 and older'''&lt;br /&gt;
** Recommended exporter: [http://sourceforge.net/projects/colladamaya/ Feeling Software ColladaMax]&lt;br /&gt;
** Notes:&lt;br /&gt;
*** Very well tested. Full support for static and skinned meshes with animations and morph targets.&lt;br /&gt;
*** Always enable '''animation sampling''' and '''triangulation''' in the export options.&lt;br /&gt;
* '''3D Studio Max 2010 and newer'''&lt;br /&gt;
** The included Autodesk Collada Exporter works for static and skinned meshes using biped, cat-rigs, and bones. Make sure to use the latest FBX Plug-in version (latest testet version using 3DsMax 2011 is plug-in version 2012.2). &lt;br /&gt;
*** Successfully used exporter settings:&amp;lt;br&amp;gt;[[Image:autodeskcolladaexporter.png|x250px|link=http://www.horde3d.org/wiki/images/c/c9/Autodeskcolladaexporter.png]]&amp;lt;br&amp;gt;(click on image to enlarge).&lt;br /&gt;
**  The [http://code.google.com/p/opencollada/downloads/list OpenCOLLADA exporter] version 1.3.1 was successfully used to export static and skinned meshes which included morphtargets on top of the skinned geometry. Small problems occurring in the morphtarget naming scheme can be solved by editing the .dea file in a texteditor.&lt;br /&gt;
*** Successfully used exporter settings:&amp;lt;br&amp;gt;[[Image:Opencollada.png|x100px|link=http://www.horde3d.org/wiki/images/a/ad/Opencollada.png]]&amp;lt;br&amp;gt;(click on image to enlarge).&lt;br /&gt;
* '''Maya'''&lt;br /&gt;
** Recommended exporter: [http://sourceforge.net/projects/colladamaya/ Feeling Software ColladaMaya]&lt;br /&gt;
** Notes:&lt;br /&gt;
***  ColladaMaya uses the same code base as ColladaMax (FCollada), so the support should be good as well.&lt;br /&gt;
* '''Modo'''&lt;br /&gt;
** See [[Collada_-_Modo]]&lt;br /&gt;
&lt;br /&gt;
''The list above is not complete. The Collada output of many more DCC applications is supported, however someone actually working with them should please add reliable information about the level of support.''&lt;br /&gt;
&lt;br /&gt;
=== Special Exporters and Converters ===&lt;br /&gt;
&lt;br /&gt;
In general, using Collada should be preferred over having custom exporters. The reason for this is that ColladaConv does a fair amount of data conditioning and optimization which would have to be implemented for each exporter individually. However, some modeling tools don't have proper Collada export, so custom tools are required for them.&lt;br /&gt;
&lt;br /&gt;
==== Blender Exporter ====&lt;br /&gt;
&lt;br /&gt;
Blender has basic support for exporting Collada but skinning and animations are not working properly. For that reason, a direct [[Direct Export from Blender|Exporter for Horde3D]] is available.&lt;br /&gt;
&lt;br /&gt;
==== AC3D Converter ====&lt;br /&gt;
&lt;br /&gt;
jimbo has written a converter to bring AC3D .ac files to the Horde3D format. The converter with full source code can be downloaded from [http://www.daansystems.com/ac3d2horde3d here].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=DCC_Tool_Support&amp;diff=708</id>
		<title>DCC Tool Support</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=DCC_Tool_Support&amp;diff=708"/>
				<updated>2011-11-01T14:11:16Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: integrate exporter setting images into wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
== Textures ==&lt;br /&gt;
&lt;br /&gt;
Horde3D can load textures from standard image formats (TGA, JPEG, PNG, BMP, PSD, HDR), so virtually any image editing software can be used to create textures. Note however, that some more exotic features of these formats like progressive JPEGs are not supported.&lt;br /&gt;
&lt;br /&gt;
Besides the mentioned formats, Horde3D can directly load DDS (Direct Draw Surface) textures. DDS files can store less common texture types like cube maps or volume textures. They can also store data in a DXT compressed format which is understood directly by the graphics hardware. Since no decompression is required, loading DDS files is usually much more efficient than loading compressed JPEG or PNG images.&lt;br /&gt;
&lt;br /&gt;
The following tools are especially useful for creating DDS files:&lt;br /&gt;
&lt;br /&gt;
* [http://developer.nvidia.com/object/nv_texture_tools.html NVidia Texture Tools]&lt;br /&gt;
* [http://developer.amd.com/gpu/cubemapgen/pages/default.aspx ATI CubeMapGen]&lt;br /&gt;
* [http://msdn.microsoft.com/en-us/library/ee417856%28VS.85%29.aspx DxTex.exe (in DirectX SDK)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Models and Animations ==&lt;br /&gt;
&lt;br /&gt;
Horde3D uses Collada as source format for 3d assets, so it supports a wide range of modeling applications. However, since Collada is a complex format which provides several ways to store the same data, the Collada output that a DCC tool produces may have some slight incompatibility with Horde's ColladaConv. Luckily, these problems are usually easy to fix and in fact the range of supported applications has already increased a lot over time. If you have a Collada file that is not working with Horde, feel free to give a shout in the forums.&lt;br /&gt;
&lt;br /&gt;
=== Collada Compatibility===&lt;br /&gt;
&lt;br /&gt;
* '''3D Studio Max 2009 and older'''&lt;br /&gt;
** Recommended exporter: [http://sourceforge.net/projects/colladamaya/ Feeling Software ColladaMax]&lt;br /&gt;
** Notes:&lt;br /&gt;
*** Very well tested. Full support for static and skinned meshes with animations and morph targets.&lt;br /&gt;
*** Always enable '''animation sampling''' and '''triangulation''' in the export options.&lt;br /&gt;
* '''3D Studio Max 2010 and newer'''&lt;br /&gt;
** The included Autodesk Collada Exporter works for static and skinned meshes using biped, cat-rigs, and bones. Make sure to use the latest FBX Plug-in version (latest testet version using 3DsMax 2011 is plug-in version 2012.2). &lt;br /&gt;
*** Successfully used exporter settings:&amp;lt;br&amp;gt;[[Image:autodeskcolladaexporter.png|x250px]]&amp;lt;br&amp;gt;(click on image to enlarge).&lt;br /&gt;
**  The [http://code.google.com/p/opencollada/downloads/list OpenCOLLADA exporter] version 1.3.1 was successfully used to export static and skinned meshes which included morphtargets on top of the skinned geometry. Small problems occurring in the morphtarget naming scheme can be solved by editing the .dea file in a texteditor.&lt;br /&gt;
*** Successfully used exporter settings:&amp;lt;br&amp;gt;[[Image:Opencollada.png|x100px]]&amp;lt;br&amp;gt;(click on image to enlarge).&lt;br /&gt;
* '''Maya'''&lt;br /&gt;
** Recommended exporter: [http://sourceforge.net/projects/colladamaya/ Feeling Software ColladaMaya]&lt;br /&gt;
** Notes:&lt;br /&gt;
***  ColladaMaya uses the same code base as ColladaMax (FCollada), so the support should be good as well.&lt;br /&gt;
* '''Modo'''&lt;br /&gt;
** See [[Collada_-_Modo]]&lt;br /&gt;
&lt;br /&gt;
''The list above is not complete. The Collada output of many more DCC applications is supported, however someone actually working with them should please add reliable information about the level of support.''&lt;br /&gt;
&lt;br /&gt;
=== Special Exporters and Converters ===&lt;br /&gt;
&lt;br /&gt;
In general, using Collada should be preferred over having custom exporters. The reason for this is that ColladaConv does a fair amount of data conditioning and optimization which would have to be implemented for each exporter individually. However, some modeling tools don't have proper Collada export, so custom tools are required for them.&lt;br /&gt;
&lt;br /&gt;
==== Blender Exporter ====&lt;br /&gt;
&lt;br /&gt;
Blender has basic support for exporting Collada but skinning and animations are not working properly. For that reason, a direct [[Direct Export from Blender|Exporter for Horde3D]] is available.&lt;br /&gt;
&lt;br /&gt;
==== AC3D Converter ====&lt;br /&gt;
&lt;br /&gt;
jimbo has written a converter to bring AC3D .ac files to the Horde3D format. The converter with full source code can be downloaded from [http://www.daansystems.com/ac3d2horde3d here].&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:Opencollada.png&amp;diff=707</id>
		<title>File:Opencollada.png</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:Opencollada.png&amp;diff=707"/>
				<updated>2011-11-01T14:03:29Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:Autodeskcolladaexporter.png&amp;diff=706</id>
		<title>File:Autodeskcolladaexporter.png</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:Autodeskcolladaexporter.png&amp;diff=706"/>
				<updated>2011-11-01T14:03:28Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Main_Page&amp;diff=704</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Main_Page&amp;diff=704"/>
				<updated>2011-10-16T19:36:55Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__&lt;br /&gt;
{|  width=&amp;quot;800&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|  colspan=&amp;quot;2&amp;quot; | &amp;lt;!-- Top --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Welcome Message --&amp;gt;&lt;br /&gt;
{{ContentBlock|width=806|color=orange&lt;br /&gt;
|content=&lt;br /&gt;
'''Welcome to the wiki for the open source next-generation graphics engine Horde3D.'''&lt;br /&gt;
&lt;br /&gt;
This wiki collects information about how to make best use of the numerous features of Horde3D. Since it is a collaborative effort to which all community members are invited to contribute, the Horde3D team does not take any responsibility for the content or the accuracy of the content provided on these pages.&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock}}&lt;br /&gt;
{{ContentBlock|width=806|thickness=2 |color=#BFBFBF&lt;br /&gt;
|content=&lt;br /&gt;
{{Filmstrip}}&lt;br /&gt;
|description= [[Gallery]]: Here are a few of the [[samples]], add your own and get famous. [[Gallery|more...]]&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock}}&lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; | &amp;lt;!-- Left Panel --&amp;gt;&lt;br /&gt;
{{ContentBlock|width=500|color=#FFCC33&lt;br /&gt;
|icon=InfoIcon.png&lt;br /&gt;
|iconsize=32&lt;br /&gt;
|halign=top&lt;br /&gt;
|header=Using Horde3D&lt;br /&gt;
|sub-header=Useful information, instructions and tips for using the engine&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
* [[Horde3D_Wiki:Getting Started | Getting Started]]&lt;br /&gt;
* [[Horde3D_Wiki:FAQ | FAQ - Frequently Asked Questions about Horde3D]]&lt;br /&gt;
* [[Horde3D_Wiki:HOWTO | HOWTO - Small information and code snippets covering common issues]]&lt;br /&gt;
* [[Horde3D_Wiki:Community_Portal#Programming Guide | Programming Guide - Build instructions and info on using the API]]&lt;br /&gt;
* [[Horde3D_Wiki:Community_Portal#Shader Development | Shader Development - Articles about shader and effect development]]&lt;br /&gt;
* [[Horde3D_Wiki:Community_Portal#Asset Creation | Asset Creation - Information about asset creation and import]]&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock|width=500|color=#FF9900&lt;br /&gt;
|icon=HighlightIcon.png&lt;br /&gt;
|iconsize=32&lt;br /&gt;
|header=Related Tool Projects&lt;br /&gt;
|sub-header=Tools for Horde3D Development&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
[[Image:H3Deditor.jpg|frame|left|Horde3D Editor]]&lt;br /&gt;
* '''[[Horde3D Scene Editor | Horde3D Editor]]'''&lt;br /&gt;
* '''[http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ GameEngine Based on Components ]'''&lt;br /&gt;
* '''[[Extensions | Horde3D Extensions ]]'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; | &amp;lt;!-- Right Panel --&amp;gt;&lt;br /&gt;
{{ContentBlock|width=300|header=Download Horde3D|icon=Download45.png |sub-header=Stable Release: v1.0 beta5&lt;br /&gt;
|center=true&lt;br /&gt;
|content=&lt;br /&gt;
'''Get Distribution'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://sourceforge.net/projects/horde3d/&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/6/66/WinXP80.png&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://sourceforge.net/projects/horde3d/&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/6/60/MacOSX80.png&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;http://sourceforge.net/projects/horde3d/&amp;quot; &amp;gt;&amp;lt;img src=&amp;quot;http://www.horde3d.org/wiki/images/3/3d/Ubunto80.png&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Get [[SVN Source Instructions]]'''&lt;br /&gt;
{{SpacerBlock|294|2|color=#FF9900}}&lt;br /&gt;
{{ContentBlock|width=300|width=294 |thickness=0 |content-color=#FFFFCC&lt;br /&gt;
|center=true&lt;br /&gt;
|content=&lt;br /&gt;
'''[[Language Bindings]]:''' .NET • Digitalmars D • Lua • Python • Pascal&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|294|1|color=#FF9900}}&lt;br /&gt;
}}&lt;br /&gt;
{{SpacerBlock|1|1}}&lt;br /&gt;
{{ContentBlock|width=300|&lt;br /&gt;
|icon=DevIcon45.png&lt;br /&gt;
|header=Horde3D Development&lt;br /&gt;
|sub-header=[[SVN Source Instructions | SVN Instructions]]&lt;br /&gt;
|content-color=#FFFFCC&lt;br /&gt;
|content=&lt;br /&gt;
These pages are only of interest to developers who are modifying Horde itself, or developing extensions.&lt;br /&gt;
*[[Community Branch | Community Branch]]&lt;br /&gt;
*[[Extensions | Extension Development]]&lt;br /&gt;
*[[Community Roadmap | Community Roadmap]]&lt;br /&gt;
*[[Platform Issues | Known Platform Issues]]&lt;br /&gt;
}}&lt;br /&gt;
|-&lt;br /&gt;
|  colspan=&amp;quot;2&amp;quot; | &amp;lt;!-- Bottom --&amp;gt;&lt;br /&gt;
&amp;lt;!-- Sample Gallery --&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=698</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=698"/>
				<updated>2011-06-22T12:04:36Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5.&lt;br /&gt;
&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
For the installation under a Linux environment you have to install at least&lt;br /&gt;
Qt 4.3.3 to be able to compile the editor. After downloading and extracting&lt;br /&gt;
the compressed archive you have to run [http://doc.trolltech.com/4.4/qmake-manual.html qmake], which will create the make&lt;br /&gt;
files for your compiler. By typing '''make''' afterwards the editor will be created&lt;br /&gt;
in the ''bin'' subfolder of the directory where you placed the extracted files.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
Although it may be possible to compile the linux package under Mac OS X,&lt;br /&gt;
I can't provide support until someone buys me a macintosh. You can ﬁnd&lt;br /&gt;
some further information in the [http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=304 Horde3D forums].&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=697</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=697"/>
				<updated>2011-06-22T12:04:10Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta5&lt;br /&gt;
Thanks to our forum member Irdis, a windows binary release of the editor compatible with Horde3D Beta5 can be found [http://horde3d.org/forums/viewtopic.php?p=8263#p8263 here]. Note that you must have [http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx OpenAL] installed on your system to use it.&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
For the installation under a Linux environment you have to install at least&lt;br /&gt;
Qt 4.3.3 to be able to compile the editor. After downloading and extracting&lt;br /&gt;
the compressed archive you have to run [http://doc.trolltech.com/4.4/qmake-manual.html qmake], which will create the make&lt;br /&gt;
files for your compiler. By typing '''make''' afterwards the editor will be created&lt;br /&gt;
in the ''bin'' subfolder of the directory where you placed the extracted files.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
Although it may be possible to compile the linux package under Mac OS X,&lt;br /&gt;
I can't provide support until someone buys me a macintosh. You can ﬁnd&lt;br /&gt;
some further information in the [http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=304 Horde3D forums].&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Horde3D Scene Editor&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Direct_Export_from_Blender&amp;diff=696</id>
		<title>Direct Export from Blender</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Direct_Export_from_Blender&amp;diff=696"/>
				<updated>2011-06-18T22:57:14Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: /* TODO Check compatibility of Blender 2.5 collada tools with ColladaConv and if there are still bugs within Blender's Collada exporter, adjust the Blender Horde direct export for Beta5 compatibility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[==== TODO Check compatibility of Blender 2.5 collada tools with ColladaConv and if there are still bugs within Blender's Collada exporter, adjust the Blender Horde direct export for Beta5 compatibility ====]]&lt;br /&gt;
&lt;br /&gt;
== Exporter ==&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Blender's built-in Collada exporter is not fully compatible with Horde's ColladaConverter tool. &lt;br /&gt;
&lt;br /&gt;
A [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Exporters/Blender/ new exporter] has been developed in the [[Community Branch | Community SVN Branch]], and can be found at the links below. Currently the exporter does export animations, but only in special configurations.&lt;br /&gt;
&lt;br /&gt;
The new exporter is based on a python script for blender. To use it just save the Horde3DExport.py file to your Blender's '''.blender\scripts''' directory. After that you may have to restart your Blender application.&lt;br /&gt;
&lt;br /&gt;
After restarting Blender there is a new Option ''Horde3D'' in the ''Export'' menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:BlenderExport.jpg]]&lt;br /&gt;
&lt;br /&gt;
If you select this new option, a dialogue window will be opened for choosing the destination of the converted content. &lt;br /&gt;
&lt;br /&gt;
[[Image:BlenderExport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Export Filename''' defines the directory and filename used for the model and the geometry file. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Shader''' defines the shader used within the material files used by the exported model.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Relative material path''' will be used for the Horde3D material files. Note that an additional subdirectory for the exported model will be created. It will be named using the base name of the export filename.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Relative animation''' path will be used for any exported animation files&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A '''Texture subdirectory''' can be specified when you want to move all textures used by this model to its own directory within the relative texture path. Otherwise the textures will be copied directly to the texture path (may be useful if you use the same textures in several models&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;All textures used by your model will be copied to the '''Relative texture path'''.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that if you create the scene graph- and geometry file in a subdirectory of your Horde3D Geometry and/or Scene Graph path, the exporter won't recognize that and links the geometry file within the scene graph as if there is no sub directory. That's why the example above will create a cube.scene.xml in the Cube subdirectory that contains a link to a ''cube.geo'' without the additional subdirectory ''cube''.&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The exporter supports three types of ''animations'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;''Mesh animations'': They are exported by playing the ''timeline'' from currently setted frame ''start'' to frame ''end'' and - in every frame - writing the transformations of all objects in the *.anim file. You can use keyframes for that.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;''Bone animations'': Work similar to ''mesh animations''. The ''bones'' are exported as ''joints'' to Horde. Because of some problems with the matrices, you should apply scale/rotation to obdata (CTRL+A,1) and set the bone's roll to zero. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;''Shape keys'': are exported as ''morph targets''. You can find their names in the *.scene.xml as comment. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Textures and Materials ==&lt;br /&gt;
&lt;br /&gt;
The exporter tries to create the materials in the same way as they exist in blender.&lt;br /&gt;
As there a few differences to horde, you should currently only use one texture per material (except of bump maps). And there should only be one material per object.&lt;br /&gt;
Note: not all shaders support joints and not all shaders support transparency! So you have to choose them carefully. &lt;br /&gt;
&lt;br /&gt;
If you don't want to use textures but static material colors ( Note, no procedural textures! ), you have to use a special shader for them. By default the exporter writes the material color for geometry that don't have textures as a uniform to the material files. If you want to use these uniforms the shader must exactly use this uniform name, currently ''Materialcol''. If you want to use the material color you might try using the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/assets/Horde3D/shaders/materialCol.shader.xml materialCol.shader.xml] (an updated version for Beta5 can be found here: [http://www.horde3d.org/forums/download/file.php?id=353]) in place of standard.shader.xml or [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/assets/Horde3D/shaders/materialCol.shader.xml skinningMatcol.shader.xml] in place of skinning.shader.xml. You can find them in the &lt;br /&gt;
[[Community Branch | Community SVN Branch]]&lt;br /&gt;
To add your exported model to a scene and fine tune your shaders and materials you could use the [[Horde3D Scene Editor | Horde3D Editor]]. &lt;br /&gt;
&lt;br /&gt;
'''If you have experience with Blender and Python and want to help improving the exporter, feel free to post your comments in the [http://horde3d.org/forums/viewtopic.php?f=8&amp;amp;t=362 forum's thread].&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Horde3D 1.0.0 Beta3 ==&lt;br /&gt;
&lt;br /&gt;
Due to our practical course &amp;quot;Spieleprogrammierung&amp;quot; (Game programming) at the Augsburg University we fixed some issues with the Exporter and the new Horde3D Beta 3. Our exporter uses the new shader/texture settings in the *.material.xml and can be found &amp;lt;s&amp;gt;[http://megastore.uni-augsburg.de/get/064A1gmWZg/ here]&amp;lt;/s&amp;gt; &amp;lt;i&amp;gt;Unfortunately the link is dead, maybe someone can adjust the exporter in the community branch to work with Beta4 out of the box&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's only tested with the following settings, others may not work properly:&lt;br /&gt;
&lt;br /&gt;
http://img3.abload.de/img/exportsettingsoc5y.png&lt;br /&gt;
&lt;br /&gt;
''Shader'' is automatically set to ''shaders/model.shader'' and ''F01_Skinning''. For parallax shading, etc. you need to change the *.material.xml.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Direct_Export_from_Blender&amp;diff=695</id>
		<title>Direct Export from Blender</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Direct_Export_from_Blender&amp;diff=695"/>
				<updated>2011-06-18T22:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== TODO Check compatibility of Blender 2.5 collada tools with ColladaConv and if there are still bugs within Blender's Collada exporter, adjust the Blender Horde direct export for Beta5 compatibility ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Exporter ==&lt;br /&gt;
&lt;br /&gt;
Unfortunately, Blender's built-in Collada exporter is not fully compatible with Horde's ColladaConverter tool. &lt;br /&gt;
&lt;br /&gt;
A [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Exporters/Blender/ new exporter] has been developed in the [[Community Branch | Community SVN Branch]], and can be found at the links below. Currently the exporter does export animations, but only in special configurations.&lt;br /&gt;
&lt;br /&gt;
The new exporter is based on a python script for blender. To use it just save the Horde3DExport.py file to your Blender's '''.blender\scripts''' directory. After that you may have to restart your Blender application.&lt;br /&gt;
&lt;br /&gt;
After restarting Blender there is a new Option ''Horde3D'' in the ''Export'' menu.&lt;br /&gt;
&lt;br /&gt;
[[Image:BlenderExport.jpg]]&lt;br /&gt;
&lt;br /&gt;
If you select this new option, a dialogue window will be opened for choosing the destination of the converted content. &lt;br /&gt;
&lt;br /&gt;
[[Image:BlenderExport2.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Settings ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Export Filename''' defines the directory and filename used for the model and the geometry file. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Shader''' defines the shader used within the material files used by the exported model.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Relative material path''' will be used for the Horde3D material files. Note that an additional subdirectory for the exported model will be created. It will be named using the base name of the export filename.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The '''Relative animation''' path will be used for any exported animation files&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;A '''Texture subdirectory''' can be specified when you want to move all textures used by this model to its own directory within the relative texture path. Otherwise the textures will be copied directly to the texture path (may be useful if you use the same textures in several models&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;All textures used by your model will be copied to the '''Relative texture path'''.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that if you create the scene graph- and geometry file in a subdirectory of your Horde3D Geometry and/or Scene Graph path, the exporter won't recognize that and links the geometry file within the scene graph as if there is no sub directory. That's why the example above will create a cube.scene.xml in the Cube subdirectory that contains a link to a ''cube.geo'' without the additional subdirectory ''cube''.&lt;br /&gt;
&lt;br /&gt;
== Animations ==&lt;br /&gt;
&lt;br /&gt;
The exporter supports three types of ''animations'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;''Mesh animations'': They are exported by playing the ''timeline'' from currently setted frame ''start'' to frame ''end'' and - in every frame - writing the transformations of all objects in the *.anim file. You can use keyframes for that.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;''Bone animations'': Work similar to ''mesh animations''. The ''bones'' are exported as ''joints'' to Horde. Because of some problems with the matrices, you should apply scale/rotation to obdata (CTRL+A,1) and set the bone's roll to zero. &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;''Shape keys'': are exported as ''morph targets''. You can find their names in the *.scene.xml as comment. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Textures and Materials ==&lt;br /&gt;
&lt;br /&gt;
The exporter tries to create the materials in the same way as they exist in blender.&lt;br /&gt;
As there a few differences to horde, you should currently only use one texture per material (except of bump maps). And there should only be one material per object.&lt;br /&gt;
Note: not all shaders support joints and not all shaders support transparency! So you have to choose them carefully. &lt;br /&gt;
&lt;br /&gt;
If you don't want to use textures but static material colors ( Note, no procedural textures! ), you have to use a special shader for them. By default the exporter writes the material color for geometry that don't have textures as a uniform to the material files. If you want to use these uniforms the shader must exactly use this uniform name, currently ''Materialcol''. If you want to use the material color you might try using the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/assets/Horde3D/shaders/materialCol.shader.xml materialCol.shader.xml] (an updated version for Beta5 can be found here: [http://www.horde3d.org/forums/download/file.php?id=353]) in place of standard.shader.xml or [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/assets/Horde3D/shaders/materialCol.shader.xml skinningMatcol.shader.xml] in place of skinning.shader.xml. You can find them in the &lt;br /&gt;
[[Community Branch | Community SVN Branch]]&lt;br /&gt;
To add your exported model to a scene and fine tune your shaders and materials you could use the [[Horde3D Scene Editor | Horde3D Editor]]. &lt;br /&gt;
&lt;br /&gt;
'''If you have experience with Blender and Python and want to help improving the exporter, feel free to post your comments in the [http://horde3d.org/forums/viewtopic.php?f=8&amp;amp;t=362 forum's thread].&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Horde3D 1.0.0 Beta3 ==&lt;br /&gt;
&lt;br /&gt;
Due to our practical course &amp;quot;Spieleprogrammierung&amp;quot; (Game programming) at the Augsburg University we fixed some issues with the Exporter and the new Horde3D Beta 3. Our exporter uses the new shader/texture settings in the *.material.xml and can be found &amp;lt;s&amp;gt;[http://megastore.uni-augsburg.de/get/064A1gmWZg/ here]&amp;lt;/s&amp;gt; &amp;lt;i&amp;gt;Unfortunately the link is dead, maybe someone can adjust the exporter in the community branch to work with Beta4 out of the box&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It's only tested with the following settings, others may not work properly:&lt;br /&gt;
&lt;br /&gt;
http://img3.abload.de/img/exportsettingsoc5y.png&lt;br /&gt;
&lt;br /&gt;
''Shader'' is automatically set to ''shaders/model.shader'' and ''F01_Skinning''. For parallax shading, etc. you need to change the *.material.xml.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=694</id>
		<title>Community Branch</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=694"/>
				<updated>2011-05-15T15:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Community SVN Branch ==&lt;br /&gt;
&lt;br /&gt;
For a better integration of the community work we started a community SVN server branch. &lt;br /&gt;
&lt;br /&gt;
The new [http://hcm-lab.de/public/Horde3D/ repository] is provided by the  [http://mm-werkstatt.informatik.uni-augsburg.de University of Augsburg]&lt;br /&gt;
&lt;br /&gt;
To get informed about recent changes you can use the [http://cia.vc/stats/project/Horde3D CIA service].&lt;br /&gt;
&lt;br /&gt;
If you want to become part of the community and want to have write access, you can ask [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker] to create an account for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Of course there are some restrictions:'''&lt;br /&gt;
&lt;br /&gt;
You are not allowed to upload copyright protected files. You should commit only tested things and should not upload code that does not compile on your own development platform. If you are not sure if things you've developed are running on other platforms please post some details about your submission in the [http://horde3d.org/forums/viewforum.php?f=8 development section] on the [http://horde3d.org/forums/ forums], so other people get informed and can test it on their platforms.&lt;br /&gt;
&lt;br /&gt;
We can only accept code that is distributed under the LGPL or EPL license and assume that your submission is under that license.&lt;br /&gt;
&lt;br /&gt;
=== What's in ===&lt;br /&gt;
&lt;br /&gt;
Currently the community trunk branch contains nearly the same Horde3D version as the SF trunk branch. We will always try to keep the branches in sync, but since more people have write access to the community branch it may differ sometimes in some features that are not yet overtaken into the other branch.&lt;br /&gt;
Next to Horde3D itself, the community branch contains more language bindings, tools and non graphics related extensions. Currently there are a [[Sound Extension | Sound Extension]], a [http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ GameEngine Based on Components] and the [[Horde3D Scene Editor | Horde3D Scene Editor]].&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=693</id>
		<title>Community Branch</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=693"/>
				<updated>2011-05-15T15:17:32Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Community SVN Branch ==&lt;br /&gt;
&lt;br /&gt;
For a better integration of the community work we started a community SVN server branch. &lt;br /&gt;
&lt;br /&gt;
The new [https://hcm-lab.de/public/Horde3D/trunk/ repository] is provided by the  [http://mm-werkstatt.informatik.uni-augsburg.de University of Augsburg]&lt;br /&gt;
&lt;br /&gt;
To get informed about recent changes you can use the [http://cia.vc/stats/project/Horde3D CIA service].&lt;br /&gt;
&lt;br /&gt;
If you want to become part of the community and want to have write access, you can ask [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker] to create an account for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Of course there are some restrictions:'''&lt;br /&gt;
&lt;br /&gt;
You are not allowed to upload copyright protected files. You should commit only tested things and should not upload code that does not compile on your own development platform. If you are not sure if things you've developed are running on other platforms please post some details about your submission in the [http://horde3d.org/forums/viewforum.php?f=8 development section] on the [http://horde3d.org/forums/ forums], so other people get informed and can test it on their platforms.&lt;br /&gt;
&lt;br /&gt;
We can only accept code that is distributed under the LGPL or EPL license and assume that your submission is under that license.&lt;br /&gt;
&lt;br /&gt;
=== What's in ===&lt;br /&gt;
&lt;br /&gt;
Currently the community trunk branch contains nearly the same Horde3D version as the SF trunk branch. We will always try to keep the branches in sync, but since more people have write access to the community branch it may differ sometimes in some features that are not yet overtaken into the other branch.&lt;br /&gt;
Next to Horde3D itself, the community branch contains more language bindings, tools and non graphics related extensions. Currently there are a [[Sound Extension | Sound Extension]], a [http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ GameEngine Based on Components] and the [[Horde3D Scene Editor | Horde3D Scene Editor]].&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:HOWTO&amp;diff=684</id>
		<title>Horde3D Wiki:HOWTO</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:HOWTO&amp;diff=684"/>
				<updated>2010-09-17T14:19:07Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
The HOWTO contains quick answers for smaller problems. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to enable anti-aliasing (MSAA) ==&lt;br /&gt;
&lt;br /&gt;
Anti-aliasing can only be enabled for render targets. The RenderTarget element used in Pipeline resources has an attribute '''maxSamples''' which defines the maximum number of samples used for MSAA. The actual number of samples is controlled by the engine option '''SampleCount'''. This makes it possible to control the anti-aliasing quality from the application. If SampleCount is set to zero, MSAA is disabled. Note that the hardware needs to support the EXT_framebuffer_multisample extension in order for the MSAA to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to get the size of a loaded texture ==&lt;br /&gt;
&lt;br /&gt;
The following code queries the dimensions of the base mipmap of a loaded texture:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
int width = h3dGetResParamI( texResHandle, H3DTexRes::ImageElem, 0, H3DTexRes::ImgWidthI );&lt;br /&gt;
int height = h3dGetResParamI( texResHandle, H3DTexRes::ImageElem, 0, H3DTexRes::ImgHeightI );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
If you want to get the dimensions of mipmap level ''n'', change the elemIdx parameter which is 0 above to ''n''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to procedurally generate a texture ==&lt;br /&gt;
&lt;br /&gt;
To generate a texture and bind it to a shader, you need to perform three steps:&lt;br /&gt;
&lt;br /&gt;
First, create the texture handle, map data stream and write to it. Note that you need to perform this step '''before''' loading resources from disk (using &amp;lt;code&amp;gt;H3dutLoadResourcesFromDisk()&amp;lt;/code&amp;gt;)! Otherwise, the texture creation will fail.&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
H3DRes texRes = h3dCreateTexture( &amp;quot;myTexRes&amp;quot;, 64, 64, H3DFormats::TEX_RGBA16F, H3DResFlags::NoTexMipmaps );&lt;br /&gt;
float *data = static_cast&amp;lt;float*&amp;gt;( h3dMapResStream( texRes, H3DTexRes::ImageElem, 0, H3DTexRes::ImgPixelStream, false, true ) );&lt;br /&gt;
for( int row=0; row&amp;lt;64; ++row )&lt;br /&gt;
{&lt;br /&gt;
    float *rowPtr = data + row*64*4;&lt;br /&gt;
    for( int col=0; col&amp;lt;64; ++col )&lt;br /&gt;
    {&lt;br /&gt;
        float *sample = rowPtr + col*4;&lt;br /&gt;
        sample[0] = ...; // R&lt;br /&gt;
        sample[1] = ...; // G&lt;br /&gt;
        sample[2] = ...; // B&lt;br /&gt;
        sample[3] = ...; // A&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
h3dUnmapResStream( texRes );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Second, to bind the texture to a shader, you need to include it in the material XML file like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Material&amp;gt;&lt;br /&gt;
    &amp;lt;Shader source=&amp;quot;shaders/myshader.shader&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Sampler name=&amp;quot;myTexture&amp;quot; map=&amp;quot;myTexRes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Material&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, to reference the sampler in the shader, you need to declare it like this:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= Shader Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
[[FX]]&lt;br /&gt;
sampler myTexture;&lt;br /&gt;
&lt;br /&gt;
// ... declare other samplers, contexts etc.&lt;br /&gt;
&lt;br /&gt;
[[FS_LIGHTING]]&lt;br /&gt;
&lt;br /&gt;
varying vec2 texCoords; // ... assumed given by vertex shader ...&lt;br /&gt;
uniform sampler2D myTexture;&lt;br /&gt;
&lt;br /&gt;
void main( void )&lt;br /&gt;
{&lt;br /&gt;
  gl_FragColor = texture2D( myTexture, texCoords );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
Information taken from [http://www.horde3d.org/forums/viewtopic.php?f=2&amp;amp;t=965 this thread] on the forums.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to procedurally generate a geometry resource  ==&lt;br /&gt;
To generate a geometry resource from given data call '''h3dutCreateGeometryRes''':&lt;br /&gt;
&lt;br /&gt;
the following example will create a simple 2D plane.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
float posData[] = { &lt;br /&gt;
  0,  0, 0, &lt;br /&gt;
 10,  0, 0, &lt;br /&gt;
  0, 10, 0,&lt;br /&gt;
 10, 10, 0&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
unsigned int indexData[] = { 0, 1, 2, 2, 1, 3 };&lt;br /&gt;
short normalData[] = {&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
float uvData[] = {&lt;br /&gt;
 0, 0,&lt;br /&gt;
 1, 0,&lt;br /&gt;
 0, 1, &lt;br /&gt;
 1, 1&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
H3DRes geoRes = h3dutCreateGeometryRes( &amp;quot;geoRes&amp;quot;, 4, 6, posData, indexData, normalData, 0, 0, uvData, 0 );&lt;br /&gt;
H3DNode model = h3dAddModelNode( H3DRootNode, &amp;quot;DynGeoModelNode&amp;quot;, geoRes );&lt;br /&gt;
h3dAddMeshNode( model, &amp;quot;DynGeoMesh&amp;quot;, matRes, 0, 6, 0, 3 );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to modify vertex data ==&lt;br /&gt;
&lt;br /&gt;
Vertex data is stored as streams in geometry resources. A pointer to the vertex data can be obtained by mapping a stream. The following code modifies the y coordinates of all vertex positions stored in the specified geometry resource.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
int vertCount = h3dGetResParamI( myGeoRes, H3DGeoRes::GeometryElem, 0, H3DGeoRes::GeoVertexCountI );&lt;br /&gt;
float *pVertPosData = (float *)h3dMapResStream( myGeoRes, H3DGeoRes::GeometryElem, 0, H3DGeoRes::GeoVertPosStream, true, true );&lt;br /&gt;
&lt;br /&gt;
for( int i = 0; i &amp;lt; vertCount; ++i )&lt;br /&gt;
{&lt;br /&gt;
    pVertPosData[i * 3 + 1] = pVertPosData[i * 3 + 1] * 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h3dUnmapResStream( myGeoRes );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to exchange a texture of a mesh ==&lt;br /&gt;
&lt;br /&gt;
Consider you want to exchange the diffuse texture (sampler named ''albedoMap'') of a given mesh (with node handle ''myMesh'') by a texture resource with resource handle ''myNewTex''. You can do that with the following code:&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
H3DRes matRes = h3dGetNodeParamI( myMesh, H3DMesh::MatResI );&lt;br /&gt;
int idx = h3dFindResElem( matRes, H3DMatRes::SamplerElem, H3DMatRes::SampNameStr, &amp;quot;albedoMap&amp;quot; );&lt;br /&gt;
h3dSetResParamI( matRes, H3DMatRes::SamplerElem, idx, H3DMatRes::SampTexResI, myNewTex );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
First you need to retrieve the material used by the mesh. After that, you can find the desired sampler in the material. Finally, once you have the sampler index, you can access the sampler data and override its texture resource.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The code above changes directly the material resource. If several meshes are using the same material, all of them will have the new texture. If that is not desired, you can create a private copy of the material by cloning it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to display text in the scene ==&lt;br /&gt;
&lt;br /&gt;
Usually, text is displayed as part of a GUI or HUD on top of the scene. However, sometimes it can be useful to display text inside the scene at the location of a specific node. The following snippet displays the names of all models at the nodes' origins. For obtaining the right screen position, the node positions are projected and converted to overlay coordinates.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|description= C++ Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
// Get camera view matrix&lt;br /&gt;
const float *camTrans;&lt;br /&gt;
h3dGetNodeTransMats( _cam, 0x0, &amp;amp;camTrans );&lt;br /&gt;
Matrix4f viewMat( Matrix4f( camTrans ).inverted() );&lt;br /&gt;
&lt;br /&gt;
// Get camera projection matrix&lt;br /&gt;
float camProj[16];&lt;br /&gt;
h3dGetCameraProjMat( _cam, camProj );&lt;br /&gt;
Matrix4f projMat( camProj );&lt;br /&gt;
&lt;br /&gt;
// Loop over all model nodes&lt;br /&gt;
int cnt = h3dFindNodes( H3DRootNode, &amp;quot;&amp;quot;, H3DNodeTypes::Model );&lt;br /&gt;
for( int i = 0; i &amp;lt; cnt; ++i )&lt;br /&gt;
{&lt;br /&gt;
	// Get node name&lt;br /&gt;
	H3DNode node = h3dGetNodeFindResult( i );&lt;br /&gt;
	const char *name = h3dGetNodeParamStr( node, H3DNodeParams::NameStr );&lt;br /&gt;
&lt;br /&gt;
	// Get node position&lt;br /&gt;
	const float *nodeTrans;&lt;br /&gt;
	h3dGetNodeTransMats( node, 0, &amp;amp;nodeTrans ); &lt;br /&gt;
	Vec4f pos( nodeTrans[12], nodeTrans[13], nodeTrans[14], 1 );&lt;br /&gt;
&lt;br /&gt;
	// Project&lt;br /&gt;
	pos = projMat * viewMat * pos;&lt;br /&gt;
	float x = pos.x / pos.w;&lt;br /&gt;
	float y = pos.y / pos.w;&lt;br /&gt;
&lt;br /&gt;
	// Transform to overlay coordinates&lt;br /&gt;
    const float aspectRatio = h3dGetViewportParams( 0x0, 0x0, 0x0, 0x0 );&lt;br /&gt;
	x = (x * 0.5f + 0.5f)*aspectRatio;&lt;br /&gt;
	y = -y * 0.5f + 0.5f;&lt;br /&gt;
&lt;br /&gt;
	// Show text (avoid back-projection)&lt;br /&gt;
	if( pos.w &amp;gt; 0 ) h3dutShowText( name, x, y, 0.02f, 1.0f, 1.0f, 1.0f, _fontMatRes);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to tell the camera to look at a point ==&lt;br /&gt;
&lt;br /&gt;
Only pseudo code here, how the math behind this works can be found by searching for gluLookAt.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|description= Pseudo Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
forward = targetPosition - cameraPosition&lt;br /&gt;
forward = normalize(forward)&lt;br /&gt;
&lt;br /&gt;
up = Vector3(0, 1, 0) # vector pointing &amp;quot;up&amp;quot;, can be almost any vector&lt;br /&gt;
up = normalize(up)&lt;br /&gt;
&lt;br /&gt;
right = cross(forward, up)&lt;br /&gt;
right = normalize(right)&lt;br /&gt;
&lt;br /&gt;
up = cross(right, forward)&lt;br /&gt;
&lt;br /&gt;
# rotation matrix, column major format&lt;br /&gt;
m1 = [right.x, up.x, -forward.x, 0,&lt;br /&gt;
    right.y, up.y, -forward.y, 0,&lt;br /&gt;
    right.z, up.z, -forward.z, 0,&lt;br /&gt;
    0, 0, 0, 1]&lt;br /&gt;
&lt;br /&gt;
# translation matrix, column major format&lt;br /&gt;
m2 = [1, 0, 0, 0,&lt;br /&gt;
    0, 1, 0, 0,&lt;br /&gt;
    0, 0, 1, 0,&lt;br /&gt;
    -cameraPosition.x, -cameraPosition.y, -cameraPosition.z, 1]&lt;br /&gt;
&lt;br /&gt;
# combined transformation matrix (&amp;quot;view&amp;quot; matrix)&lt;br /&gt;
m3 = m1 * m2&lt;br /&gt;
&lt;br /&gt;
# since the camera node is just another node in Horde3D we have to invert the matrix m3&lt;br /&gt;
m3 = invert(m3)&lt;br /&gt;
&lt;br /&gt;
h3dSetNodeTransMat(cameraNode, m3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
This example will fail when either forward is a zero vector or forward is parallel to the choosen up vector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to orbit / rotate the camera around a point ==&lt;br /&gt;
{{CppSourceCode|description= Pseudo Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# setup: create an anchor node, so that the camera can always rotate around a relative (0, 0, 0) point&lt;br /&gt;
anchorNode = h3dAddGroupNode(h3dRootNode, 'camera-anchor')&lt;br /&gt;
cameraNode = h3dAddCameraNode(anchorNode, 'camera-orbiter')&lt;br /&gt;
&lt;br /&gt;
# basically calculate point on the surface of a sphere&lt;br /&gt;
# by using distance and two angles&lt;br /&gt;
&lt;br /&gt;
phi = phi % 360.0&lt;br /&gt;
theta = theta % 360.0&lt;br /&gt;
&lt;br /&gt;
if phi &amp;lt; 0: # will break for phi=0 and theta=0 otherwise&lt;br /&gt;
    phi = 0.0001&lt;br /&gt;
&lt;br /&gt;
r = distance&lt;br /&gt;
p = radians(phi)&lt;br /&gt;
t = radians(theta)&lt;br /&gt;
&lt;br /&gt;
x = r * cos(t) * sin(p)&lt;br /&gt;
y = r * cos(p)&lt;br /&gt;
z = r * sin(t) * sin(p)&lt;br /&gt;
&lt;br /&gt;
# calculate vectors for camera look at&lt;br /&gt;
forward = Vector3(0, 0, 0,) - Vector3(x, y, z)&lt;br /&gt;
if phi &amp;gt;= 180.0:&lt;br /&gt;
    up = Vector3(0, 1, 0)&lt;br /&gt;
else:&lt;br /&gt;
    up = Vector3(0, -1, 0)&lt;br /&gt;
&lt;br /&gt;
# with the forward and up vector use the code from the look at example to point the camera at the point (0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
When following another scene node use that node instead of h3dRootNode as a parent in the h3dAddGroupNode call.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:HOWTO&amp;diff=683</id>
		<title>Horde3D Wiki:HOWTO</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:HOWTO&amp;diff=683"/>
				<updated>2010-09-17T14:18:38Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: demonstrate h3dutCreateGeometryRes usage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
The HOWTO contains quick answers for smaller problems. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to enable anti-aliasing (MSAA) ==&lt;br /&gt;
&lt;br /&gt;
Anti-aliasing can only be enabled for render targets. The RenderTarget element used in Pipeline resources has an attribute '''maxSamples''' which defines the maximum number of samples used for MSAA. The actual number of samples is controlled by the engine option '''SampleCount'''. This makes it possible to control the anti-aliasing quality from the application. If SampleCount is set to zero, MSAA is disabled. Note that the hardware needs to support the EXT_framebuffer_multisample extension in order for the MSAA to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to get the size of a loaded texture ==&lt;br /&gt;
&lt;br /&gt;
The following code queries the dimensions of the base mipmap of a loaded texture:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
int width = h3dGetResParamI( texResHandle, H3DTexRes::ImageElem, 0, H3DTexRes::ImgWidthI );&lt;br /&gt;
int height = h3dGetResParamI( texResHandle, H3DTexRes::ImageElem, 0, H3DTexRes::ImgHeightI );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
If you want to get the dimensions of mipmap level ''n'', change the elemIdx parameter which is 0 above to ''n''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to procedurally generate a texture ==&lt;br /&gt;
&lt;br /&gt;
To generate a texture and bind it to a shader, you need to perform three steps:&lt;br /&gt;
&lt;br /&gt;
First, create the texture handle, map data stream and write to it. Note that you need to perform this step '''before''' loading resources from disk (using &amp;lt;code&amp;gt;H3dutLoadResourcesFromDisk()&amp;lt;/code&amp;gt;)! Otherwise, the texture creation will fail.&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
H3DRes texRes = h3dCreateTexture( &amp;quot;myTexRes&amp;quot;, 64, 64, H3DFormats::TEX_RGBA16F, H3DResFlags::NoTexMipmaps );&lt;br /&gt;
float *data = static_cast&amp;lt;float*&amp;gt;( h3dMapResStream( texRes, H3DTexRes::ImageElem, 0, H3DTexRes::ImgPixelStream, false, true ) );&lt;br /&gt;
for( int row=0; row&amp;lt;64; ++row )&lt;br /&gt;
{&lt;br /&gt;
    float *rowPtr = data + row*64*4;&lt;br /&gt;
    for( int col=0; col&amp;lt;64; ++col )&lt;br /&gt;
    {&lt;br /&gt;
        float *sample = rowPtr + col*4;&lt;br /&gt;
        sample[0] = ...; // R&lt;br /&gt;
        sample[1] = ...; // G&lt;br /&gt;
        sample[2] = ...; // B&lt;br /&gt;
        sample[3] = ...; // A&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
h3dUnmapResStream( texRes );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
Second, to bind the texture to a shader, you need to include it in the material XML file like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;Material&amp;gt;&lt;br /&gt;
    &amp;lt;Shader source=&amp;quot;shaders/myshader.shader&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;Sampler name=&amp;quot;myTexture&amp;quot; map=&amp;quot;myTexRes&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/Material&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, to reference the sampler in the shader, you need to declare it like this:&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= Shader Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
[[FX]]&lt;br /&gt;
sampler myTexture;&lt;br /&gt;
&lt;br /&gt;
// ... declare other samplers, contexts etc.&lt;br /&gt;
&lt;br /&gt;
[[FS_LIGHTING]]&lt;br /&gt;
&lt;br /&gt;
varying vec2 texCoords; // ... assumed given by vertex shader ...&lt;br /&gt;
uniform sampler2D myTexture;&lt;br /&gt;
&lt;br /&gt;
void main( void )&lt;br /&gt;
{&lt;br /&gt;
  gl_FragColor = texture2D( myTexture, texCoords );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
Information taken from [http://www.horde3d.org/forums/viewtopic.php?f=2&amp;amp;t=965 this thread] on the forums.&lt;br /&gt;
&lt;br /&gt;
== How to procedurally generate a geometry resource  ==&lt;br /&gt;
To generate a geometry resource from given data call '''h3dutCreateGeometryRes''':&lt;br /&gt;
&lt;br /&gt;
the following example will create a simple 2D plane.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
float posData[] = { &lt;br /&gt;
  0,  0, 0, &lt;br /&gt;
 10,  0, 0, &lt;br /&gt;
  0, 10, 0,&lt;br /&gt;
 10, 10, 0&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
unsigned int indexData[] = { 0, 1, 2, 2, 1, 3 };&lt;br /&gt;
short normalData[] = {&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1,&lt;br /&gt;
 0, 0, 1&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
float uvData[] = {&lt;br /&gt;
 0, 0,&lt;br /&gt;
 1, 0,&lt;br /&gt;
 0, 1, &lt;br /&gt;
 1, 1&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
H3DRes geoRes = h3dutCreateGeometryRes( &amp;quot;geoRes&amp;quot;, 4, 6, posData, indexData, normalData, 0, 0, uvData, 0 );&lt;br /&gt;
H3DNode model = h3dAddModelNode( H3DRootNode, &amp;quot;DynGeoModelNode&amp;quot;, geoRes );&lt;br /&gt;
h3dAddMeshNode( model, &amp;quot;DynGeoMesh&amp;quot;, matRes, 0, 6, 0, 3 );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to modify vertex data ==&lt;br /&gt;
&lt;br /&gt;
Vertex data is stored as streams in geometry resources. A pointer to the vertex data can be obtained by mapping a stream. The following code modifies the y coordinates of all vertex positions stored in the specified geometry resource.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
int vertCount = h3dGetResParamI( myGeoRes, H3DGeoRes::GeometryElem, 0, H3DGeoRes::GeoVertexCountI );&lt;br /&gt;
float *pVertPosData = (float *)h3dMapResStream( myGeoRes, H3DGeoRes::GeometryElem, 0, H3DGeoRes::GeoVertPosStream, true, true );&lt;br /&gt;
&lt;br /&gt;
for( int i = 0; i &amp;lt; vertCount; ++i )&lt;br /&gt;
{&lt;br /&gt;
    pVertPosData[i * 3 + 1] = pVertPosData[i * 3 + 1] * 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
h3dUnmapResStream( myGeoRes );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to exchange a texture of a mesh ==&lt;br /&gt;
&lt;br /&gt;
Consider you want to exchange the diffuse texture (sampler named ''albedoMap'') of a given mesh (with node handle ''myMesh'') by a texture resource with resource handle ''myNewTex''. You can do that with the following code:&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|&lt;br /&gt;
description= C++ Code|&lt;br /&gt;
code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
H3DRes matRes = h3dGetNodeParamI( myMesh, H3DMesh::MatResI );&lt;br /&gt;
int idx = h3dFindResElem( matRes, H3DMatRes::SamplerElem, H3DMatRes::SampNameStr, &amp;quot;albedoMap&amp;quot; );&lt;br /&gt;
h3dSetResParamI( matRes, H3DMatRes::SamplerElem, idx, H3DMatRes::SampTexResI, myNewTex );&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
First you need to retrieve the material used by the mesh. After that, you can find the desired sampler in the material. Finally, once you have the sampler index, you can access the sampler data and override its texture resource.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The code above changes directly the material resource. If several meshes are using the same material, all of them will have the new texture. If that is not desired, you can create a private copy of the material by cloning it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to display text in the scene ==&lt;br /&gt;
&lt;br /&gt;
Usually, text is displayed as part of a GUI or HUD on top of the scene. However, sometimes it can be useful to display text inside the scene at the location of a specific node. The following snippet displays the names of all models at the nodes' origins. For obtaining the right screen position, the node positions are projected and converted to overlay coordinates.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|description= C++ Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
// Get camera view matrix&lt;br /&gt;
const float *camTrans;&lt;br /&gt;
h3dGetNodeTransMats( _cam, 0x0, &amp;amp;camTrans );&lt;br /&gt;
Matrix4f viewMat( Matrix4f( camTrans ).inverted() );&lt;br /&gt;
&lt;br /&gt;
// Get camera projection matrix&lt;br /&gt;
float camProj[16];&lt;br /&gt;
h3dGetCameraProjMat( _cam, camProj );&lt;br /&gt;
Matrix4f projMat( camProj );&lt;br /&gt;
&lt;br /&gt;
// Loop over all model nodes&lt;br /&gt;
int cnt = h3dFindNodes( H3DRootNode, &amp;quot;&amp;quot;, H3DNodeTypes::Model );&lt;br /&gt;
for( int i = 0; i &amp;lt; cnt; ++i )&lt;br /&gt;
{&lt;br /&gt;
	// Get node name&lt;br /&gt;
	H3DNode node = h3dGetNodeFindResult( i );&lt;br /&gt;
	const char *name = h3dGetNodeParamStr( node, H3DNodeParams::NameStr );&lt;br /&gt;
&lt;br /&gt;
	// Get node position&lt;br /&gt;
	const float *nodeTrans;&lt;br /&gt;
	h3dGetNodeTransMats( node, 0, &amp;amp;nodeTrans ); &lt;br /&gt;
	Vec4f pos( nodeTrans[12], nodeTrans[13], nodeTrans[14], 1 );&lt;br /&gt;
&lt;br /&gt;
	// Project&lt;br /&gt;
	pos = projMat * viewMat * pos;&lt;br /&gt;
	float x = pos.x / pos.w;&lt;br /&gt;
	float y = pos.y / pos.w;&lt;br /&gt;
&lt;br /&gt;
	// Transform to overlay coordinates&lt;br /&gt;
    const float aspectRatio = h3dGetViewportParams( 0x0, 0x0, 0x0, 0x0 );&lt;br /&gt;
	x = (x * 0.5f + 0.5f)*aspectRatio;&lt;br /&gt;
	y = -y * 0.5f + 0.5f;&lt;br /&gt;
&lt;br /&gt;
	// Show text (avoid back-projection)&lt;br /&gt;
	if( pos.w &amp;gt; 0 ) h3dutShowText( name, x, y, 0.02f, 1.0f, 1.0f, 1.0f, _fontMatRes);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to tell the camera to look at a point ==&lt;br /&gt;
&lt;br /&gt;
Only pseudo code here, how the math behind this works can be found by searching for gluLookAt.&lt;br /&gt;
&lt;br /&gt;
{{CppSourceCode|description= Pseudo Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
forward = targetPosition - cameraPosition&lt;br /&gt;
forward = normalize(forward)&lt;br /&gt;
&lt;br /&gt;
up = Vector3(0, 1, 0) # vector pointing &amp;quot;up&amp;quot;, can be almost any vector&lt;br /&gt;
up = normalize(up)&lt;br /&gt;
&lt;br /&gt;
right = cross(forward, up)&lt;br /&gt;
right = normalize(right)&lt;br /&gt;
&lt;br /&gt;
up = cross(right, forward)&lt;br /&gt;
&lt;br /&gt;
# rotation matrix, column major format&lt;br /&gt;
m1 = [right.x, up.x, -forward.x, 0,&lt;br /&gt;
    right.y, up.y, -forward.y, 0,&lt;br /&gt;
    right.z, up.z, -forward.z, 0,&lt;br /&gt;
    0, 0, 0, 1]&lt;br /&gt;
&lt;br /&gt;
# translation matrix, column major format&lt;br /&gt;
m2 = [1, 0, 0, 0,&lt;br /&gt;
    0, 1, 0, 0,&lt;br /&gt;
    0, 0, 1, 0,&lt;br /&gt;
    -cameraPosition.x, -cameraPosition.y, -cameraPosition.z, 1]&lt;br /&gt;
&lt;br /&gt;
# combined transformation matrix (&amp;quot;view&amp;quot; matrix)&lt;br /&gt;
m3 = m1 * m2&lt;br /&gt;
&lt;br /&gt;
# since the camera node is just another node in Horde3D we have to invert the matrix m3&lt;br /&gt;
m3 = invert(m3)&lt;br /&gt;
&lt;br /&gt;
h3dSetNodeTransMat(cameraNode, m3)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
This example will fail when either forward is a zero vector or forward is parallel to the choosen up vector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to orbit / rotate the camera around a point ==&lt;br /&gt;
{{CppSourceCode|description= Pseudo Code|code=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
# setup: create an anchor node, so that the camera can always rotate around a relative (0, 0, 0) point&lt;br /&gt;
anchorNode = h3dAddGroupNode(h3dRootNode, 'camera-anchor')&lt;br /&gt;
cameraNode = h3dAddCameraNode(anchorNode, 'camera-orbiter')&lt;br /&gt;
&lt;br /&gt;
# basically calculate point on the surface of a sphere&lt;br /&gt;
# by using distance and two angles&lt;br /&gt;
&lt;br /&gt;
phi = phi % 360.0&lt;br /&gt;
theta = theta % 360.0&lt;br /&gt;
&lt;br /&gt;
if phi &amp;lt; 0: # will break for phi=0 and theta=0 otherwise&lt;br /&gt;
    phi = 0.0001&lt;br /&gt;
&lt;br /&gt;
r = distance&lt;br /&gt;
p = radians(phi)&lt;br /&gt;
t = radians(theta)&lt;br /&gt;
&lt;br /&gt;
x = r * cos(t) * sin(p)&lt;br /&gt;
y = r * cos(p)&lt;br /&gt;
z = r * sin(t) * sin(p)&lt;br /&gt;
&lt;br /&gt;
# calculate vectors for camera look at&lt;br /&gt;
forward = Vector3(0, 0, 0,) - Vector3(x, y, z)&lt;br /&gt;
if phi &amp;gt;= 180.0:&lt;br /&gt;
    up = Vector3(0, 1, 0)&lt;br /&gt;
else:&lt;br /&gt;
    up = Vector3(0, -1, 0)&lt;br /&gt;
&lt;br /&gt;
# with the forward and up vector use the code from the look at example to point the camera at the point (0, 0, 0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;}}&lt;br /&gt;
When following another scene node use that node instead of h3dRootNode as a parent in the h3dAddGroupNode call.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=662</id>
		<title>Building Horde3D</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Building_Horde3D&amp;diff=662"/>
				<updated>2010-03-25T11:52:14Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ __NOEDITSECTION__{{ContentBlock|color=white|content={{!!}}&lt;br /&gt;
This article contains instructions for building Horde3D from source on all supported platforms. Since Horde3D is very lightweight and has a minimal amount of external dependencies, getting it to compile and run is usually quite straightforward.&lt;br /&gt;
&lt;br /&gt;
== Obtaining the SDK ==&lt;br /&gt;
&lt;br /&gt;
Besides the [http://sourceforge.net/projects/horde3d/files/ official release packages], there is also a subversion repository hosted at SourceForge which is usually more up-to-date than the stable point releases.&lt;br /&gt;
&lt;br /&gt;
The repository has the common SVN structure ''branches'', ''tags'' and ''trunk''. The latest development snapshot can be found in the ''trunk'' folder, while the official releases are tagged in the ''tags'' folder. If you check out the trunk folder, you will get the SDK along with all official extensions.&lt;br /&gt;
&lt;br /&gt;
See [[SVN Source Instructions]] for instructions on how to obtain code from Subversion.&lt;br /&gt;
&lt;br /&gt;
== Building on Windows ==&lt;br /&gt;
&lt;br /&gt;
The preferred way of building Horde3D on Windows is using '''Visual Studio'''. The SDK comes with a solution file for Visual Studio 2005 that can be opened with the Visual C++ Express Edition as well. If you have Visual Studio 2008 (Standard/Professional or Express), you can simply use the VS Conversion Wizard to update the solution and project files. The solution contains the samples that can be started directly from Visual Studio. Just set the desired sample as startup project.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use CMake to create the Visual Studio solution files. The process is similar to what you do on Linux then. However, if you want to use Visual Studio's ''nmake'', you usually have to use the Visual Studio Command Prompt instead of the standard ''cmd'' shell. Sample batch files for creating VS 2005 and 2008 projects can be found in the ''CMake'' folder located in the Horde3D repository.&lt;br /&gt;
&lt;br /&gt;
== Building on Linux ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D SDK is compatible with gcc and ships with [http://www.cmake.org CMake] configuration files. To build Horde3D, just switch to the Horde3D root directory. Create a new directory which will contain the makefiles created by CMake, for example ''CMake'' and change into it. After that, type&lt;br /&gt;
&lt;br /&gt;
  cmake ..&lt;br /&gt;
&lt;br /&gt;
which will create the makefiles. Once they are created, you can type &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt; to build the code or &amp;lt;tt&amp;gt;make clean&amp;lt;/tt&amp;gt; to remove all generated files.&lt;br /&gt;
&lt;br /&gt;
=== Linkage order for your application ===&lt;br /&gt;
You must link Horde3D library to your final executable before GL one.&lt;br /&gt;
&lt;br /&gt;
'''WRONG''':&lt;br /&gt;
  gcc -o app main.cpp -lGL '''-lHorde3D'''&lt;br /&gt;
&lt;br /&gt;
'''RIGHT''':&lt;br /&gt;
  gcc -o app main.cpp '''-lHorde3D''' -lGL&lt;br /&gt;
&lt;br /&gt;
This is required for GCC 3.x and 4.x series on Linux. If you don't follow the linkage order, you will get [http://horde3d.org/forums/viewtopic.php?f=2&amp;amp;t=384 glCreateShader error within h3dInit call].&lt;br /&gt;
&lt;br /&gt;
== Building on Max OS X ==&lt;br /&gt;
&lt;br /&gt;
Mac OS X is an advanced graphical system layered over a traditional Unix core. Because of this, you can either use Apple's graphical Xcode IDE to develop Horde3D based applications, or you can go the traditional Unix way using gcc and makefiles.&lt;br /&gt;
&lt;br /&gt;
==== The Mac Way Using Xcode ====&lt;br /&gt;
&lt;br /&gt;
To create the Xcode project files, you have to install CMake first. After installing the CMake command line tools (so choose NOT to skip the installation when asked during the CMake installation), you should be able to run CMake from the console. Switch to Horde3D root directory and create a new directory in which the CMake output will be stored, for example ''CMake''. Change the current directory to that newly created one and type&lt;br /&gt;
&lt;br /&gt;
  cmake -G &amp;quot;Xcode&amp;quot; ..&lt;br /&gt;
&lt;br /&gt;
You should now be able to open the newly created project in Xcode in order to build Horde3D.&lt;br /&gt;
&lt;br /&gt;
==== The Unix Way Using the Command Line ====&lt;br /&gt;
&lt;br /&gt;
''TODO''&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=SVN_Source_Instructions&amp;diff=661</id>
		<title>SVN Source Instructions</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=SVN_Source_Instructions&amp;diff=661"/>
				<updated>2010-03-25T11:50:06Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The latest Horde3D code and sample assets can be checked out from the official trunk hosted at SourceForge.&lt;br /&gt;
&lt;br /&gt;
*If you use Tortoise SVN, simply do a checkout with: &lt;br /&gt;
    &amp;lt;nowiki&amp;gt;https://horde3d.svn.sourceforge.net/svnroot/horde3d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you are using command line svn:&lt;br /&gt;
    &amp;lt;nowiki&amp;gt;svn co https://horde3d.svn.sourceforge.net/svnroot/horde3d horde3d&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check the [[Building_Horde3D|build instructions]] for your platform to compile the source.&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=658</id>
		<title>Language Bindings</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Language_Bindings&amp;diff=658"/>
				<updated>2010-03-01T14:35:23Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Due to its simple 'C' DLL interface, Horde3D can be accessed from most programming and scripting languages without much effort.&lt;br /&gt;
The community has already created bindings for the following languages. Most of the bindings can be found in the [[Community Branch | Community SVN Branch]], however, not all of them are constantly maintained and up-to-date.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''C#'''&lt;br /&gt;
** Maintained by the Horde3D team&lt;br /&gt;
** Can be found on [http://sourceforge.net/projects/horde3d/files/Horde3D%20Language%20Bindings/ SourceForge] as well as in the Community Branch&lt;br /&gt;
* '''Lua'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** The Horde3D Editor has separate bindings as well that can be found [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/src/HordeSceneEditor/LuaBindingsHorde.cpp here]&lt;br /&gt;
* '''Python'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=313 this thread] for further info&lt;br /&gt;
* '''D'''&lt;br /&gt;
** Two independent bindings exist, both located in the Community Branch&lt;br /&gt;
** 1. Native bindings which redeclare the C API and are directly usable by linking against the Horde3D library (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=932 this thread])&lt;br /&gt;
** 2. Bindings using Derelict and function pointers (see [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=180 this thread])&lt;br /&gt;
* '''Pascal'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1058 this thread] for further info&lt;br /&gt;
* '''Squirrel'''&lt;br /&gt;
** In the Community Branch&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=578 this thread] for further info&lt;br /&gt;
* '''Haskel'''&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=550 this thread] for further info&lt;br /&gt;
* '''Java'''&lt;br /&gt;
** Available in [http://bitbucket.org/fk/horde3d-java/ Felix Krull's Mercurial repository]&lt;br /&gt;
** See [http://www.horde3d.org/forums/viewtopic.php?f=1&amp;amp;t=1093 this thread] for further info&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Extensions&amp;diff=651</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Extensions&amp;diff=651"/>
				<updated>2010-01-25T18:36:57Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Horde3D provides an easy to use extension mechanism which allows additional functionality to be added to Horde3D.&lt;br /&gt;
&lt;br /&gt;
==Available Extensions==&lt;br /&gt;
&lt;br /&gt;
[[Image:H3Dterrain.jpg]] [[Terrain Extension]] - Heightmap based terrain with automatic LOD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:H3Dsound.jpg]] [[Sound Extension]] - 3D positional audio based on OpenAL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:H3DGUIsmall.jpg]] [[GUI Extension]] - A fully integrated GUI system for Horde3D&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=650</id>
		<title>GUI Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=650"/>
				<updated>2010-01-25T18:36:22Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=The GUI extensions adds a GUi system to Horde3D which can be used to display both 3D GUIs and 2D menus. This is done by defining a common GUI scene node which renders 2D geometry at the local xy plane of the scene node. All GUI elements are skinnable. The GUI uses wchar_t for all strings.&lt;br /&gt;
&lt;br /&gt;
The extension was presented in the forum here: http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=1065&lt;br /&gt;
&lt;br /&gt;
= Getting the extension =&lt;br /&gt;
The extension is in my mercurial fork of the official horde3d repository at http://bitbucket.org/mgottschlag/horde3dext/. Click on &amp;quot;get source&amp;quot; in the upper right corner to download a snapshot of the sources.&lt;br /&gt;
&lt;br /&gt;
The repository contains always-up-to-date CMake files, but the MSVC files might be outdated. If you cannot compile Horde3D, ask in the forum thread mentioned above.&lt;br /&gt;
&lt;br /&gt;
= Font rendering options =&lt;br /&gt;
If compiling with CMake, you can select FreeType font rendering via cmake options as an alternative to the internal font renderer. This provides better looking text, but comes with the disadvantage that you need FreeType development files and the CMake freetype module installed. Only has been tested on Linux so far.&lt;br /&gt;
&lt;br /&gt;
= Implemented widgets =&lt;br /&gt;
&lt;br /&gt;
* Buttons&lt;br /&gt;
* Edit boxes&lt;br /&gt;
* Check boxes&lt;br /&gt;
* Group boxes&lt;br /&gt;
&lt;br /&gt;
= Position system =&lt;br /&gt;
&lt;br /&gt;
For pixel-perfect layouts at all (and even at varying) screen sizes, a combination of relative and absolute addressing is used. A position (or size) is built from 4 values, 2 absolute ones in pixels, and to values relative to the screen size. For example the position (0.5, 10, 0.25, -20) with a screensize of 1280 * 1024 pixels would result in the absolute position with x = 0.5 * 1280 + 10 = 650 and y = 0.25 * 1024 - 20 = 236.&lt;br /&gt;
&lt;br /&gt;
= Rendering =&lt;br /&gt;
The GUI resource only provides position and UV coordinate information for the vertices, the normals are assumed to be along the local z axis.&lt;br /&gt;
&lt;br /&gt;
The GUI scene node only can render quads, and the quads are put together in batches. The batches are cached and only updated when necessary (though this can still be optimized, much more is updated than what would be necessary atm).&lt;br /&gt;
&lt;br /&gt;
The font glyphs are rendered in software once when they are used for the first time and then saved to a texture specified in the font resource (for an example resource see the GUI example in the repository).&lt;br /&gt;
&lt;br /&gt;
= Usage example =&lt;br /&gt;
&lt;br /&gt;
The following code creates a GUI with one button and one edit box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H3DRes fontMatRes = h3dAddResource( H3DResTypes::Material, &amp;quot;overlays/font.material.xml&amp;quot;, 0 );&lt;br /&gt;
// GUI skin&lt;br /&gt;
H3DRes skinRes = h3dAddResource( H3DGUI_ResType_Skin, &amp;quot;skins/gui.skin.xml&amp;quot;, 0 );&lt;br /&gt;
// Load resources&lt;br /&gt;
h3dutLoadResourcesFromDisk( _contentDir.c_str() );&lt;br /&gt;
// Add gui&lt;br /&gt;
H3DNode gui = h3dguiAddGUI( screen, &amp;quot;GUI&amp;quot;, skinRes );&lt;br /&gt;
h3dSetNodeTransform( gui, 0, 0, 0, 0, 0, 0, 0.8f, 0.6f, 1 );&lt;br /&gt;
// Set virtual screen size&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::WidthI, 320 );&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::HeightI, 240 );&lt;br /&gt;
H3DGUIElement root = h3dguiGetRoot(_gui);&lt;br /&gt;
h3dguiSetElementParamI( _gui, root, H3DElementParam::ShowBackgroundI, 1 );&lt;br /&gt;
// Add a frame around the elements&lt;br /&gt;
H3DGUIElement frame = h3dguiAddFrame(_gui, root);&lt;br /&gt;
h3dguiSetElementParamStr( _gui, frame, FrameParam::LabelStr, L&amp;quot;Example GUI&amp;quot; );&lt;br /&gt;
// Add an editbox&lt;br /&gt;
H3DGUIElement editbox = h3dguiAddEditBox(_gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, editbox, 0.1f, 0, 0.1f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, editbox, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, editbox, EditBoxParam::TextStr, L&amp;quot;EditBox&amp;quot; );&lt;br /&gt;
// Add a button&lt;br /&gt;
H3DGUIElement button = h3dguiAddButton(gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, button, 0.f, 0, 0.5f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, button, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, button, ButtonParam::LabelStr, L&amp;quot;Button&amp;quot; );&lt;br /&gt;
// Set an action ID for the button&lt;br /&gt;
h3dguiSetElementParamI( gui, button, H3DElementParam::ActionIdI, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mouse and keyboard input are injected like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Insert printable char&lt;br /&gt;
h3dguiInsertChar( gui, 'A' );&lt;br /&gt;
// Insert special key (1 = pressed)&lt;br /&gt;
h3dguiInsertKey( gui, H3DGUIKey::Return, 1 );&lt;br /&gt;
// Insert new mouse position&lt;br /&gt;
h3dguiSetMousePosition( gui, 100, 100 );&lt;br /&gt;
// Insert left mouse button event (0 = left mouse button, 1 = pressed)&lt;br /&gt;
h3dguiSetMouseButton( gui, 0, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Events from the GUI are handled like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while( h3dguiHasEvent( gui ) )&lt;br /&gt;
{&lt;br /&gt;
	int type = h3dguiGetEventType( gui );&lt;br /&gt;
	unsigned int actionid = h3dguiGetEventActionID( gui );&lt;br /&gt;
	if( type == H3DGUIEvent::Action &amp;amp;&amp;amp; actionid == 1 )&lt;br /&gt;
	{&lt;br /&gt;
		std::cout &amp;lt;&amp;lt; &amp;quot;Button has been pressed!&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There also is an example showing how to use a 3D GUI in the repository at Extensions/GUI/Sample.&lt;br /&gt;
&lt;br /&gt;
= Screenshot =&lt;br /&gt;
&lt;br /&gt;
http://img63.imageshack.us/img63/3766/guir.png&lt;br /&gt;
&lt;br /&gt;
= Things still missing =&lt;br /&gt;
&lt;br /&gt;
Feel free to participate here:&lt;br /&gt;
&lt;br /&gt;
* Windows, dialogs, modal events&lt;br /&gt;
* List boxes&lt;br /&gt;
* Radio buttons&lt;br /&gt;
* Copy/Paste&lt;br /&gt;
* Image elements&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; |{{Extension_Summary&lt;br /&gt;
|name = GUI Extension&lt;br /&gt;
|screenshot = H3DGUIsmall.jpg &lt;br /&gt;
|description = The GUI extension adds a tightly integrated GUI system to Horde3D.&lt;br /&gt;
|horde3dversion = svn head&lt;br /&gt;
|released = 2010-01-25&lt;br /&gt;
|author = Mathias Gottschlag|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:H3DGUIsmall.jpg&amp;diff=649</id>
		<title>File:H3DGUIsmall.jpg</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:H3DGUIsmall.jpg&amp;diff=649"/>
				<updated>2010-01-25T18:35:44Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=648</id>
		<title>Template:Extension Summary</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=648"/>
				<updated>2010-01-25T18:33:10Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=&amp;quot;right&amp;quot; style=&amp;quot;background-color: #FFE8CF; border: 2px solid #EC8A1C; margin: 2px; padding: 5px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=100px|&lt;br /&gt;
|width=100px|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |'''{{{name}}}'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |[[Image:{{{screenshot}}}]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |''{{{description}}}''&lt;br /&gt;
|-&lt;br /&gt;
|'''Version: '''||{{{version}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Compatible with Horde3D:'''||{{{horde3dversion}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Release date:'''||{{{released}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Author(s):'''||{{{author}}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=647</id>
		<title>Template:Extension Summary</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=647"/>
				<updated>2010-01-25T18:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=&amp;quot;right&amp;quot; style=&amp;quot;background-color: #FFE8CF; border: 2px solid #EC8A1C; margin: 2px; padding: 5px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=100px|&lt;br /&gt;
|width=100px|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |'''{{{name}}}'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;200px&amp;quot; height=&amp;quot;150px&amp;quot; |[[Image:{{{screenshot}}}]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |''{{{description}}}''&lt;br /&gt;
|-&lt;br /&gt;
|'''Version: '''||{{{version}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Compatible with Horde3D:'''||{{{horde3dversion}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Release date:'''||{{{released}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Author(s):'''||{{{author}}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=646</id>
		<title>GUI Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=646"/>
				<updated>2010-01-25T18:31:12Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=The GUI extensions adds a GUi system to Horde3D which can be used to display both 3D GUIs and 2D menus. This is done by defining a common GUI scene node which renders 2D geometry at the local xy plane of the scene node. All GUI elements are skinnable. The GUI uses wchar_t for all strings.&lt;br /&gt;
&lt;br /&gt;
The extension was presented in the forum here: http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=1065&lt;br /&gt;
&lt;br /&gt;
= Getting the extension =&lt;br /&gt;
The extension is in my mercurial fork of the official horde3d repository at http://bitbucket.org/mgottschlag/horde3dext/. Click on &amp;quot;get source&amp;quot; in the upper right corner to download a snapshot of the sources.&lt;br /&gt;
&lt;br /&gt;
The repository contains always-up-to-date CMake files, but the MSVC files might be outdated. If you cannot compile Horde3D, ask in the forum thread mentioned above.&lt;br /&gt;
&lt;br /&gt;
= Font rendering options =&lt;br /&gt;
If compiling with CMake, you can select FreeType font rendering via cmake options as an alternative to the internal font renderer. This provides better looking text, but comes with the disadvantage that you need FreeType development files and the CMake freetype module installed. Only has been tested on Linux so far.&lt;br /&gt;
&lt;br /&gt;
= Implemented widgets =&lt;br /&gt;
&lt;br /&gt;
* Buttons&lt;br /&gt;
* Edit boxes&lt;br /&gt;
* Check boxes&lt;br /&gt;
* Group boxes&lt;br /&gt;
&lt;br /&gt;
= Position system =&lt;br /&gt;
&lt;br /&gt;
For pixel-perfect layouts at all (and even at varying) screen sizes, a combination of relative and absolute addressing is used. A position (or size) is built from 4 values, 2 absolute ones in pixels, and to values relative to the screen size. For example the position (0.5, 10, 0.25, -20) with a screensize of 1280 * 1024 pixels would result in the absolute position with x = 0.5 * 1280 + 10 = 650 and y = 0.25 * 1024 - 20 = 236.&lt;br /&gt;
&lt;br /&gt;
= Rendering =&lt;br /&gt;
The GUI resource only provides position and UV coordinate information for the vertices, the normals are assumed to be along the local z axis.&lt;br /&gt;
&lt;br /&gt;
The GUI scene node only can render quads, and the quads are put together in batches. The batches are cached and only updated when necessary (though this can still be optimized, much more is updated than what would be necessary atm).&lt;br /&gt;
&lt;br /&gt;
The font glyphs are rendered in software once when they are used for the first time and then saved to a texture specified in the font resource (for an example resource see the GUI example in the repository).&lt;br /&gt;
&lt;br /&gt;
= Usage example =&lt;br /&gt;
&lt;br /&gt;
The following code creates a GUI with one button and one edit box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H3DRes fontMatRes = h3dAddResource( H3DResTypes::Material, &amp;quot;overlays/font.material.xml&amp;quot;, 0 );&lt;br /&gt;
// GUI skin&lt;br /&gt;
H3DRes skinRes = h3dAddResource( H3DGUI_ResType_Skin, &amp;quot;skins/gui.skin.xml&amp;quot;, 0 );&lt;br /&gt;
// Load resources&lt;br /&gt;
h3dutLoadResourcesFromDisk( _contentDir.c_str() );&lt;br /&gt;
// Add gui&lt;br /&gt;
H3DNode gui = h3dguiAddGUI( screen, &amp;quot;GUI&amp;quot;, skinRes );&lt;br /&gt;
h3dSetNodeTransform( gui, 0, 0, 0, 0, 0, 0, 0.8f, 0.6f, 1 );&lt;br /&gt;
// Set virtual screen size&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::WidthI, 320 );&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::HeightI, 240 );&lt;br /&gt;
H3DGUIElement root = h3dguiGetRoot(_gui);&lt;br /&gt;
h3dguiSetElementParamI( _gui, root, H3DElementParam::ShowBackgroundI, 1 );&lt;br /&gt;
// Add a frame around the elements&lt;br /&gt;
H3DGUIElement frame = h3dguiAddFrame(_gui, root);&lt;br /&gt;
h3dguiSetElementParamStr( _gui, frame, FrameParam::LabelStr, L&amp;quot;Example GUI&amp;quot; );&lt;br /&gt;
// Add an editbox&lt;br /&gt;
H3DGUIElement editbox = h3dguiAddEditBox(_gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, editbox, 0.1f, 0, 0.1f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, editbox, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, editbox, EditBoxParam::TextStr, L&amp;quot;EditBox&amp;quot; );&lt;br /&gt;
// Add a button&lt;br /&gt;
H3DGUIElement button = h3dguiAddButton(gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, button, 0.f, 0, 0.5f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, button, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, button, ButtonParam::LabelStr, L&amp;quot;Button&amp;quot; );&lt;br /&gt;
// Set an action ID for the button&lt;br /&gt;
h3dguiSetElementParamI( gui, button, H3DElementParam::ActionIdI, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mouse and keyboard input are injected like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Insert printable char&lt;br /&gt;
h3dguiInsertChar( gui, 'A' );&lt;br /&gt;
// Insert special key (1 = pressed)&lt;br /&gt;
h3dguiInsertKey( gui, H3DGUIKey::Return, 1 );&lt;br /&gt;
// Insert new mouse position&lt;br /&gt;
h3dguiSetMousePosition( gui, 100, 100 );&lt;br /&gt;
// Insert left mouse button event (0 = left mouse button, 1 = pressed)&lt;br /&gt;
h3dguiSetMouseButton( gui, 0, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Events from the GUI are handled like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while( h3dguiHasEvent( gui ) )&lt;br /&gt;
{&lt;br /&gt;
	int type = h3dguiGetEventType( gui );&lt;br /&gt;
	unsigned int actionid = h3dguiGetEventActionID( gui );&lt;br /&gt;
	if( type == H3DGUIEvent::Action &amp;amp;&amp;amp; actionid == 1 )&lt;br /&gt;
	{&lt;br /&gt;
		std::cout &amp;lt;&amp;lt; &amp;quot;Button has been pressed!&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There also is an example showing how to use a 3D GUI in the repository at Extensions/GUI/Sample.&lt;br /&gt;
&lt;br /&gt;
= Screenshot =&lt;br /&gt;
&lt;br /&gt;
http://img63.imageshack.us/img63/3766/guir.png&lt;br /&gt;
&lt;br /&gt;
= Things still missing =&lt;br /&gt;
&lt;br /&gt;
Feel free to participate here:&lt;br /&gt;
&lt;br /&gt;
* Windows, dialogs, modal events&lt;br /&gt;
* List boxes&lt;br /&gt;
* Radio buttons&lt;br /&gt;
* Copy/Paste&lt;br /&gt;
* Image elements&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; |{{Extension_Summary&lt;br /&gt;
|name = GUI Extension&lt;br /&gt;
|screenshot = H3DGUI.jpg &lt;br /&gt;
|description = The GUI extension adds a tightly integrated GUI system to Horde3D.&lt;br /&gt;
|horde3dversion = svn head&lt;br /&gt;
|released = 2010-01-25&lt;br /&gt;
|author = Mathias Gottschlag|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=645</id>
		<title>Template:Extension Summary</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=645"/>
				<updated>2010-01-25T18:30:55Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=&amp;quot;right&amp;quot; style=&amp;quot;background-color: #FFE8CF; border: 2px solid #EC8A1C; margin: 2px; padding: 5px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=100px|&lt;br /&gt;
|width=100px|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |'''{{{name}}}'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; widthpx=&amp;quot;200&amp;quot; heightpx=&amp;quot;150&amp;quot; |[[Image:{{{screenshot}}}]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |''{{{description}}}''&lt;br /&gt;
|-&lt;br /&gt;
|'''Version: '''||{{{version}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Compatible with Horde3D:'''||{{{horde3dversion}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Release date:'''||{{{released}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Author(s):'''||{{{author}}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=644</id>
		<title>GUI Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=644"/>
				<updated>2010-01-25T18:24:19Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=The GUI extensions adds a GUi system to Horde3D which can be used to display both 3D GUIs and 2D menus. This is done by defining a common GUI scene node which renders 2D geometry at the local xy plane of the scene node. All GUI elements are skinnable. The GUI uses wchar_t for all strings.&lt;br /&gt;
&lt;br /&gt;
The extension was presented in the forum here: http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=1065&lt;br /&gt;
&lt;br /&gt;
= Getting the extension =&lt;br /&gt;
The extension is in my mercurial fork of the official horde3d repository at http://bitbucket.org/mgottschlag/horde3dext/. Click on &amp;quot;get source&amp;quot; in the upper right corner to download a snapshot of the sources.&lt;br /&gt;
&lt;br /&gt;
The repository contains always-up-to-date CMake files, but the MSVC files might be outdated. If you cannot compile Horde3D, ask in the forum thread mentioned above.&lt;br /&gt;
&lt;br /&gt;
= Font rendering options =&lt;br /&gt;
If compiling with CMake, you can select FreeType font rendering via cmake options as an alternative to the internal font renderer. This provides better looking text, but comes with the disadvantage that you need FreeType development files and the CMake freetype module installed. Only has been tested on Linux so far.&lt;br /&gt;
&lt;br /&gt;
= Implemented widgets =&lt;br /&gt;
&lt;br /&gt;
* Buttons&lt;br /&gt;
* Edit boxes&lt;br /&gt;
* Check boxes&lt;br /&gt;
* Group boxes&lt;br /&gt;
&lt;br /&gt;
= Position system =&lt;br /&gt;
&lt;br /&gt;
For pixel-perfect layouts at all (and even at varying) screen sizes, a combination of relative and absolute addressing is used. A position (or size) is built from 4 values, 2 absolute ones in pixels, and to values relative to the screen size. For example the position (0.5, 10, 0.25, -20) with a screensize of 1280 * 1024 pixels would result in the absolute position with x = 0.5 * 1280 + 10 = 650 and y = 0.25 * 1024 - 20 = 236.&lt;br /&gt;
&lt;br /&gt;
= Rendering =&lt;br /&gt;
The GUI resource only provides position and UV coordinate information for the vertices, the normals are assumed to be along the local z axis.&lt;br /&gt;
&lt;br /&gt;
The GUI scene node only can render quads, and the quads are put together in batches. The batches are cached and only updated when necessary (though this can still be optimized, much more is updated than what would be necessary atm).&lt;br /&gt;
&lt;br /&gt;
The font glyphs are rendered in software once when they are used for the first time and then saved to a texture specified in the font resource (for an example resource see the GUI example in the repository).&lt;br /&gt;
&lt;br /&gt;
= Usage example =&lt;br /&gt;
&lt;br /&gt;
The following code creates a GUI with one button and one edit box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H3DRes fontMatRes = h3dAddResource( H3DResTypes::Material, &amp;quot;overlays/font.material.xml&amp;quot;, 0 );&lt;br /&gt;
// GUI skin&lt;br /&gt;
H3DRes skinRes = h3dAddResource( H3DGUI_ResType_Skin, &amp;quot;skins/gui.skin.xml&amp;quot;, 0 );&lt;br /&gt;
// Load resources&lt;br /&gt;
h3dutLoadResourcesFromDisk( _contentDir.c_str() );&lt;br /&gt;
// Add gui&lt;br /&gt;
H3DNode gui = h3dguiAddGUI( screen, &amp;quot;GUI&amp;quot;, skinRes );&lt;br /&gt;
h3dSetNodeTransform( gui, 0, 0, 0, 0, 0, 0, 0.8f, 0.6f, 1 );&lt;br /&gt;
// Set virtual screen size&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::WidthI, 320 );&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::HeightI, 240 );&lt;br /&gt;
H3DGUIElement root = h3dguiGetRoot(_gui);&lt;br /&gt;
h3dguiSetElementParamI( _gui, root, H3DElementParam::ShowBackgroundI, 1 );&lt;br /&gt;
// Add a frame around the elements&lt;br /&gt;
H3DGUIElement frame = h3dguiAddFrame(_gui, root);&lt;br /&gt;
h3dguiSetElementParamStr( _gui, frame, FrameParam::LabelStr, L&amp;quot;Example GUI&amp;quot; );&lt;br /&gt;
// Add an editbox&lt;br /&gt;
H3DGUIElement editbox = h3dguiAddEditBox(_gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, editbox, 0.1f, 0, 0.1f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, editbox, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, editbox, EditBoxParam::TextStr, L&amp;quot;EditBox&amp;quot; );&lt;br /&gt;
// Add a button&lt;br /&gt;
H3DGUIElement button = h3dguiAddButton(gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, button, 0.f, 0, 0.5f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, button, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, button, ButtonParam::LabelStr, L&amp;quot;Button&amp;quot; );&lt;br /&gt;
// Set an action ID for the button&lt;br /&gt;
h3dguiSetElementParamI( gui, button, H3DElementParam::ActionIdI, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mouse and keyboard input are injected like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Insert printable char&lt;br /&gt;
h3dguiInsertChar( gui, 'A' );&lt;br /&gt;
// Insert special key (1 = pressed)&lt;br /&gt;
h3dguiInsertKey( gui, H3DGUIKey::Return, 1 );&lt;br /&gt;
// Insert new mouse position&lt;br /&gt;
h3dguiSetMousePosition( gui, 100, 100 );&lt;br /&gt;
// Insert left mouse button event (0 = left mouse button, 1 = pressed)&lt;br /&gt;
h3dguiSetMouseButton( gui, 0, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Events from the GUI are handled like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while( h3dguiHasEvent( gui ) )&lt;br /&gt;
{&lt;br /&gt;
	int type = h3dguiGetEventType( gui );&lt;br /&gt;
	unsigned int actionid = h3dguiGetEventActionID( gui );&lt;br /&gt;
	if( type == H3DGUIEvent::Action &amp;amp;&amp;amp; actionid == 1 )&lt;br /&gt;
	{&lt;br /&gt;
		std::cout &amp;lt;&amp;lt; &amp;quot;Button has been pressed!&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There also is an example showing how to use a 3D GUI in the repository at Extensions/GUI/Sample.&lt;br /&gt;
&lt;br /&gt;
= Screenshot =&lt;br /&gt;
&lt;br /&gt;
http://img63.imageshack.us/img63/3766/guir.png&lt;br /&gt;
&lt;br /&gt;
= Things still missing =&lt;br /&gt;
&lt;br /&gt;
Feel free to participate here:&lt;br /&gt;
&lt;br /&gt;
* Windows, dialogs, modal events&lt;br /&gt;
* List boxes&lt;br /&gt;
* Radio buttons&lt;br /&gt;
* Copy/Paste&lt;br /&gt;
* Image elements&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{Extension_Summary|&lt;br /&gt;
name = GUI Extension|&lt;br /&gt;
screenshot = H3DGUI.jpg|&lt;br /&gt;
description = The GUI extension adds a tightly integrated GUI system to Horde3D.|&lt;br /&gt;
released = 2010-01-25|&lt;br /&gt;
horde3dversion = svn head|&lt;br /&gt;
author = Mathias Gottschlag|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=643</id>
		<title>GUI Extension</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=GUI_Extension&amp;diff=643"/>
				<updated>2010-01-25T18:23:58Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category: Extensions]]&lt;br /&gt;
{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=800|color=white |content=The GUI extensions adds a GUi system to Horde3D which can be used to display both 3D GUIs and 2D menus. This is done by defining a common GUI scene node which renders 2D geometry at the local xy plane of the scene node. All GUI elements are skinnable. The GUI uses wchar_t for all strings.&lt;br /&gt;
&lt;br /&gt;
The extension was presented in the forum here: http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=1065&lt;br /&gt;
&lt;br /&gt;
= Getting the extension =&lt;br /&gt;
The extension is in my mercurial fork of the official horde3d repository at http://bitbucket.org/mgottschlag/horde3dext/. Click on &amp;quot;get source&amp;quot; in the upper right corner to download a snapshot of the sources.&lt;br /&gt;
&lt;br /&gt;
The repository contains always-up-to-date CMake files, but the MSVC files might be outdated. If you cannot compile Horde3D, ask in the forum thread mentioned above.&lt;br /&gt;
&lt;br /&gt;
= Font rendering options =&lt;br /&gt;
If compiling with CMake, you can select FreeType font rendering via cmake options as an alternative to the internal font renderer. This provides better looking text, but comes with the disadvantage that you need FreeType development files and the CMake freetype module installed. Only has been tested on Linux so far.&lt;br /&gt;
&lt;br /&gt;
= Implemented widgets =&lt;br /&gt;
&lt;br /&gt;
* Buttons&lt;br /&gt;
* Edit boxes&lt;br /&gt;
* Check boxes&lt;br /&gt;
* Group boxes&lt;br /&gt;
&lt;br /&gt;
= Position system =&lt;br /&gt;
&lt;br /&gt;
For pixel-perfect layouts at all (and even at varying) screen sizes, a combination of relative and absolute addressing is used. A position (or size) is built from 4 values, 2 absolute ones in pixels, and to values relative to the screen size. For example the position (0.5, 10, 0.25, -20) with a screensize of 1280 * 1024 pixels would result in the absolute position with x = 0.5 * 1280 + 10 = 650 and y = 0.25 * 1024 - 20 = 236.&lt;br /&gt;
&lt;br /&gt;
= Rendering =&lt;br /&gt;
The GUI resource only provides position and UV coordinate information for the vertices, the normals are assumed to be along the local z axis.&lt;br /&gt;
&lt;br /&gt;
The GUI scene node only can render quads, and the quads are put together in batches. The batches are cached and only updated when necessary (though this can still be optimized, much more is updated than what would be necessary atm).&lt;br /&gt;
&lt;br /&gt;
The font glyphs are rendered in software once when they are used for the first time and then saved to a texture specified in the font resource (for an example resource see the GUI example in the repository).&lt;br /&gt;
&lt;br /&gt;
= Usage example =&lt;br /&gt;
&lt;br /&gt;
The following code creates a GUI with one button and one edit box:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
H3DRes fontMatRes = h3dAddResource( H3DResTypes::Material, &amp;quot;overlays/font.material.xml&amp;quot;, 0 );&lt;br /&gt;
// GUI skin&lt;br /&gt;
H3DRes skinRes = h3dAddResource( H3DGUI_ResType_Skin, &amp;quot;skins/gui.skin.xml&amp;quot;, 0 );&lt;br /&gt;
// Load resources&lt;br /&gt;
h3dutLoadResourcesFromDisk( _contentDir.c_str() );&lt;br /&gt;
// Add gui&lt;br /&gt;
H3DNode gui = h3dguiAddGUI( screen, &amp;quot;GUI&amp;quot;, skinRes );&lt;br /&gt;
h3dSetNodeTransform( gui, 0, 0, 0, 0, 0, 0, 0.8f, 0.6f, 1 );&lt;br /&gt;
// Set virtual screen size&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::WidthI, 320 );&lt;br /&gt;
h3dSetNodeParamI( gui, H3DGUINode::HeightI, 240 );&lt;br /&gt;
H3DGUIElement root = h3dguiGetRoot(_gui);&lt;br /&gt;
h3dguiSetElementParamI( _gui, root, H3DElementParam::ShowBackgroundI, 1 );&lt;br /&gt;
// Add a frame around the elements&lt;br /&gt;
H3DGUIElement frame = h3dguiAddFrame(_gui, root);&lt;br /&gt;
h3dguiSetElementParamStr( _gui, frame, FrameParam::LabelStr, L&amp;quot;Example GUI&amp;quot; );&lt;br /&gt;
// Add an editbox&lt;br /&gt;
H3DGUIElement editbox = h3dguiAddEditBox(_gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, editbox, 0.1f, 0, 0.1f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, editbox, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, editbox, EditBoxParam::TextStr, L&amp;quot;EditBox&amp;quot; );&lt;br /&gt;
// Add a button&lt;br /&gt;
H3DGUIElement button = h3dguiAddButton(gui, frame);&lt;br /&gt;
h3dguiSetPosition( gui, button, 0.f, 0, 0.5f, 0 );&lt;br /&gt;
h3dguiSetSize( gui, button, 0.8f, 0, 0.3f, 0 );&lt;br /&gt;
h3dguiSetElementParamStr( gui, button, ButtonParam::LabelStr, L&amp;quot;Button&amp;quot; );&lt;br /&gt;
// Set an action ID for the button&lt;br /&gt;
h3dguiSetElementParamI( gui, button, H3DElementParam::ActionIdI, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mouse and keyboard input are injected like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Insert printable char&lt;br /&gt;
h3dguiInsertChar( gui, 'A' );&lt;br /&gt;
// Insert special key (1 = pressed)&lt;br /&gt;
h3dguiInsertKey( gui, H3DGUIKey::Return, 1 );&lt;br /&gt;
// Insert new mouse position&lt;br /&gt;
h3dguiSetMousePosition( gui, 100, 100 );&lt;br /&gt;
// Insert left mouse button event (0 = left mouse button, 1 = pressed)&lt;br /&gt;
h3dguiSetMouseButton( gui, 0, 1 );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Events from the GUI are handled like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
while( h3dguiHasEvent( gui ) )&lt;br /&gt;
{&lt;br /&gt;
	int type = h3dguiGetEventType( gui );&lt;br /&gt;
	unsigned int actionid = h3dguiGetEventActionID( gui );&lt;br /&gt;
	if( type == H3DGUIEvent::Action &amp;amp;&amp;amp; actionid == 1 )&lt;br /&gt;
	{&lt;br /&gt;
		std::cout &amp;lt;&amp;lt; &amp;quot;Button has been pressed!&amp;quot; &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There also is an example showing how to use a 3D GUI in the repository at Extensions/GUI/Sample.&lt;br /&gt;
&lt;br /&gt;
= Screenshot =&lt;br /&gt;
&lt;br /&gt;
http://img63.imageshack.us/img63/3766/guir.png&lt;br /&gt;
&lt;br /&gt;
= Things still missing =&lt;br /&gt;
&lt;br /&gt;
Feel free to participate here:&lt;br /&gt;
&lt;br /&gt;
* Windows, dialogs, modal events&lt;br /&gt;
* List boxes&lt;br /&gt;
* Radio buttons&lt;br /&gt;
* Copy/Paste&lt;br /&gt;
* Image elements&lt;br /&gt;
&lt;br /&gt;
}} &amp;lt;!-- Right panel --&amp;gt;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |{{Extension_Summary|&lt;br /&gt;
name = GUI Extension|&lt;br /&gt;
screenshot = H3DGUI.jpg|&lt;br /&gt;
description = The GUI extension adds a tightly integrated GUI system to Horde3D.|&lt;br /&gt;
released = 2010-01-25&lt;br /&gt;
horde3dversion = svn head|&lt;br /&gt;
author = Mathias Gottschlag|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=642</id>
		<title>Template:Extension Summary</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Template:Extension_Summary&amp;diff=642"/>
				<updated>2010-01-25T18:22:43Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|align=&amp;quot;right&amp;quot; style=&amp;quot;background-color: #FFE8CF; border: 2px solid #EC8A1C; margin: 2px; padding: 5px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|width=100px|&lt;br /&gt;
|width=100px|&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |'''{{{name}}}'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; width=&amp;quot;120&amp;quot;|[[Image:{{{screenshot}}}]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; |''{{{description}}}''&lt;br /&gt;
|-&lt;br /&gt;
|'''Version: '''||{{{version}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Compatible with Horde3D:'''||{{{horde3dversion}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Release date:'''||{{{released}}}&lt;br /&gt;
|-&lt;br /&gt;
|'''Author(s):'''||{{{author}}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=File:H3DGUI.jpg&amp;diff=641</id>
		<title>File:H3DGUI.jpg</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=File:H3DGUI.jpg&amp;diff=641"/>
				<updated>2010-01-25T18:15:02Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_portal&amp;diff=631</id>
		<title>Horde3D Wiki:Community portal</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Wiki:Community_portal&amp;diff=631"/>
				<updated>2010-01-04T11:27:51Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOEDITSECTION__ __NOTOC__{{ContentBlock|color=orange&lt;br /&gt;
|content= '''The community portal section of the Horde3D wiki contains community contributed articles that are not part of the official documentation. Feel free to add articles to our wiki or links to external tutorials.'''}}&lt;br /&gt;
{{SpacerBlock}}&lt;br /&gt;
{{ContentBlock|&lt;br /&gt;
|header=Information, instructions and tips on using Horde3D&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
==Programming Guide==&lt;br /&gt;
=== Build Instructions ===&lt;br /&gt;
#[[Building Horde3D]] - Instructions for obtaining the code and building Horde on all supported platforms&lt;br /&gt;
&lt;br /&gt;
[[Category: Tutorials]]&lt;br /&gt;
&lt;br /&gt;
===Beginner Tutorials===&lt;br /&gt;
#[[Tutorial - Hello World]] - In this section we will create a simple application that loads a character and animates it using a walk cycle.&lt;br /&gt;
#[[Tutorial - Picking]] - In this section we will demonstrate picking the node under the mouse cursor&lt;br /&gt;
#[[Tutorial - Simple HUD]] - How to use showOverlay to create a simple HUD.&lt;br /&gt;
#[[Tutorial - Setup Horde with SDL]]   - How to Setup Horde with SDL.&lt;br /&gt;
#[[Tutorial - Setup Horde with Qt4]]   - How to Setup Horde with Qt4.&lt;br /&gt;
#[[Tutorial - Setup Horde with Gtkmm]] - How to Setup Horde with Gtkmm&lt;br /&gt;
#[[Tutorial - Stereo rendering]] - Basic outline for quad-buffered stereo rendering&lt;br /&gt;
&lt;br /&gt;
===Advanced Tutorials===&lt;br /&gt;
#[[Basic Pipeline Tutorial]] - Create your first custom pipeline.&lt;br /&gt;
#[[Procedurally generated geometry tutorial]] - How to create Horde3D compatible procedural geometry (Horde3D 1.0.0 '''Beta 3''' only!).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Shader Development==&lt;br /&gt;
[[Category: Techniques]]&lt;br /&gt;
&lt;br /&gt;
===Render System Basics===&lt;br /&gt;
#[[The Flexible Rendering Pipeline]] - Introduction to Horde's data-driven rendering pipelines&lt;br /&gt;
&lt;br /&gt;
===Rendering Quality===&lt;br /&gt;
#[[Gamma Correction]] - Overview of gamma correction and how to apply it with Horde&lt;br /&gt;
&lt;br /&gt;
===Shading===&lt;br /&gt;
#[[Shading Technique - Dot Product Detail Texturing]] - Using the dot product of vectors and signed textures for high frequency detail&lt;br /&gt;
#[[Shading Technique - Palette Coloring]] - Quick and dirty palette recoloration of objects&lt;br /&gt;
#[[Shading Technique - Gloss Mapping]] - Mask which areas of an object have specular highlights&lt;br /&gt;
#[[Shading Technique - Glow Mapping]] - Allow areas on an object to emit a strong glowing highlight&lt;br /&gt;
#[[Shading Technique - Fresnel]] - Using reflection and refraction&lt;br /&gt;
#[[Shading Technique - Linear Depth Buffer]] - Create a custom linear depth buffer using vertex&lt;br /&gt;
#[[Shading Technique - Terrain Shading]] - Height and slope based shading with triplanar texturing&lt;br /&gt;
&lt;br /&gt;
===Preprocessing===&lt;br /&gt;
#[[Preprocessing Technique - Distance Field Vector Textures]] - Using Adobe Photoshop to generate textures suitable for efficient vector art rendering&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Asset Creation==&lt;br /&gt;
&lt;br /&gt;
[[Category: Content Import]]&lt;br /&gt;
#[[DCC Tool Support]] - List of supported Digital Content Creation Tools&lt;br /&gt;
#[[AssetTroubleshooting|Troubleshooting]] - ''&amp;quot;Help, my model is not showing up!&amp;quot;''&lt;br /&gt;
#[[Tips and Techniques]] - Asset creation suggestions &amp;amp; ideas for Horde3d, exporting and program quirks..&lt;br /&gt;
#[[Extending ColladaConv]] - Add support for exporting cameras&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=592</id>
		<title>Community Branch</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Community_Branch&amp;diff=592"/>
				<updated>2009-11-26T05:14:06Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: /* Community SVN Branch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Community SVN Branch ==&lt;br /&gt;
&lt;br /&gt;
For a better integration of the community work we started a community SVN server branch. &lt;br /&gt;
&lt;br /&gt;
The new [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D repository] is provided by the  [http://mm-werkstatt.informatik.uni-augsburg.de University of Augsburg]&lt;br /&gt;
&lt;br /&gt;
To get informed about recent changes you can use the [http://cia.vc/stats/project/Horde3D CIA service].&lt;br /&gt;
&lt;br /&gt;
If you want to become part of the community and want to have write access, you can ask [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker] to create an account for you.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Of course there are some restrictions:'''&lt;br /&gt;
&lt;br /&gt;
You are not allowed to upload copyright protected files. You should commit only tested things and should not upload code that does not compile on your own development platform. If you are not sure if things you've developed are running on other platforms please post some details about your submission in the [http://horde3d.org/forums/viewforum.php?f=8 development section] on the [http://horde3d.org/forums/ forums], so other people get informed and can test it on their platforms.&lt;br /&gt;
&lt;br /&gt;
We can only accept code that is distributed under the LGPL or EPL license and assume that your submission is under that license.&lt;br /&gt;
&lt;br /&gt;
=== What's in ===&lt;br /&gt;
&lt;br /&gt;
Currently the community trunk branch contains nearly the same Horde3D version as the SF trunk branch. We will always try to keep the branches in sync, but since more people have write access to the community branch it may differ sometimes in some features that are not yet overtaken into the other branch.&lt;br /&gt;
Next to Horde3D itself, the community branch contains more language bindings, tools and non graphics related extensions. Currently there are a [[Sound Extension | Sound Extension]], a [http://mm-werkstatt.informatik.uni-augsburg.de/projects/GameEngine/ GameEngine Based on Components] and the [[Horde3D Scene Editor | Horde3D Scene Editor]].&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=576</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=576"/>
				<updated>2009-11-25T08:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2.&lt;br /&gt;
&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta4&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
For the installation under a Linux environment you have to install at least&lt;br /&gt;
Qt 4.3.3 to be able to compile the editor. After downloading and extracting&lt;br /&gt;
the compressed archive you have to run [http://doc.trolltech.com/4.4/qmake-manual.html qmake], which will create the make&lt;br /&gt;
files for your compiler. By typing '''make''' afterwards the editor will be created&lt;br /&gt;
in the ''bin'' subfolder of the directory where you placed the extracted files.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
Although it may be possible to compile the linux package under Mac OS X,&lt;br /&gt;
I can't provide support until someone buys me a macintosh. You can ﬁnd&lt;br /&gt;
some further information in the [http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=304 Horde3D forums].&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[Editor_Tutorials#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Editor Tutorials&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	<entry>
		<id>http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=575</id>
		<title>Horde3D Scene Editor</title>
		<link rel="alternate" type="text/html" href="http://horde3d.org/wiki/index.php?title=Horde3D_Scene_Editor&amp;diff=575"/>
				<updated>2009-11-25T08:21:15Z</updated>
		
		<summary type="html">&lt;p&gt;Volker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;0&amp;quot; &lt;br /&gt;
| {{ContentBlock|width=1024|color=white&lt;br /&gt;
|content={{!!}}&lt;br /&gt;
&lt;br /&gt;
=== Editor Features ===&lt;br /&gt;
The Horde3D Scene Editor offers an easy to use interface for the Horde3D graphics engine&lt;br /&gt;
&lt;br /&gt;
Some of the key features are:&lt;br /&gt;
&lt;br /&gt;
* Interface for creating and modifying Horde3D scene graph files&lt;br /&gt;
* Instant resource reloading for files modified outside the editor making it possible to use the editor for shader development&lt;br /&gt;
* LUA scripting support for rapid prototyping of small applications directly in the editor&lt;br /&gt;
* Powerful plugin architecture for integration of game engine functionality and executing game code, physics, etc. directly in the editor&lt;br /&gt;
* Cross-platform compatibility&lt;br /&gt;
* Open-source code released under the GPL &lt;br /&gt;
&lt;br /&gt;
The current official version is version 0.8.0 compatible with Horde3D v.1.0.0 Beta2&lt;br /&gt;
A more recent version can be found in the [http://mm-werkstatt.informatik.uni-augsburg.de/public/Horde3D/trunk/Tools/Horde3DEditor/ Community Branch] that is compatible with Horde3D v.1.0.0 Beta4&lt;br /&gt;
&lt;br /&gt;
=== Preliminary Documentation ===&lt;br /&gt;
A preliminary [http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/231_HordeEditor.pdf PDF documentation] can be found on the project [http://mm-werkstatt.informatik.uni-augsburg.de/Horde3DEditor website]. In the future it will be transferred to the wiki to allow the community to improve the documentation as well.&lt;br /&gt;
&lt;br /&gt;
=== Tutorial Video === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;VideoFlv width=&amp;quot;1024&amp;quot; height=&amp;quot;768&amp;quot;&amp;gt;http://mm-werkstatt.informatik.uni-augsburg.de/files/project_content/45/Horde3D_Editor.flv&amp;lt;/VideoFlv&amp;gt;&lt;br /&gt;
You can also [http://mm-werkstatt.informatik.uni-augsburg.de/downloads/Horde3D_Editor.avi download this video] in an [http://www.xvid.org  Xvid] coded version! &lt;br /&gt;
&lt;br /&gt;
== Overview of the Horde3D Scene Editor ==&lt;br /&gt;
&lt;br /&gt;
The Horde3D graphics engine is a SDK for rendering three dimensional data. The interface to the graphics data is deﬁned by a Horde3D speciﬁc ﬁle format. Normally you will create a 3D model in your favourite modelling tool like 3Ds Max or Blender and export the data to a Collada ﬁle. This ﬁle can then be converted by the Horde3D Collada converter to the internal Horde3D format.&lt;br /&gt;
&lt;br /&gt;
But what if you want to compose a scene where several single models should&lt;br /&gt;
be integrated. The ﬁrst possibility is to use your modelling tool, compose&lt;br /&gt;
everything in it and export the whole scenery to create one big Horde3D ﬁle.&lt;br /&gt;
But doing it this way suffers still from the lack of possibility to illuminate&lt;br /&gt;
your scene with Horde3D lights and visualize it with your custom shaders.&lt;br /&gt;
That’s why the second possibility was created: the Horde3D Scene Editor!&lt;br /&gt;
It will create scene graph files readable by Horde3D, let you integrate your&lt;br /&gt;
custom attachment nodes by using plugins, offers fast prototyping by pro-&lt;br /&gt;
viding a Lua interface to all Horde3D functions and also let you instantly&lt;br /&gt;
preview changes to shader code, materials, eﬀects, textures and pipelines by reloading&lt;br /&gt;
the changed files immediately and automatically after saving them.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
For the Horde3D Scene Editor a graphical installer is provided for the Microsoft Windows platform. You can download the latest release from the &lt;br /&gt;
[http://mm-werkstatt.informatik.uni-augsburg.de/project_details.php?id=45 project website]. Release candidates for upcoming versions might be released in the [http://horde3d.org/forums/viewforum.php?f=6 Tools section] of the forums. Currently the Editor supports two different platforms: Windows and Linux! It may be used on the Macintosh platform as well, but since I (volker) don’t have access to a Mac I haven’t tested this yet.&lt;br /&gt;
&lt;br /&gt;
=== Windows ===&lt;br /&gt;
After downloading and extracting the compressed archive you simply have&lt;br /&gt;
to run the Setup.exe. It will guide you through the rest of the installation&lt;br /&gt;
procedure. After installation has been done, a Horde3D Scene Editor link&lt;br /&gt;
has been created in your start menu and the ﬁle extension .scn has been associated with the editor. The installation directory will contain an executable as well as the source code and a Visual Studio 2005 solution.&lt;br /&gt;
&lt;br /&gt;
==== Compiling the Editor ====&lt;br /&gt;
&lt;br /&gt;
If you want to compile the Editor yourself with Visual Studio 2005, open the solution ''Horde3DEditor_2005.sln'' in ''trunk/Tools/Horde3DEditor''. To build the solution you need to have Qt installed. Since installing the open source version of Qt is not entirely straightforward, here is a quick installation guide for Visual Studio 2005:&lt;br /&gt;
&lt;br /&gt;
# Download the Qt source archive from ftp://ftp.qt.nokia.com/qt/source/qt-all-opensource-src-4.5.2.zip&lt;br /&gt;
# Extract it to a directory '''without any spaces''' (not something like ''C:\Program Files\Qt4'' but rather ''C:\Qt4'')&lt;br /&gt;
# Configure Qt to use wchar_t as built-in type&lt;br /&gt;
## Open ''mkspecs/win32-msvc2005/qmake.conf'' in the Qt directory&lt;br /&gt;
## Find the line ''QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-'' (around line 19) and remove the last character (the minus)&lt;br /&gt;
# Launch the Visual Studio Command Prompt (can be found in the VS start menu entry under Tools)&lt;br /&gt;
# Change to the Qt source directory&lt;br /&gt;
# Enter ''configure -platform win32-msvc2005 -no-qt3support''&lt;br /&gt;
## ''-no-qt3support'' is not required and is just used to speed up the build process&lt;br /&gt;
## Follow the instructions on the screen and wait until the configuration process is finished&lt;br /&gt;
# Enter ''nmake'' and wait until the build process has finished (can take several hours)&lt;br /&gt;
# Configure environment variables in the Windows Control Panel&lt;br /&gt;
## Add QTDIR which points to your Qt path&lt;br /&gt;
## Add the ''bin'' directory of the Qt path to the PATH variable&lt;br /&gt;
&lt;br /&gt;
If you need more detailed instructions on how to install Qt, please find one of the many tutorials that are available on the net.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
For the installation under a Linux environment you have to install at least&lt;br /&gt;
Qt 4.3.3 to be able to compile the editor. After downloading and extracting&lt;br /&gt;
the compressed archive you have to run [http://doc.trolltech.com/4.4/qmake-manual.html qmake], which will create the make&lt;br /&gt;
files for your compiler. By typing '''make''' afterwards the editor will be created&lt;br /&gt;
in the ''bin'' subfolder of the directory where you placed the extracted files.&lt;br /&gt;
&lt;br /&gt;
=== Mac ===&lt;br /&gt;
Although it may be possible to compile the linux package under Mac OS X,&lt;br /&gt;
I can't provide support until someone buys me a macintosh. You can ﬁnd&lt;br /&gt;
some further information in the [http://www.horde3d.org/forums/viewtopic.php?f=6&amp;amp;t=304 Horde3D forums].&lt;br /&gt;
&lt;br /&gt;
== The first start ==&lt;br /&gt;
After you called the executable, the application starts and will present you&lt;br /&gt;
the Horde3D Scene Editor with an empty window. During the installation two test scenes have been installed to the bin\TestScene &lt;br /&gt;
and bin\Particle folder of the Horde3D Scene Editor installation directory. They contain a&lt;br /&gt;
small scenery to provide you with out-of-the-box examples.&lt;br /&gt;
&lt;br /&gt;
=== Open a scene ===&lt;br /&gt;
To open it click the ﬁle menu and select Open Scene or press CTRL + O as&lt;br /&gt;
a shortcut.&lt;br /&gt;
For the ﬁrst test, browse to the TestScene folder and choose the TestScene.scn&lt;br /&gt;
ﬁle. After you conﬁrmed your selection with the open button the editor will&lt;br /&gt;
load the scene and present it to you.&lt;br /&gt;
&lt;br /&gt;
=== Navigation ===&lt;br /&gt;
There are two possibilities to navigate through the scene. The ﬁrst one is&lt;br /&gt;
similar to most of the today’s ﬁrst person shooters. With the key combination&lt;br /&gt;
W, A, S, D and by clicking with the left mouse button in the viewport widget&lt;br /&gt;
you can move the camera through the scene (note that you have to hold the&lt;br /&gt;
mouse button pressed to rotate the camera). If you would like to use another&lt;br /&gt;
mouse button you can reconﬁgure this in the Settings dialog accessible via&lt;br /&gt;
the File menu.&lt;br /&gt;
&lt;br /&gt;
The second possibility is to use the mouse wheel to navigate forward and&lt;br /&gt;
backward and straﬁng left, right, up, down by holding the CTRL key and&lt;br /&gt;
left mouse button pressed and moving the mouse in the direction to strafe.&lt;br /&gt;
You can change the amount of movement between two frames by changing&lt;br /&gt;
the Navigation Speed entry within the tool bar. Additionally if you keep the&lt;br /&gt;
Shift button pressed the navigation speed will be increased as long as you&lt;br /&gt;
hold it.&lt;br /&gt;
&lt;br /&gt;
A third possibility was introduced with version 0.7.0 if you hold both the&lt;br /&gt;
mouse navigation button (normally the left one) and the select button (by&lt;br /&gt;
default the right one) pressed, you can also strafe along the X- and Y-axis of&lt;br /&gt;
the camera.&lt;br /&gt;
&lt;br /&gt;
The transformation changes to the camera are done only within Horde3D&lt;br /&gt;
and not saved to the XML ﬁle. To change the transformation of a camera&lt;br /&gt;
permanently you have to select it ﬁrst in the scene tree and after you moved &lt;br /&gt;
to the place you want, you have to press the Move Node To Camera Position&lt;br /&gt;
button or activate the corresponding menu entry in the Edit menu (Shortcut:&lt;br /&gt;
CTRL+ALT+C). Now if you press the save button, the transformation of&lt;br /&gt;
the camera will be stored in your scene graph ﬁle.&lt;br /&gt;
&lt;br /&gt;
To get a better impression of the scene you can switch the view to fullscreen&lt;br /&gt;
mode by clicking on the fullscreen button in the toolbar or activate the corresponding &lt;br /&gt;
entry in the View menu. To leave the fullscreen mode you have to press the Escape &lt;br /&gt;
key on your keyboard.&lt;br /&gt;
&lt;br /&gt;
Finally the Wireframe (Debug) Mode button toggles between a debug rendering&lt;br /&gt;
mode and the normal rendering. It is especially useful if you have problems&lt;br /&gt;
with the light and are not sure if a geometry was inserted correctly or not.&lt;br /&gt;
&lt;br /&gt;
For the alignment of objects a parallel projection mode for the cameras has&lt;br /&gt;
been integrated. You can access it using the tool buttons in the camera&lt;br /&gt;
navigation bar. But be aware that the parallel projection might cause&lt;br /&gt;
confusion since the distance of the camera to the objects is only observable&lt;br /&gt;
via the near clipping plane. So if you move the camera position using the W&lt;br /&gt;
or S key, you might get rid of you models because they are clipped by the&lt;br /&gt;
viewing frustum. To zoom when using the parallel projection use the mouse&lt;br /&gt;
wheel.&lt;br /&gt;
&lt;br /&gt;
=== Customizing the editor ===&lt;br /&gt;
For a better workﬂow you can adjust the dock widgets of the editor to your&lt;br /&gt;
personal preferences. To do this just click and drag the titlebar of the dock&lt;br /&gt;
widgets and place them where you want them to be. By default the most&lt;br /&gt;
important dock widgets are visible to you. If you want reduce the required&lt;br /&gt;
screen space there is an option in the Windows menu to toggle the dock&lt;br /&gt;
widget visibility depending on the selected scene graph node. By doing this&lt;br /&gt;
the attachment widget or material widget are hidden if no editor plugin is&lt;br /&gt;
loaded or no node with a material attribute has been selected.&lt;br /&gt;
You can also alter the way mouse buttons are used for camera navigation and&lt;br /&gt;
object selection in the settings dialogue you can access via the Settings entry&lt;br /&gt;
in the ﬁle menu.&lt;br /&gt;
&lt;br /&gt;
=== Manipulating objects ===&lt;br /&gt;
After loading the scene ﬁle, the elements of the scene are listed in the Scene&lt;br /&gt;
Tree. By selecting one of them, the corresponding transformation - stored&lt;br /&gt;
within the XML ﬁle - is shown in the Basic section of the Node Properties&lt;br /&gt;
widget. If you change it, an entry in the Undo section of the Edit menu is&lt;br /&gt;
created, allowing you to undo the change. Depending on the type of node&lt;br /&gt;
you selected, the Node Properties widget shows you additional conﬁguration&lt;br /&gt;
settings. For example if you select a light node you can change the light’s&lt;br /&gt;
color, ﬁeld of view or many other settings. Nodes referencing a material ﬁle&lt;br /&gt;
cause the Material Settings widget to display the content. But take node,&lt;br /&gt;
that the changes you made to the materials can not be undone by using the&lt;br /&gt;
undo/redo commands. Since the materials are separated ﬁles and not direct&lt;br /&gt;
part of the scene graph, you have to save them manually (click on the save&lt;br /&gt;
button) to apply the changes to the scene.&lt;br /&gt;
&lt;br /&gt;
=== Reference Node ===&lt;br /&gt;
A Reference node represents a separate scene graph ﬁle not directly inte-&lt;br /&gt;
grated in the currently shown scene graph tree. To view the content of this&lt;br /&gt;
ﬁle you can double click on the reference element. The scene tree now con-&lt;br /&gt;
tains the contents of this ﬁle and all changes made on the objects are handled&lt;br /&gt;
within the scene graph ﬁle of this element. If you want to switch back to the&lt;br /&gt;
parent scene graph ﬁle you can click on the Arrow at the top of the scene&lt;br /&gt;
tree or press the backspace key. Take note, that all manipulations are done&lt;br /&gt;
in the scene graph currently displayed in the tree view. That’s why you can&lt;br /&gt;
only undo actions done within the currently opened scene graph.&lt;br /&gt;
If you hold the CTRL key pressed, while double clicking on a reference node,&lt;br /&gt;
the camera will be moved to the selected node.&lt;br /&gt;
&lt;br /&gt;
=== Camera Nodes ===&lt;br /&gt;
n a scene you can deﬁne multiple cameras. To activate one of them you&lt;br /&gt;
have to double click on the scene tree item in the tree view or select it in the&lt;br /&gt;
Active Camera combobox of the navigation bar. The active camera can also&lt;br /&gt;
be used to set transformations of other nodes. If you navigate the camera to&lt;br /&gt;
a special point you can adjust the transformation of the currently selected&lt;br /&gt;
node by using the Move Node To Camera Position button or by pressing the&lt;br /&gt;
shortcut: CTRL+ALT+C&lt;br /&gt;
Orthogonal to this you can set the camera transformation to the transformation &lt;br /&gt;
of the currently selected node by using the Move Camera To Node&lt;br /&gt;
button.&lt;br /&gt;
&lt;br /&gt;
== A new scene ==&lt;br /&gt;
Before you create a new scene you may want to conﬁgure an editor repository.&lt;br /&gt;
&lt;br /&gt;
=== Before you start ===&lt;br /&gt;
This will be done in the Settings Dialogue you can ﬁnd under the&lt;br /&gt;
Settings menu entry in the File menu. There are six different repository paths&lt;br /&gt;
to conﬁgure. The ﬁrst is the path to Horde3D pipelines. These ﬁles conﬁgures&lt;br /&gt;
the way Horde3D renders the scene. The next path handles the scene-graph-&lt;br /&gt;
(Extension .scene.xml) and Horde3D geometry ﬁles (Extension .geo). The&lt;br /&gt;
third is the path to the materials directory that contains the subfolders and&lt;br /&gt;
material ﬁles (Extension .material.xml) for the materials of a converted 3d&lt;br /&gt;
model. The texture directory deﬁnes the path where the textures are stored&lt;br /&gt;
while the shaders directory points to the shader (Extension .shader.xml) and&lt;br /&gt;
code ﬁles (Extension .glsl) used by the models stored in the repository. Last&lt;br /&gt;
but not least for effect files (.eﬀect.xml) a separate eﬀect directory can be&lt;br /&gt;
conﬁgured. By default the repository is located in the ''bin\Repository'' folder&lt;br /&gt;
of the Horde3D scene editor and contains the Horde3D samples’ models.&lt;br /&gt;
Next to the repository conﬁguration you can also deﬁne a shader editor in&lt;br /&gt;
the general tab of the settings dialogue. This editor is used when clicking on&lt;br /&gt;
an edit button in the material editor. Other settings are the path to the&lt;br /&gt;
plugin directory used to search for attachment plugins and&lt;br /&gt;
the number of undo steps that will be available. Note that if you choose&lt;br /&gt;
a great number of undo steps or even the Unlimited setting, the Horde3D&lt;br /&gt;
Scene Editor could consume a lot of memory if you make many changes to&lt;br /&gt;
one scene. To prevent this you can manually clean the undo stack just by&lt;br /&gt;
reopen the current scene (every time a scene is closed the undo stack will be&lt;br /&gt;
cleared).&lt;br /&gt;
&lt;br /&gt;
=== Creating a scene ===&lt;br /&gt;
To create a new scene select the New Scene entry in the ﬁle menu or press&lt;br /&gt;
the CTRL + N shortcut. A wizard will appear letting you choose a scene ﬁle&lt;br /&gt;
name and a directory where the newly created scene will be stored. If the&lt;br /&gt;
directory does not exist you will be prompted if you want to create it.&lt;br /&gt;
After choosing the scene directory additional directories for the diﬀerent scene&lt;br /&gt;
resources have to be selected on the next page. As before directories not&lt;br /&gt;
already existing can be created by the editor automatically. Take care that&lt;br /&gt;
the resource directories should be placed below the parent scene directory&lt;br /&gt;
and such should be declared relative to this folder&lt;br /&gt;
&lt;br /&gt;
On the next page you have to conﬁgure a default camera used for rendering.&lt;br /&gt;
While you can keep the default frustum settings, you have to import a ren-&lt;br /&gt;
der pipeline from the repository conﬁgured before. By default some of the&lt;br /&gt;
Horde3D example pipelines are listed when you select Import from repository&lt;br /&gt;
in the combo box. You can then just press the OK Button or adjust the code&lt;br /&gt;
in the edit window. Only the content of this window will be used for the new&lt;br /&gt;
camera. The original ﬁle in the repository remains unchanged.&lt;br /&gt;
&lt;br /&gt;
To allow you viewing the geometry placed in your scene and to conﬁgure a&lt;br /&gt;
light source for the preview of models, you will be asked to deﬁne a default&lt;br /&gt;
light on the next page. The settings you have to make here are depending on&lt;br /&gt;
the pipeline conﬁguration you made on the previous page (see the Horde3D&lt;br /&gt;
documentation for more details). It is important that you conﬁgure this light&lt;br /&gt;
properly since the Material, Lighting Context and Shader Context parameters&lt;br /&gt;
are used for the standard light source in the preview window when adding&lt;br /&gt;
new models to your scene. If your pipeline settings requires the light to have&lt;br /&gt;
a material (e.g. when using deferred rendering), you can import one from&lt;br /&gt;
the repository (see [[Editor_Tutorials#Before_you_start | Before you start]] ). The yellow lock next&lt;br /&gt;
to the ﬁlename indicates that the material will be imported from the model&lt;br /&gt;
data repository you specified before. If you have not specified it properly, or&lt;br /&gt;
do not have a light material, you have to manually copy an appropriate light&lt;br /&gt;
material and shader file to the specific directories of your scene.&lt;br /&gt;
Finally on the last page you can select a plugin for handling Horde3D attachments. &lt;br /&gt;
If there have been plugins found by the editor, the selection box&lt;br /&gt;
let you choose one of them to be the attachment controller for this scene. At&lt;br /&gt;
the moment no public plugin is part of the editor yet.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
|  valign=&amp;quot;top&amp;quot; | {{Extension_Summary&lt;br /&gt;
|name = Editor Tutorials&lt;br /&gt;
|screenshot = H3Deditor.jpg&lt;br /&gt;
|description = Tutorial site for the editor.&lt;br /&gt;
|version = 0.8.0&lt;br /&gt;
|horde3dversion = 1.0.0 beta2&lt;br /&gt;
|released = 2008-01-20&lt;br /&gt;
|author = [http://horde3d.org/forums/memberlist.php?mode=viewprofile&amp;amp;u=122 Volker]|&lt;br /&gt;
}}&lt;br /&gt;
|}&lt;br /&gt;
[[category: Tutorials]]&lt;/div&gt;</summary>
		<author><name>Volker</name></author>	</entry>

	</feed>