Update to the RenderPipes to support the new paradigm on how to go about writing a renderpipe.
Renderloops now should only contain configuration information + a call out to the rendering logic (preferably living in a static function). A loop now executes within a 'rendering context' that passes along a sidecar configuration file called a 'DataStore'. Any transient information that is needed between frames should be stored in this datastore (things like the materials / rendertextures). When the renderloop is destroyed this sidecar data is automatically cleaned up. It can also be cleaned manually.
Currently only the BasicRenderLoop has been ported to this new model due to the other loops not having a separation of concerns between transient data and configuration. They need the loop owners to detangle this before porting to the new model can take place. These existing loops still work, but they suffer from the same lifecycle issues they have had up unti...
-Split Asset / created instance more cleanly.
-Asset provides an RenderLoop instance that can be used for rendering
-Remove data store (implicitly the loop instance now)
- Rename all "loop" name to "pipeline" name for FPTL/Basic/HD
- Update all include in HDRenderPipeline to match C++ #include path that
is Asset/ScriptableRenderPipeline
Caution: This PR require the new C++ code
Do some plumbing in order to set up a UI interface for BasicRenderPipeline, in order for the actual rendering to pick up this option. It will be used to configure an example intermediate target for rendering.
Basic use case using prototype engine code living in Hg graphics/srp/xr-renderpass-sandbox. Works with single pass double-wide.
Engine handles connecting CameraTarget to VR device texture.
Remaining work:
* Support stereo instancing
* Support transient textures