Skip to content

Ray Tracing Framework

Choose a tag to compare

@stephen-hqxu stephen-hqxu released this 29 Oct 18:22
a538a81

Release 0.15.0

This big release brings a shiny new framework for ray tracing to improve the rendering quality; it is so new such that we don't have time to test it properly. The new feature is currently detached from the main rendering pipeline, and the remaining works is expected to be finished in the next major release. Plus many more bug fix and optimisation...

The main thing about this release is not about this new framework because it is not usuable yet, but all critical fixes and improvement to the current engine.

What's new

STPExtendedScenePipeline, as an extension to STPScenePipeline, focuses on ray traced rendering as opposed to rasterisation thanks to OptiX. This pipeline currently only does ray casting rather than tracing for testing intersection of reflection and transmission ray from water renderer; more amazing rendering algorithms with ray tracing are coming in the future.

See issue #50 for more details regarding the framework.

Quick summary of major changes

The major changes are here because they are essential before we can implement the new framework. There are too many, you may want to read the release notes from the preview versions for full detail.

SuperTerrain+

  • Overhaul to NVRTC runtime compiler framework with better user-control and memory management. NVRTC compiler and CUDA driver module management are separated into STPDeviceRuntimeBinary and STPDeviceRuntimeProgram respectively, and they now use a stateless model.
  • Overhaul to configure template including renaming and namespace enclosure.
  • Overhaul to API error handler, STPGenericErrorHandlerBlueprint is included for easier future integration to other APIs.
  • Overhaul to smartly managed CUDA objects and put them to STPSmartDeviceObject.
  • Overhaul to STPThreadPool for more robust destruction control.
  • Remove STPMemoryPool.

SuperRealism+

  • Add more GL types to STPOpenGL.
  • Refactor all GL object class to be consistent with GL official API signature.
  • Simplify abstract rendering component class STPSceneObject by merging shadow and non-shadow variant of STPOpaqueObject and removing STPDepthRenderGroup. Add a new type of object STPAnimatedObject which is currently used by STPWater and all environment objects.
  • Change the logic for STPScreen and STPAurora and application is no longer forced to derive from them.