Reality Augmenter Release Notes 0.9.1
Image Unit and Mapping Layer Changes
The single chop area processors are no longer available to the user. They are now automatically maintained internally by the application, and most of their functionality moved to the mapping layers. This makes adding processors entirely optional, basic mixing and image processing can be done directly from the outputs screen. This also brings openGL performance improvements, reducing texture copy and memory usage, moving work to the shaders.
- Single Area Processors removed from interface, Processors now an optional stage.
- Mapping layers table cell views updated.
- New popup inspector available for mapping layers.
- Colour pickers made available to choose alpha colour for Processors or Overlays.
- Opacity control added for Overlays.
- Negative option available for Processors and Overlays.
- Colour match for alpha now has a small tolerance for smoother effect.
- Added check boxes to turn masks and overlays on or off seperate to the layer control.
- Default mapping layer created for new documents.
- Fixed rendering sometimes not updating after changing Mask, Processor or Overlay in a mapping layer.
- Circular mask calculates a better optimum size, looks much smoother and less wastefull.
- Rendering objects provider reclaims resources better.
- Shader code reorganised.
New Rendering Pipeline
After many problems with stability and threading, the rendering pipeline has been completely rewritten.
Thread synchronisation has been tightened, with all interactions between the GUI and the background rendering thread now locked to specific synchronisation points. Core data is now used in the main thread only, with background rendering objects handled by a seperate provider. Fixes a multitude of crashes and hangs, the application is much more stable and runs better under heavy load, providing a higher fps throughout.
OpenGL resources are better managed, resources are allocated, reused and reclaimed more efficently.
OpenGL mutli threading disabled, it was causing some interesting thread conflicts but didn’t bring any signficant performance increase. May bring it back as user option.
Single Area Processor Auto Creation
Processors are now automatically created for each chop area, making sources available instantly for the mapping layers.
New property added to single areas, Black to Alpha. this makes any black pixel transparent, for use in overlays. This functionality will be expanded on in the future as it’s a bit basic.
Single area processors will eventually be hidden from the user before the final release, their functionality will be moved to the mapping layers, freeing processors for special cases.
Default mapping defintions automatically created for detected outputs.
Double clicking the sources table now activates chop area editing mode.
New Feature : Video Player
A new input source is avalaible, a video player! Can loop videos, slow playback rate and set volumne. Uses av foundation and should play all standard video file types supported by Apple.
Sources can now implement popups to change values after insertion. Only implemented for video Player for now.
Overhauled thread management and coordination, eliminates some random crashes.
Cleaner seperation between Model and Render operations as part of the above, results in smoother GUI response for some operations and less headaches for me in the code.
Processor image inputs update correctly when changed.
2 Channel mixer sets correct dimensions.
Screen capture can be inserted again after being deleted.
Updates checked for in a new location.
Still some occasional hangs when starting or opening a document, less frequent now, related to core data. Improvement is an ongoing task.
Video player can occasionally struggle with HD videos, but eventually settles to running smoothly and constantly. Seems to be related to AVPlayer.
Major Stability Improvements
Lots of stability improvements to address some long standing frustrating random crashes and freezes, the app is now much more stable overall. Fixd eoccasional freeze on startup and opening files. Fixed crash switching views, Fixed crash editing image units. Better handling of threading in general.
Changes to Outputs
Layers can now use processors as an overlay. Overlays are mixed with the main mapping layer processor using the alpha channel of the overlay.
QC Compositions work again, previous couple of updates caused glitching and slow playback, this is now fixed and qc renderes nice and smooth again
Changes to Outputs
Masks have been moved so they are now set on individual layers rather than on Processors. Files saved in previous version should automatically migrate to the new data model version.
The outputs rendering now uses openGL shaders to support the mask and for future planned improvements. Should be a little more performant too.
Text added to Processor view so it’s clearer what actions are required.
Many changes made to the openGL rendering pipeline that increase speed and lower system impact. More improvements to come.
- Enabled multi threading for openGL
- Disabled unused states
- Removed unnecessary clears
- Reduced context switching
- Reduced state changes
- Reduced flushing
- Improved internal support for shaders
- General optimisations
New feature : 2 Channel Mixer
Added a new 2 channel mixer in processors, just blends between two inputs, with the option to set negative on either input.
Users a shader internally and much quicker than a QC mixer.
This new functionality changes the save file format, old files will open in the new version, but files created in the new version will not work with older versions.