Friday, June 5, 2009
Restarting the project!
Sunday, January 4, 2009
Grass lighting problem
Here's the topic on the PG forum.
You can also download the diff file here.
A note about terrains
ETM is capable of splatting up to 12 textures per pass, using 4 coverage maps with 3 channels RGB, which seems to be the maximum number of textures per pass allowed by shader model 2.0 - actually Ainur is using 9 textures with 3 coverage maps but I am already removing shader model 1.0 support where it does make sense.
Since actually OpenGL 3.0 is not well received and Ogre only (officially) supports OpenGL and Direct3D, shader model 2.0 makes sense. Every graphics card should support it.
Friday, January 2, 2009
Roadmap
Currently the Ainur Engine has the following features:
- Modular and object oriented design
- Game state management
- IntroState does a nice slideshow of your images
- TextFile and XmlFile resource managers
- CEGUI support
- Console done with CEGUI which is not yet enabled
- Support for mouse, keyboard, joystick/gamepad (even Microsoft XBOX 360 gamepad)
- Terrains with Editable Terrain Manager whith support for splatting, lightmap and colourmap
- Grass support with PagedGeometry
- Sky, clouds, starts, sun, moon and da/night cycle with Caelum
- Bloom effect (which was taken from Ogre examples but it's not that great with Ainur because the lights seem too bright)
- Resource locations with a simple XML file
- CEGUI sets and cursors specified with a simple XML file
- Configuration file for stages (AKA levels), implemented via INI-style file instead of XML (may use XML for this in the future)
Current planned features for Ainur Engine v0.1.0:
- Implement HDR and Motion Blur
- Fix Bloom weight
- Disable Bloom and use HDR
- Initial PostEffects infrastructure to handle compositors
- Water support with Hydrax
- Initial code for weather management
- Physics code to make the player walk (with three camera settings: first person, third person and free)
- MainMenu state implementation with Play Singleplayer, Options and Quit menu items
Also, implementing this game state I will also implement a way to load/save graphics options - Implement EditState to be used in the Stage editor instead of the PlayState which will be used for in-game preview
- Stage editor for terrains, grass, sky and water
- Loading IntroState images from XML
At the time of this writing, I already implement the first four points and I'm working on the 5th.
Thursday, January 1, 2009
World refactor and grass
The World class has been refactored: I separated sky and terrains (vegetation was already separated, but the class needs to be named VegetationSystem instead of PagedGeometrySystem). There are now SkySystem which uses Caelum and TerrainSystem (with the TerrainSystemHeightFunction namespace for the height function used by PagedGeometry) which uses ETM. The world was loaded from a XML file taken from the resources, but I've seen it's too slow to parse - so I used a INI-style file which I can read with Ogre::ConfigFile class. This file contains all the information about stage name, author(s), scene (camera position only at the moment), whether to load grass and terrain.