Ogre Instacing: Start new implementation with instance creation/destruction managed by OgreWorld.
Ogre Instancing: EC_Mesh is now pretty much covered so proper testing can start. Next I need to figure out the instancing shaders etc. All of this is still very much WIP.
Ogre Instancing: Fix placeable to be set with instanced entities. Add more logic to the instance state objects in OgreWorld, including optimization runs after 5 seconds after creations/deletions have been done.
Ogre Instancing: Convert everything to use the OgreEntity() function instead of the deprecated GetEntity(). Check that all these places have proper null checking in preparation for instancing.
Ogre Instancing: While we are at it, fix all deprecated uses of GetBone() and GetAttachementEntity().
Don't log out 'camera component is null' if input ptr is null no purpouse to reset any active camera.
Ogre Instancing: Add draw debug for instancing via script exposed property/slots. Add function that can set mesh refs instances as static, this can boost performance quite a bit but is hard to automatically detect (if static any movement wont be updated) so lets leave it to script logic to tell the rendering what instance meshes wont be touched. Improve destroying instances so that the manager gets cleared once it has 0 instances left.
Ogre Instancing: Add HWInstancingBasic .cg, .material and .program. Separated from the supershader for now.
Ogre Instancing: Add example scene that can cover wide range of things to test performance with both instancing on and off and toggling static instancing.
Ogre Instancing: Fix broken logic in finding existing instance and mesh targets with ref and submesh. Fix that meshes that are set as static also create new instances (with all of its submesh/material combos) as static. Added a getter for static instancing for a particular mesh ref.
Ogre Instancing: Fix example scene script to new function name in OgreWorld.
Ogre Instancing: Merge VS and PS warnings to a single warning, this will usually override both or none so this makes the output cleaner to read. Fix documentation that CreateInstance can return null in error situations with given input.
Ogre Instancing: Make clear that the HW instancing is copied and modified from the Ogre 3D example assets and note the original author Matias N. Goldberg.
Ogre Instancing: Fix DestroyInstances logic to not leave null ptrs or empty targets into the internal lists. Now if create and destroy are used in pair correctly, there is nothing left for dtor to cleanup. Fixed typo in script UI.
Ogre Instancing: Fix EC_Mesh WorldToLocal and LocalToWorld when instancing is used. Add todo tag to SetMaterial. Implementing this might be quite heavy with instancing as it involved completely destroying the current instances with this material and creating new with 'instancing supported highlight material'.
Merge remote-tracking branch 'remotes/admino/admino_instancing' into incoming
Ogre Instancing: Major overhaul to the OgreWorld instancing internal state book keeping. This fixes meshes with multiple submeshes in them and makes the internals a faster when instances are destroyed by EC_Mesh.
Merge remote-tracking branch 'rex/tundra2' into admino_instancing
Ogre Instancing: Fixed documentation and code formatting. Removed un-needed test code for multi submesh creation.
Automatically generate instancing variants for SuperShader vertex shaders. Changed the logic of shader replacement for instancing. Use default shaders only if material is fixed function, else try to look for an instancing version of the vertex shader.