Subversion Repository Public Repository


This repository has no backups
This repository's network speed is throttled to 100KB/sec

Commits for Divide-Framework/trunk/Source Code/Rendering/Camera/Camera.cpp

Diff revisions: vs.
Revision Author Commited Message
868 Diff Diff IonutCava picture IonutCava Sat 25 Feb, 2017 21:46:55 +0000

- Fix buggy SSE Quaternion math
- Fix some typos and naming issues

867 Diff Diff IonutCava picture IonutCava Mon 20 Feb, 2017 17:01:12 +0000

- Rename to_XNN and to_const_XNN functions to reflect the target data type they are converting to.
- Cleanup Angle namespace and remove all “inDegrees” parameters from rotation functions. Use aliases to differentiate between Degree and Radian parameters.
- Profile guided optimizations.

853 Diff Diff IonutCava picture IonutCava Tue 07 Feb, 2017 21:43:58 +0000

- More work on water rendering.

850 Diff Diff IonutCava picture IonutCava Mon 06 Feb, 2017 17:04:39 +0000

- More code rot fixes
- Separate Planar reflectors/refractors from Cube R/R
- Now passing detail levels to shaders

824 Diff Diff IonutCava picture IonutCava Thu 19 Jan, 2017 17:18:03 +0000

- Prev Frame attachment system removed from RenderTargets
— Concept too high level for RT. Moved prev depth buffer to GFX class
- Other small optimizations.

823 Diff Diff IonutCava picture IonutCava Wed 18 Jan, 2017 17:11:00 +0000

- Fix some issues with Camera initialisation code.
- ToDo: Cleanup camera class. (e.g. setRotation / setGlobalRotation calls)

818 Diff Diff IonutCava picture IonutCava Mon 16 Jan, 2017 17:23:20 +0000

- Units get their bound node setup by the SGN UnitComponent and not during creation
- Profile guided optimizations

801 Diff Diff IonutCava picture IonutCava Sun 27 Nov, 2016 21:28:01 +0000

- More performance analysis guided optimizations.
- Some refactoring to allow later removal of Singletons status for: GFXDevice, SFXDevice, PXDevice, GUI and Input.
— Pass a PlatformContext around objects to access these classes.

788 Diff Diff IonutCava picture IonutCava Fri 21 Oct, 2016 16:11:37 +0000

- Added support for the Arena Allocator by Mamasha Knows (
— Used for GFX Related objects: Textures, shaders, etc

784 Diff Diff IonutCava picture IonutCava Mon 17 Oct, 2016 16:20:49 +0000

- Removed the CameraManager and move most of its functionality into static members of the Camera class
- Removed Camera push/pop system in favour of a stateless ptr based system to better fit the RenderPass structure

781 Diff Diff IonutCava picture IonutCava Wed 12 Oct, 2016 16:03:46 +0000

- ShaderComputeQueue <-> Material shader request bug fix (element stuck in QUEUED state)
- More Camera class cleanups
- Add a method of removing EnvironmentProbes from their Pool

780 Diff Diff IonutCava picture IonutCava Tue 11 Oct, 2016 16:15:24 +0000

- AtomicCounter in glUniformBuffer is now based on a glGenericBuffer implementation
- GFXDevice <-> Camera relation cleaned up a bit
- Added a readback system for glGenericBuffer
- Fixed a bug with Z_PRE_PASS stage culling

779 Diff Diff IonutCava picture IonutCava Mon 10 Oct, 2016 15:31:45 +0000

- Frustum calculation bug fix

769 Diff Diff IonutCava picture IonutCava Fri 16 Sep, 2016 15:18:09 +0000

- Clean up camera class:
— Remove “reflection” specific code and add a generic “reflect” method to allow the calling code to handle camera placements and reflections. This got rid of the “reflectionPlane” member in the RenderParams struct
— Remove some member variables and replace them with on-demand computed variables on the stack.
— Add a “destroyCamera” call to the CameraManager to allow better resource cleanup when needed
- Prepare a rendering system overhaul:
— Add dual screen render targets: current frame and previous frame. Used for future features such as TXAA and Motion Blur.
— Prepare code for an implementation similar to the Doom (2016) system: (the code was already going in that direction)

750 Diff Diff IonutCava picture IonutCava Thu 07 Jul, 2016 16:02:03 +0000

- Static analysis based fixes and improvements

744 Diff Diff IonutCava picture IonutCava Tue 28 Jun, 2016 21:43:58 +0000

- More performance tweaks

716 Diff Diff IonutCava picture IonutCava Tue 31 May, 2016 16:08:29 +0000

- Multithreaded scene load/unload fixes:
— Added postLoadMainThread call for scenes for thread sensitive loading steps
— GUI element adding is a thread sensitive loading step (a fast one) because CEGUI doesn’t handle threading
- Added REALTIME_WITH_CALLBACK task priority for tasks that need an immediate callback when they complete instead of using the flushCallbackQueue system.
- Some work on shadow mapping for getting it to work again
- ShaderPrograms that fail to load can cause a LockManager infinite wait. Delete the lockManager if the shader didn’t load to avoid waiting on commands that never get called.

706 Diff Diff IonutCava picture IonutCava Fri 13 May, 2016 16:29:40 +0000

- Renamed LightManager to LightPool and changed it from a Singleton to a scene specific pointer
- More scene load / unload updates (changing scenes now works properly!)
- Allowed GUI interface to hold per-scene elements and only render relevant ones
- Reduced dependencies between nodes, scenemanager, scene, loaders and kernel
- Removed Reflector base class as it was useless and integrate Water class with the Reflection system already in place
- Extended RenderingComponent’s reflection system to allow refraction as well

698 Diff Diff IonutCava picture IonutCava Mon 09 May, 2016 20:21:34 +0000

- Remove all anaglyph rendering code. nVidia gained 1 sympathy point with me for VRWorks:
— Single Pass Stereo completely removes the need for double rendering the scene for each eye.
— LiquidVR also support similar technology
-— Once VR development starts for Divide, documentation for both SDKs should be pretty sorted.

692 Diff Diff IonutCava picture IonutCava Wed 27 Apr, 2016 16:24:26 +0000

- Resource system cleanup:
— Resource name and resource file location (if any) is now passed only via explicit constructors! (ResourceDescriptors already contain this data, so why use setters?)
- Fix a bug with ortho projection matrix calculation (set m[3][3] to 1. this was skipped when the identity() call was changed to zero() in the ortho() function)
— This also fixed text rendering

656 Diff Diff IonutCava picture IonutCava Fri 04 Mar, 2016 17:23:26 +0000

- Separate resolution from window size
— Still buggy

601 Diff Diff IonutCava picture IonutCava Wed 09 Dec, 2015 17:12:38 +0000

- Shadow mapping system improvements:
— Point and spot light support
— Variable number of debug preview planes
- Light impostor rendering fix and update:
— Displays coloured icons for point and spot lights
- Camera system improvement:
— Camera manager is the only class allowed to instantiate new cameras
- Initial dual paraboloid rendering code
- Remove discard statements from shader code (should use blending if visual artefacts are encountered)

563 Diff Diff IonutCava picture IonutCava Thu 12 Nov, 2015 16:31:13 +0000

- Don’t rebind the node buffer if we are not refreshing node data
- Cleanup the “findSelection” system

560 Diff Diff IonutCava picture IonutCava Wed 11 Nov, 2015 16:11:13 +0000

- Implement a proper RenderPassManager that can hold and execute, in order, multiple rendering passes, with each pass able to handle multiple rendering stages:
— Added a RenderPass for shadowmapping that gets executed first
— Added a RenderPass for environment mapping that gets executed second
— Added a RenderPass for normal rendering that gets executed third and processes 2 stages: Z_PRE_PASS and DISPLAY
— All RenderPasses get executed twice if anaglyph rendering is enableDebugRender
- Added environment map auto-generation. The second render pass creates a reflection cube map used for reflections
- Cleaned up Kernel->GFXDevice->SceneManager relation for scene rendering
- Moved Renderer to SceneManager as it is not related to the GFXDevice in any way and it’s implementation can be very scene dependent.

543 IonutCava picture IonutCava Fri 30 Oct, 2015 17:18:18 +0000

- More profile guided optimizations
- Attempt to render all CSM splits in a single pass using geometry shader based instancing (unfinished)