Home
Name Modified Size InfoDownloads / Week
txnagameengine 2012-01-18
README.txt 2012-01-18 34.1 kB
Totals: 2 Items   34.1 kB 0
//--------------------------------------------------
// TXna Game Engine
// This file belongs to the TXnaGE
// https://sourceforge.net/projects/txnagameengine/
//--------------------------------------------------


ver 0.7.1		Beta    18.01.2012	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- Minor behavior change: UI scene nodes having an attached controller will get the controllers Update() executed each turn.
  In previous version the controllers update was invoked only for the active control (UI scene node with focus).

NEW:
- fixed generating non unique UI element names (if UI controls are frequently added and removed on the fly)
- fixed unmanaged icon handle leak (due to .NET GetHicon() bug/flaw)
- fixed clearing device after invoking OnDraw (meaning all rendering in OnDraw gets lost) 
- fixed focus handling for UI nodes 
- fixed treating Alt + Enter as click on UI control with focus (now only Enter without Alt keys causes click)
- fixed UIButton highlight/pressed texture
- overall changes in UI manager and UI controls
- added public IEnumerable<UISceneNode> UISceneNodes to UIManager
- added TXnaGE.SetHWMouseCursor(System.Windows.Forms.Cursor cursor)
- added HwCursorOffset setter
- added 'Sprite' concept. Sprites are handled like UI scene nodes but cant receive focus and are updated on every frame.
        Note that all the sprite handling will in future releases be moved away from the UI.
- added Sprite scene node
- added AnimatedSpriteSheet scene node
- added public Texture2D CreateSceneSnapshot() which renders the active scene into a rendertarget and returns the texture
- added generic MoveTo and UIMoveTo controllers
- added generic TimeTrigger controller
-----------------------------------------------------------------------------------------------------------------------------------------------



ver 0.7.0		Beta    04.11.2011	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- none

NEW:
- overall tutorials and engine optimizations and fixes
- TiledTerrainSceneNode update
- Demo08 update
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.6.0		Alpha	09.09.2010	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- cameras internal far plane is far plane * 5, old value was far plane * 10. This can cause scene objects to be culled off through distance culling. 
- the build in Controller class which is an IController implementation is now invoking ControllerAction() even if the game window is not active.

NEW:
- added TiledTerrainSceneNode
- added basic shadow mapping implementation
- added basic UITextBox implementation
- added calculating scene bounds during culling
- added ShadowMappManager to the Scene object
- added Name property to UISceneNodes
- added UIListBox SceneNode
- added taking primitives rendered by the UI manager or User Primitives manager into account for statistics 
- added UserPrimitivesCollectin support for rendering 2D primitives
- added boxfilter fucntion for terrain heightmap processing
- added Tutorial08 demonstrating tiled terrain
- added BindingAction delegate and member to InputBinding
- extended UIListbox with various color info, ListboxItem colors etc
- fixed some threading issues during background scene activation 
- fixed bug in IndexList.Sort() where the sorted temp array was not copied back to its index list storage
- fixed UISceneNode not resizing destination rectangle after changing the Size property
- fixed MandatoryPropertyInfo ParseVector3() and ParseQuaternion() functions
- fixed (finally)cameras look at, now the camera is really oriented towards the target after initialization 
- fixed SceneManager.UnloadScene() where the sceneId was not updated accordingly causing next AddScene() invoke to throw exception
- fixed UIManager.RemoveElement() not updating the Z index and Tab index lists
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.5.3.1		Alpha Patch	07.11.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- none

NEW:
- added setting nodes AngleRotation property if the rotation of the nodes pose has changed
- fixed ModelSceneNode null reference exception while setting the material and the sub materials collection is null
- fixed ModelSceneNode bone transformations
- fixed renderstates so the defaults are rendering correctly alphablended textures
- added reading the color informations from BasicEffect and applying them to the submaterials of a ModelSceneNode
- added some minor features/fixes to the SceneEditor
- changed shaders not to set aplhaplending and alphatest, instead this is done by the SceneManager and can be overriden by scene nodes 
-----------------------------------------------------------------------------------------------------------------------------------------------





ver 0.5.3	Alpha	24.10.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- Removed passing lights to the scene by ref (remove the ref keyword to fix this)

NEW:
- EditorSupport namespace interface changes to support the SceneEditor
- SceneManager light culling optimisation
- added own instance of ContetnManager to the Scene, avoids threading issues with background loaded scenes accessing same content
- added using scenes CntentManager inside LoadConten() overrides
- added Loader and PercentDoneNotify to Scene for better Load screen/Splash screen support
- added OctTree and OctNode classes for spatial partitioning  
- added VertexDataAccessor for fetching buffer data based on VertexElementUsage  
- added GetAaBB(out BoundingBox bb) to WorldPose
- added ModelSceneNode triangle picking in CollisionManager (ModelSceneNode don't have a constructed Mesh to fetch triangles from)
- added some more Light related properties to the Scene class
- added UserPrimitivesManager.UseSceneSettings property, if set to tru the 3D primitives are renderd with Scene ambient color and fogging
- added TerrainCollider() to TerrainSceneNode which is a GravityAttractor.PositionTest implementation for adjusting controlled nodes  
  position to stay above the terrain
- changed the way SceneNodes are added to Scene
- changed the way ModelSceneNodes are rendered, meshparts have their own Material, a new pair of Get/Set Material(index, ref material) 
  is added to the ModelSceneNode
- RenderableSceneNode Material methods are now virtual
- fixed initial TerrainSceneNode AABB after loading from Xml
- fixed ModelSceneNode AABB size calculation
- fixed ModelSceneNode not applying base material properties to all model submaterials (fog, diffuse, emissive, spec and spec. power)
- fixed GravityController setting controlled nodes Pose.Position the wrong way
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.5.2	Alpha	05.10.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- replaced Scene.2DManager with UPManager, note that some method names are changed as well
- the SceneNode and RenderableSceneNode do not implement any interfaces now. Unfortunately we had to give up the interface approach
  for SceneNodes. Accessing the interface properties was producing a high performance penalty so we started changing alot of private 
  members to become internal and use them in critical code sections. This defeated the purpose of interfaces and produced a messy and
  hack alike code. Finally we decided to remove the ISceneNode and IRenderableSceneNode interfaces completely. 
- removed the FogEnabled property from RenderableSceneNode, the fog switch can be accessed through the material. For readonly usage 
  node.Material.FogEnabled can be used.
- changed namespace for all classes inside Rendering folder, most obvious will be the Light class. To fix compile errors just add a
  using Titanium.XnaGameEngine.Rendering; statement

NEW:
- added Serialization folder and namespace for Saving and Loading framework elements
- added IXmlSerializable and IEditorCreatable interfaces to support scene editor infrastructure
- added UserPrimitives namespace containing basic support for drawing 3D/2D primitives 
- added UserPrimitivesManager class (implements rendering Lines, Points, Triangles)
- added axis aligned bounding box and Radius to WorldPose: BoundingBox AaBB, Vector3[] AaBBLocalCorners, Vector3[] AaBBWorldCorners 
  and removed BoundingSphere  
- added CollisionManager class and SceneManager.CollisionManager { get; } property. Currently supports only ray picking vs axis 
  aligned bounding boxes, bounding spheres and triangle picking if the nodes mesh is an indexed triangle list.
- added BackGroundColor property to TXnaGE
- added SceneNodeOrdering support for InstancedSceneNode (uses UpdateOrder of the first instance added to the InstancedSceneNode)
- added added resorting scenenodes after scene activation inside SceneManager
- added 07Tutorial showing how to run TXna inside Windows.Forms
- minor adjustments to windows forms support
- fixed MeshBuilder CreateSphere, now the triangles are correctly winded
- fixed TXnaGEWinForm resize events order, now the graphics device is not affected by the Xna Game.Window size anymore
- fixed initial mouse position for Fps and free cameracontrollers
- fixed not updating all internal SceneManager structures after unloading a scene causing an exception if cfreating a new scene with 
  same name as the unloaded scene
- changed unloading scenes, active scenes can now be unloaded and the SCM handles gracefully this during Update() and Draw()
- changed Culling, removed bounding sphere culling - all culling is calculated using AABB!
- changed ModelScenNode to use only the basic effect, no replacement with GenericEffect is done anymore
- changed all SceneNodes so that the constructors do not accept a texture anymore, instead an assetor filename is used
- changed MeshBuilder to use only int type indices
- changed the way BoundingSpheres are handled, most of the stuff is SceneNode
- adjusted tutorials
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.5.1.1	(Patch)	12.09.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- none

NEW:
- fixed SkyDomeSceneNode, the sphere calculation was wrong and sometimes triangle artifacts where visible on random places
- fixed including not referenced files in the TXnaContentPipeline project
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.5.1	Alpha	11.09.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- removed Position, Rotation and Scale properties from SceneNode. The SceneNode has a Pose which is of type WorldPose used to hold
  all the world related data and transformation matrices.
- GenericEffect is moved to the Titanium.XnaGameEngine.Effects namespace, this affects only developers building custom effects 
  which inherit from GenericEffect
- Material.Effect.CurrentTechnique must not be set manuall manually anymore. The technique will be overriden anyway prior rendering
  based on the Material.TechniqueName. Use the Material.SetTechniqueName(string name) to change the technique.
- splitted the project into TXnaGE and a TXnaContentPipeline. The compile times where just too long with conent processors inside 
  the TXnaGE
- moved most scene related functionality a separate SceneManagement namespace
    
NEW:
- added Precompiler.txt so read it please!
- started heavy profiling & code optimization
- added support for running inside Windows.Forms (precompiler excluded in XBOX projects)
- added support for Nvidia PerfHUD device (precompiler excluded in XBOX projects)
- added WorldPose as a data container, refactored all nodes to use a WorldPose instead its position/rotation/scale/world matrix
- added ISceneNode and IRenderableSceneNode and refactored the engine to use the interfaces instead of SceneNode and RenderableSceneNode
- added CullManager for efficient culling. Culling is now done in 2 phases: Update phase and Draw phase. During the Draw culling phase 
  it reuses data from the Update culling phase so only nodes which where not processed during the Update phase (with disabled culling or
  not enabled nodes) are calculated
- added SceneNode.FrameBits, a mini state machine is packed in 8 bits - used internally by the CullManager to optimize culling.
- added statistic counters for total and max timings during the Update phase
- added new Effect loading system - actually they are not loaded anymore just set to the TXnaGenericEffect
- added SetTechniqueName() to Material, SceneNodes not to change the Effect technique directly but change the technique name
- added OnUpdate, OnAfterUpdate and OnDraw members to Scene which where needed to efficiently span and end physics simulations
- added InstancedSceneNode for HW instancing
- added Tutorila 06 demonstrating hardware instancing
- fixed MeshBuilders Quad related fucntion: wrong vertex buffer length for non indexed geometry, wrong vertex order affected culling
- fixed bug in TerrainSceneNode where the heightmap was ignored and the Data was calculated from the default HM
- fixed SphereSceneNode not updating the bounding sphere correctly
- changed the TerrainSceneNode.GetHeight() to return a triangle based height value instead the approx. interpolation
- changed lot of private members in SceneNode and CameraSceneNode to be internall and accessible without the Getter/Setter methods
- changed handling bounding sphere for Cube and Quad scenenodes
- changed the statistics to aggregate stats every 250ms instead 1 second
- updated all tutorials
-----------------------------------------------------------------------------------------------------------------------------------------------



ver 0.5.0	Alpha	29.08.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- Removed the camera from the TXnaGE object. The camera is now a property of the Scene, one can still access it if needed through the 
  engine with engine.SceneManager.ActiveScene.Camera! A scene still needs to create a camera during Initialization or at least inside 
  the OnActivate() - no default camera is created.
- The RenderableSceneNode holds no geometry information any more (vertex & index buffers, primitives etc). All geometry information is 
  now stored in a Mesh Instance.
- active camera is not automatically set after a new CameraSceneNode gets created as it was before. The old behaviour could lead to null 
  reference exceptions after a new scene gets initialized on background and creates a camera. The background thread would change the 
  active camera while the main thread is potentialy inside an update loop and mess up all scene node pointers, lights and other stuff. 
  The best practice is to save a pointer to your scene camera and assign it to the active camera inside OnActivate()
- added new members to IController, this is important only if you build custom SceneNode controllers
- removed all constructot overloads from scenenodes that accept textures as parameters
- a custom scene must invoke base.OnInitialize() inside its OnInitialize() override since the base now has an implementation 

NEW:
- added UISceneManager class which handles the keyboard and mouse intercation with UI elements, takes care of ZOrder, TabIndex etc
- added UISceneNode which is a base for all UI Elements on the scene
- added UIButton which is a rectangular 2D element
- added UIImage which can render a texture 
- added _2DManager class for caching all 2D rendering invokations and rendering them in one chunk. Current implementation only supports 
  2Dlines but a circle, arc, point will be added soon. The LineManager inside the 2DManager uses instancing to render up to 64 lines in 
  1 single chunk.
- added _2DManager member to Scene  
- added Mesh class for holding geometry data. Its similar to the Xna MeshPart class except it holds less data.
- added MeshBuilder class for creating common geometry (Box, Quad, Sphere etc)
- added SphereSceneNode
- added Drawing 2D primitives: DrawLine(start, end, Color), DrawPoint(center, color, thickness) and DrawLine3D(), DrawPoint3D()
- added Scene.StartInitializing() for background thread initialization. Note that this is not the same as the background scene 
  activation as explained in  Tutorial02 although it is similar. The SceneManager.ActivateScene(scene, false) goes through the whole 
  scene initialization process and finaly activates the scene while Scene.StartInitializing() just finishes the initialization in 
  background so the new Scene (e.g. game level) is ready for fast activation when needed.
- added new members to IController
- added HW cursor support
- added background thread EndDraw() support (with BACKGROUND_ENDDRAW precompiler switch), this is helpfull only in a no VSync and no
  fixed timestep scenario
- changed most scene nodes to use the Mesh object as its geometry data holder. A RenderableSceneNode must not use the mesh but 
  in that case the Draw() member must be overriden with a full custom rendering implementation - just like the ModelSceneNode does!
- changed active camera handling
- fixed issue with device reset corrupting the fog parameters (start was 0 end was 1) so that all fogged nodes where completely covered with fog  
- fixed some nasty bugs regarding scene activation and anonymous delegates (multithreading issues) which where very rare untill 
  the Scene.StartInitializing() was implemented
- fixed CameraSceneNode initial view matrix based on camera target which was not calculated correctly  
- fixed bug in SceneManager.BuildRenderList() where all bounding sphere culled nodes where actually added to the render list and rendered
  instead skipped
- fixed BoundingSphere generation for Quad and Billboards. The radius was a product between scale and size which is wrong since  
  scale is same as size for those nodes so the radius returned was radius*radius which resulted in incredibly large spheres for those nodes
- updated all tutorials to adjust for the breaking changes
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.4.3	Alpha	13.08.2009	by Enriko Riba (Riki)
===============================================================================================================================================
BREAKING CHANGES:
- NEW XNA 3.1 version !!! You must download & install the Xna 3.1 framework before loading the solution
- removed Effect property from the RenderableSceneNode, added new Material property which contains the Effect property

NEW:
- massive source refactoring 
- new material system, the material is now a base for everything, it holds light data, effects, textures etc. 
- completely rewritten the lightning data structures (shader + GenericEffect + SceneManager)
- added SceneLights class 
- added Spot light support
- added initial PhysX support via eyecm.PhysX.dll - the Candy PhysX .NET wrapper
- added ModelSceneNode support for the TXna build in GenericEffect (now models are lit and fogged the standard TXna way)
- added new SceneNodeOrdering enum for transparent nodes
- added RenderShadows engine property
- added ShadowMapRenderer class. Not finished yet.
- added 05Tutorial with PhysX integration demonstration. To run it the PhysX system software 2.8.1 must be installed!
- changed GenericEffect to adjust for the new lightning data
- changed, RenderableSceneNode.Draw() and in all inherited scene nodes: removed parameter LightInfo
- changed default UpdateOrder of BillboardSceneNode, set to TransparentNode from the default SceneNode.
- changed CameraSceneNode cached cameras bounding frustum and recreated in UpdateViewMatrix() 
- fixed CubeSceneNode uv mapping, actually it is impossible to correctly map uv coordinates to all 6 box sides with only 8 
  vertices so 4 new vertices are added at the same position as back face vertices and used for top & bottom sides uv
- fixed directional light shading where the lights position was wrongly used instead of its direction
- fixed specular color for spot and point light calculations in Lights.fx
- fixed rendering transparent nodes after all other nodes ("transparent" = nodes with UpdateOrder==4, nothing to do with real 
  transparency). Still some glitches may occur with transparent nodes in front of other transparent nodes. This can be solved
  only by sorting nodes after every camera move/rotation, and rendering back to front in regard to camera - which is expensive.
- updated all old tutorials
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.4.2	Alpha	20.02.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- added SM3.0 shader based fog (linear) in Generic.fx
- added fog parameters to shader and GenericEffect
- added FogEnabled member to material
- changed IMPORTANT: fixed function fog is not used anymore. Do not set the GraphicsDevice.RenderState.FogEnbled = true!
  While the fixed function pipeline fogging can still be used in combinatio with the TXna shaders it will most likely cause
  strange visual results. All TXna shaders support fogging (gFogEnable parameter) so there is no need to use the fixed pipeline.
  Custom SceneNode developers should inlucde the Standard.fx and Lights.fx into their shaders and use the build in LinearFog(). 
- added loading the TXna effect and its wrapper inside TXnaGE.Initialize and exposing the effect pool. Effect pool is used to 
  share shader parameters between effect instances.
- added initial implementation of per frame shader parameter setup (in former versions all parameters where set per rendered node)
- changed RenderableSceneNode.StartDraw() is removed since the only usage of this function was to setup the states of the fixed 
  function pipeline before fog rendering.
- changed IShaderBinding interface, no more ref parameters except the worldMatrix. Interface has now two functions; one for static
  shader parameters (set per frame) and one for dynamic (set per rendered node)
- updated 04Tutorial
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.4.1	Alpha	18.02.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- changed Generic.fx, in lightning shader finished Point Lights
- changed Light, LighInfo those two former structures are now classes so we can change the scene lights dynamically 
- fixed Light culling and prepared for sorting (light sorting will be implemented in some future release)
- added a new Texture (needed for the 04Tutorial)
- updatet 04Tutorial
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.4		Alpha	17.02.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- added generic shaders for material/lightning support (pass through VS and per pixel PS with diffuse, phong, specular and ambient)
  note that fog is disabled since SM3.0 does noit support FOG semantics. Soon an updated shader will follow with full fog and shadow
  support.
- added Lights.fx and Standard.fx - those are not shaders but includes (with fx extension to support syntax highliting)
- added Material structure,
- added Light, LightInfo and LightType for the TXna lightning system
- added GenericEffect class which wraps the XNA Effect and binds the nodes material and scenes lightning information to the shader programm
- added IShaderBinding interface so custom scene node developers can wrap their effects and handle material/lights (or just use the GenericEffect)
- added default Material initialization for nodes, materials can and are supposed to be changed at runtime
- added Addlight(), RemoveLight() to the Scene class
- added lights collection to the Scene class (max 255 per Scene) and handling those ligts by the SceneManager
- added ambient color to the scene
- added per frame calculating up to max 8 relevant lights, those are the firts lights that are enabled and have the camera inside the 
  light radius. This means that one can add many lights to the scene but only up to 8 lights will be taken into account. Those precalculated 
  lights are passed to the individual node Draws. The shaders are not yet adjusted.
- added triangle strip drawing option to RenderableSceneNode (which saves allot bandwith compared to triangle lists)
- added CubeSceneNode, it's just a box with indexed primitives, as all TXna objects it can be textured (and instanced in future versions)
- added camera frustum culling for SceneNode's during the Update() cycle. 
- added SceneNode.DisableUpdateCulling {get; set;} which is used to prevent cullig in the Update() phase (needed for nodes like Sphere, Terrain etc)
- added RenderStatisticsAggregate structure which aggregates statistical data over time (max frame render, avg frame render, total render time etc.)
- added a new 04Tutorial
- breaking change, RenderableSceneNode.Draw() accepts one more parameter which contains all relevant light data
- breaking change, all RenderableSceneNode derivatives have now the adjusted Draw(GameTime, ref LightInfo)
- breaking change, corrected casing/spelling of numeruos properties all over TXna
- changed QuadSceneNode, it uses now the triangle strip instead of the list (exactly 1/3 less vertices sent to GPU), applies to billBoards too
- changed Demo folder names to 'TXnaGE NNTutorial' where NN is a number
- changed Terrain.fx - this shader is not used anymore, it will be deleted in the next release
- fixed TerrainSceneNode.GetHeight() returning non scaled max height if coordinates outside terrain
- fixed GravityAttractor, changed the wrong gravity acceleration formula to d = d0 + v0t + (at^2)/2
- fixed culling not taking the geometry size into account, very long bodies could have its center outside the far plane but still reaching the camera,
  now the far plane is checked against the nodes bounding sphere instead position
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.3		Alpha	08.03.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- added FarPlaneCullingFactor property to RenderableSceneNode, used to calculate per node culling distance. This allows Larger geometry to 
  be rendered at larger distances than the small nodes.
- added GravityAttractor which is a controller forcing the attached node to accelerate in the gravity direction as if it is free falling
- added ModelSceneNode, for rendering Xna Models
- added IController interface and exchanged references to IUpdateable with it
- added a task queue to the SceneManager and a PushAction(PostponedTask pFunction) function. Queued tasks execute during game loop update on 
  the main thread. This is implemented to allow background tasks to "execute" code which is thread sensitive like changing the GraphicsDevice
- fixed not correctly set FarPlane value in the CullingInfo structure, this caused that the cameras frustum was always smaler than 
  InternalFarPlane thus the distance culling never culld any geometry cause everything was already frustum culled
- added 03Gravity Demo, it demonstrates slowing down the main game loop for fast background loading, changing the screen resolution by from 
  the background thread, attaching a GravityController to the CameraSceneNode and per node distance culling variance (larger nodes shown further)
 -----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.2.	 Alpha	06.03.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- complete folder structure redesign (use SVN->Update + manually delete old folders after the update)
- game resources moved to a new Media folder, all projects just link to those files
- added detail texturing to terrain and generic shaders (PS must be at least ps_2_0 but the engine doesn't target HW bellow ps_3_0 anyway)
- added detail texture to TerrainSceneNode and a tiling factor
- added Scene initialization, activation & deactivation methods
- added background thread scene loading while the active scene is rendered
- changed Scene, it can be inherited and own scene setup stuff placed in init/activate overrides which makes making splash or load screens very easy
- remowed all TXnaGE static variables and passed the game pointer through constructor where needed
- changed CameraSceneNode creation, the camera node can not be created or replaced except through the new CreateCamera() method
- some minor bug fixes
- source refactoring
- added new "Scene Demo" solution which demonstrates creating and using the new Scene object model with a "Loading" screen on startup and background 
  "main" scene initialization
-----------------------------------------------------------------------------------------------------------------------------------------------




ver 0.1.2.0	Alpha	04.02.2009	by Enriko Riba (Riki)
===============================================================================================================================================
- added a FPS counter to the SceneManager
- added detail texture to the generic shaders
- added node ordering based on SceneNode.UpdateOrder, rendering is done in the same order as update (NOTE: the UpdateOrder property now realy matters!)
- added verticalRadians parameter to SkyDomeSceneNode, instead of having a hardcoded half sphere it now depends on this parameter
- removed RenderableSceneNode.DrawOrder, I currently can not think of a single situation where the Update order should be diffrerent than the 
  rendering order
- camera is now precreated by the framework and only its properties can be changed 
- fixed BillBoardSceneNode rotation towards camera
- massive source refactoring
- changed TerrainSceneNode.GetHeight(), it now returns an average of neighbouring heights
- changed Draw(), it now returns the number of triangles for statistics
- changed all Updating and rendering stuff, functionality moved from the Scene into the SceneManager
- adjusted the Demo Application
- renamed demo to SimpleDemo (since other demos will be added soon)
-----------------------------------------------------------------------------------------------------------------------------------------------



ver 0.1.1.0 Alpha	03.02.2009 by Enriko Riba (Riki)
===============================================================================================================================================
- added BillboardSceneNode
- added BoundingFrustum Frustum {get;} to camera, needed for frustum culling
- added InternalFarPlane to camera and detached the physical projectionMatrix based on the InternalFarPlane from the Frustum based matrix 
- added CullingInfo enum for choosing the culling method
- added RenderStatistics struct which holds various statisticall data, it is maintained per frame and can be queried from the active scene
-----------------------------------------------------------------------------------------------------------------------------------------------



ver 0.1.0.0			02.02.2009 by Enriko Riba (Riki)
===============================================================================================================================================
- initial pre-alpha checkin
-----------------------------------------------------------------------------------------------------------------------------------------------

Source: README.txt, updated 2012-01-18