OGRE (Object-Oriented Graphics Rendering Engine)

Frequently Asked Questions (FAQ)

Q: What platforms does OGRE build under?

Platform

Compiler

Extra Notes

Windows 95/98/Me/2000/XP

Microsoft Visual C++ 6 SP3+
Microsoft Visual C++.Net 2002

Microsoft Visual C++.Net 2003

DirectX 8.1b SDK
Due to STL problems with MS compilers if you are using VC6 or VC.Net 2002 you MUST install STLport

Linux

gcc 3.x
gcc 2.9x with STLport STLport

gcc 3.2 highly recommended. See Linux README

Mac OSX

gcc 3.x

See the Mac README

Q: When do I need STLport and why?

You need STLport if you're running Microsoft Visual C++ version 6 or .NET 2002, because the STL implementation in these versions of VC++ is very old, pretty slow and has a number of known bugs. If you are using Visual C++.Net 2003 or later you do not need STLport.

You also need STLport if you're using gcc 2.9x because the STL included with this version is not ANSI compliant enough for OGRE. You don't need it if you have gcc v3.x because the STL in that version has been updated.

Q: How do I install STLport?

Approach #1 – build it yourself:

Download the latest from www.stlport.org and unzip it somewhere

  1. make sure you've run VCVARS32.BAT from the MSVC6 folder, in the same command prompt window

  2. type 'nmake -f vc6.mak clean all'

  1. make sure you've run VSVARS32.BAT from the MSVC .NET folder, in the same command prompt window

  2. type 'nmake -f vc7.mak clean all'

  1. type './configure'

  2. type 'make'

  3. type 'make install'

Approach #2 – download a prebuilt installer from the OGRE site


Whichever approach you take, you have to update your Visual C++ paths afterwards:

Q: Why do I have problems compiling the DirectX-based source files in Microsoft Visual C++ 6?

Microsoft is phasing out support for Visual C++ 6. If you are using it, the latest DirectX 9 SDK which is supported by Microsoft is the Summer 2004 update; any version after than will NOT WORK with VC6. In addition, you must download the 'Extras' package and install that too, otherwise you will receive 'security_cookie' link errors.

Microsoft's DirectX page.

Q: What is the 'Dependencies' folder for?

Ogre depends on a number of external libraries such as jpeglib, libpng, zlib, and SDL. Rather than expect people to have these already or download them separately, and to minimise problems with incompatible versions of these libraries, you can download them from the OGRE downloads area (get the '3rd party libraries' download for your compiler). You only need this if you are using Microsoft Visual C++ because Linux distributions usually come with these libraries built in (just in case yours doesn't, use RPMfind).

Q: Why do I get a message like 'unable to open zlib.h' or some other header file?

If you're using VC++, make sure you've downloaded the 3rd-party libraries distribution from the OGRE download area. This archive should be extracted into the 'ogrenew' folder.

Q: When I try to debug a sample or my own application, I get an error saying plugins.cfg is not found, why?

The relative location of OGRE library files and configuration files are very important for successfully starting an OGRE application, in debug mode or otherwise. The existing samples provided copy their executables into 'Samples\Common\bin\Debug' or 'Samples\Common\bin\Release', where all the other files are placed correctly. It is recommended that you set up your own examples to place their executables in the same location to avoid problems, and debug them from there too.

If you do want to move the files, bear in mind the following dependencies:

Q: I have problems loading some resource files (textures, meshes, material definitions etc)

Check the following:

  1. Make sure the case of the filenames is correct. Some operating systems are case-sensitive in their file operations, and all of OGRE's internal lookups for reusing resources is case-sensitive so assume that case IS important.

  2. Make sure the location of the resource is on the resource path. You can add resource paths by calling Root::addResourceLocation and supplying either a folder or a ZIP compressed archive to search in

  3. If you're trying to use a material or particle system scripted from a .material or .particle file, ensure that you call ResourceGroupManager::initialiseAllResourceGroups

Q: What is the minimum set of resource files I need to run my own OGRE application?

If you wish to use the OGRE debug panel or the profiler, you need to have the OgreCore.zip package on your resource path.

Q: After I did a CVS update, no matter what demo/app I try to run, I get thrown in the debugger because of what appears to be memory over-runs/allocation problems.

This is because there have been major changes in the core OGRE library, changes that affect all the other linked plug-ins/apps. The solution is simple (though a bit slow): a full rebuild of all the OGRE sources.

Q: Why do I get errors about 'LPDIRECTINPUT8' : missing storage-class or type specifiers?

This is caused by either not having the DirectX SDK, or having the include folder for it lower down on your include list than an oder version of the Windows platform SDK or the Visual C++ include folders. Make sure your DirectX SDK includes are above VC / Platform SDK but still below STLport.