The revamped Splice InlineDrawing provides a flexible solution for custom realtime rendering in the DCCs (for example Maya) viewport. With this new implementation all involved KL types have been moved to interfaces, so that users can implement custom solutions for each part of the rendering pipeline. Furthermore the rendering has been moved to the programmable pipeline, supporting GLSL for shader code. The data structure hierarchy of the new inline drawing looks like this:
The rendering pipeline is designed in a simple fashion to make it easy to edit the content. Additionally to managing drawing the InlineDrawing can also be used to manage a scene transform hierarchy (instead of the former flat list). This is useful if you want to represent a complex hierarchy (for example coming from an Alembic file) and allow to edit transforms at certain levels in the hierarchy.
Below are a couple of videos explaining the system in more detail:
In this video we get a deep look into the functionality of the InlineDrawing provided in 1.12.0. Various shaders, custom transform hierarchies, custom GLSL code and general InlineDrawing architecture is covered.
The video below provides an overview of highly customizable point rendering inside of any supported DCC (including Maya). This is useful for custom particle rendering, large amounts of lidar data etc.
Aside from point clouds the new InlineDrawing can also be used to render large amounts of curves, including custom rendering. This is useful rendering fur or things like particle trails.
The video below shows InlineDrawing’s debug rendering facilities, formerly known as InlineShape in previous releases. Now the OGLDebugShape can access any geometry attribute, so vertex colors etc can be deployed in the rendering pipeline.
Concerning visualizing assets this video demonstrates how to load large amounts of Alembic data into the InlineDrawing, and how you can connect the rendering to scene elements such as locators.
The InlineDrawing extensions comes with several implementations of the InlineTexture interface. Textures based on files (off disk), procedurally driven textures as well as matrix array textures (for crowd skinning) are supported. Furthermore users can implement their own texture types if needed.
The OGLInlineShader supports the full range of GLSL shaders, from basic vertex and fragment shaders all the way to geometry and tesselation shaders. This allows users to implement rendering pipelines for procedurally generated primitives such as fur or billboards for vegetation geometry, for example.