OGRE
1.12.13
Object-Oriented Graphics Rendering Engine
|
Ogre uses CMake as its build system. It is recommended that you use it in your project as well.
Then all you need is to add the following lines to your project
These settings already include any third party libraries the Components depends on (e.g. SDL) - nothing more to do. Alternatively use ${OGRE_LIBRARIES}
to link against all available OGRE components.
If you installed OGRE in a non-standard path, you will have to set OGRE_DIR
to the location of OGREConfig.cmake
so find_package
can figure out the rest.
For inspecting the detected OGRE installation, the following CMake variables are available
OGRE_STATIC
- whether ogre was build as static libOGRE_${COMPONENT}_FOUND
- ${COMPONENT} is availableOGRE_PLUGIN_DIR
- The directory where the OGRE plugins are locatedOGRE_MEDIA_DIR
- The directory where the OGRE sample media is locatedOGRE_CONFIG_DIR
- The directory where the OGRE config files are locatedThe easiest way to get started is the OgreBites Component. It handles Ogre startup/ tear down (including Ogre::Overlay, RTSS), input using SDL2 and even includes a Simple GUI System.
This is useful if all you want is to get a Scene with a FPS counter up and running (rapid prototyping). If available it also uses SDL2 for input - you now just have to implement the callbacks.
To use it, simply derive from OgreBites::ApplicationContext and if you want to get input events from OgreBites::InputListener
in the constructor we set our application name. The ogre configuration files will be stored in a system dependant location specific to our app.
to handle input events, we then override the according method
the interesting part however is the setup method
finally we start everything as
Samples/Tutorials/Bootstrap.cpp
for C++Samples/Python/sample.py
for PythonSamples/AndroidJNI/MainActivity.java
for Java (Android)Samples/Csharp/example.cs
for C#OgreBites itself is also a good starting point if you need more control over the Camera or the Window creation. For instance to render into an existing Qt Window.
On Linux you will typically install OGRE into /usr/local/
which is automatically searched by the linker, so nothing more to do. On Windows however, you will have to either add the sdk/bin
folder to PATH
or copy your executable into sdk/bin
.
Ogre uses several configuration files (*.cfg). They control things like which plugins are loaded and where your application will search for resource files. We will briefly introduce you to each of these files. You'll slowly read more about them as you progress through the tutorials as well.
You can place these files the same directory as your executable or in any of the default lookup paths described here. Alternatively you can set the OGRE_CONFIG_DIR
environment variable for the configuration file location. This overrides the step "executable path" in the default lookup order.
plugins.cfg
and resources.cfg
to function properly. Later tutorials will cover more of their use.This file tells Ogre which plugins to load. You modify this file when you want to load a different set of plugins. It is often most useful to simply "comment out" lines instead of removing them, because you never know when a stroke of inspiration will mean you want to reload some unused plugins. Here is some sample content:
We have the three DirectX systems commented out, and an active line for OpenGL. On a windows system, you may have this reversed. You can see why it might be helpful not to delete unused lines, because then you have to try and remember whether it was RenderSystem_OpenGL or RenderSystem_GL.
You can also decide where Ogre looks for plugins by changing the PluginFolder
variable. You can use both absolute and relative paths. Relative paths are resolved relative to the location of plugins.cfg
. Additionally, you can use the OGRE_PLUGIN_DIR
environment variable to override the value of PluginFolder
.
For example, if you have built Ogre from source on a linux machine, then you will need a line like this at the beginning of your file:
By default, Ogre would have been looking in the same directory where the plugins.cfg
is located, which is sufficient on Windows.
Contents/Frameworks/
will be correctly resolved inside the app bundle on OSX.This file contains a list of the directories Ogre will use to search for resources. Resources include scripts, meshes, textures, GUI layouts, and others. You can also use both absolute and relative paths in this file, but you still cannot use environment variables. Relative paths are resolved relative to the location of resources.cfg
. Ogre will not search subdirectories, so you have to manually enter them. Here is an example:
Here is an example of a relative path being used and the need to list subdirectories. Including the '../media' directory did not automatically include the '../media/models' directory. This is so that Ogre doesn't get greedy and waste time loading up unneeded resources.
This file is generated by the Render Settings dialog that appears when you run your application. Do not distribute this file with your application. This file will be specific to your own setup. This file will contain your choices for things like screen resolution (see Ogre::RenderSystem::setConfigOption). Do not modify this file directly. Change the settings with the dialog and it will be automatically updated.
Depending on the OS, Ogre will place this config file in the writable path described here.