What Is It?
GMOgre3D is a GM port of the extremely popular open source OGRE (Object-Oriented Graphics Rendering Engine) 3D engine. Why port OGRE to Game Maker? Simply put, the 3D support built into Game Maker only supports the most very basic of 3D functionality. If you want to get the most of your 3D games using Game Maker then you need to use a 3rd party graphics library, such as OGRE.
I choose to port OGRE in particular because it's an extremely popular 3D engine that is constantly being updated and improved upon. It also has an extremely large, passionate, and active user base.
Material / Shader support
- Powerful material declaration language allows you to maintain material assets outside of your code
- Supports vertex and fragment programs (shaders), both low-level programs written in assembler, and high-level programs written in Cg
- Supports the complete range of fixed function operations such as multitexture and multipass blending, texture coordinate generation and modification, independent colour and alpha operations for non-programmable hardware or for lower cost materials
- Multiple pass effects, with pass iteration if required for the closest â€˜nâ€™ lights
- Support for multiple material techniques means you can design in alternative effects for a wide range of cards and GMOgre3D automatically uses the best one supported
- Material LOD support; your materials can reduce in cost as the objects using them get further away
- Load textures from PNG, JPEG, TGA, BMP or DDS files, including unusual formats like 1D textures, volumetric textures, cubemaps and compressed textures (DXT/S3TC)
- Flexible mesh data formats accepted, separation of the concepts of vertex buffers, index buffers, vertex declarations and buffer mappings
- Progressive meshes (LOD), manual or automatically generated
- Static geometry batcher
- Sophisticated skeletal animation support
- Flexible shape animation support
- Animation of SceneNodes for camera paths and similar techniques, using spline interpolation where needed
- Generic animation tracks can accept pluggable object adaptors to enable you to animate any parameter of any object over time
- Highly customizable, flexible scene management, not tied to any single scene type. Use predefined classes for scene organization if they suit or plug in your own subclass to gain full control over the scene organization
- Hierarchical scene graph; nodes allow objects to be attached to each other and follow each others movements, articulated structures etc
- Multiple shadow rendering techniques, both modulative and additive techniques, stencil and texture based, each highly configurable and taking full advantage of any hardware acceleration available.
- Scene querying features
- Integration of Newton Physics and collisions
- Ball and Socket, Hinge, and Slider Joints
- Integration of a full GUI system
- Windows, Buttons, RadioButton, CheckBoxes, ListBoxes, ComboBoxes, EditBoxes, Spinners, Sliders, Menus, ProgressBars, TabControl, Multiline EditBoxes, MultiColumn Listboxes, and more!
- Fully skinnable
- GUI layout editor
- Compositor system, allowing for full-screen postprocessing effects to be defined easily, via scripts if desired
- Particle Systems, including easily extensible emitters, affectors and renderers (customisable through plugins). Systems can be defined in text scripts for easy tweaking. Automatic use of particle pooling for maximum performance
- Support for skyboxes, skyplanes and skydomes, very easy to use
- Billboarding for sprite graphics
- Transparent objects automatically managed (rendering order & depth buffer settings all set up for you)
- Dynamic geometry paging system, which enables infinite worlds
- Batched rendering LOD for optimized rendering of near-by trees
- Impostor rendering LOD for extremely fast rendering of distant trees
- Flexible LOD display system, which can be expanded to display geometry with any technique you can implement
- Flexible LOD configuration system, which allows you to configure any combination of supported LODs in any way you want
- Optional cross-LOD fade transitions, and far LOD fade-out, fully configurable
- Flexible PageLoader system, allowing you to dynamically load geometry from any source you can imagine
- Easy addition / removal of trees with bit packing, allowing millions of trees to be stored in RAM using only a few MBs
- Color-map support for trees, which enables you to apply terrain lightmaps to your trees with one simple function call
- Animated, optimized grass rendering system. Supports density maps, color maps, wind animations, height range restriction, and much more.
GMOgre3D uses the LGPL license, which means it's completely free to use for personal and commercial use. It also includes full source code, but if you modify the source you must make those changes available to the general public.
All 1200+ functions for GMOgre3D are fully documented, and more tutorials are steadily being added. You can view the current documentation at the GMOgre Wiki. You can also look at the OGRE documentation and wiki, which is extremely helpful in learning how OGRE works.
Visit the GMOgre3D forums for questions, tips, and more right here.
You can download the binary release with sample GMK projects here.
You can download the full source code, including Visual Studio 8 project files here.
The DirectX renderer requires a version of DirectX 9 dated Nov 2008 or higher. If you get an error about a missing d3dx9_41.dll then you have an older version and need to update from:
GMOgre logo by mauge
GMOgre font by "Baby Kruffy" @ www.dafont.com
Ogre head by firstname.lastname@example.org
Edited by Houdini, 13 August 2012 - 07:05 PM.