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'.
When opening a scene, create an asset storage for it to mimic the --file command line option and make the (local) assets load properly.
Revert TransformGizmo input context priority, as FirstPersonMouseLook script would not restore cursor visibility if the gizmo was active.
Replicated change of entity's temporary status. Closes #572
Added OgreWorld::Raycast() overloads which take a maximum distance.
Added RaycastAll() API to OgreWorld, which returns all raycast results.