RayTK Features
Raymarch rendering
Raymarch rendering is an optimized approximation of light rays moving through a scene. The contents of the scene are defined with parametric formulas that describe shapes.
Unlike raytracing (or path tracing), raymarching is designed to run realtime without relying on specialized hardware (like RTX).
Spatial fields
Field operators make it possible to vary the properties of an SDF in different points in space, like having a cylinder with a thickness based on a sine wave.
SDF-based shapes
Signed distance functions (SDFs) are used to define surfaces in raymarching, rather than collections of vertices and primitives, like SOP-based geometry.
This allows them to have effectively infinite resolution, similar to vector graphics compared to bitmap graphics.
2D rendering
RayTK can also be used in a 2D context, using spatial fields and other operators to produce 2D images.
There's even a collection of 2D SDFs that can define shapes.
Using texture inputs, it can also be used for transforming and processing video streams.
Volumetric sampling
Volumetric sampling takes a set of point positions, and produces SDF-based scene content or spatial field values at each position.
This can be used for volumetric LED arrays like the LedPulse Dragon O2.
It can also be used with point clouds or particles.
Render compositing
The raymarch renderer can work with a traditional render TOP to do depth based compositing, combining traditional geometry with raymarched forms.
TD Integration
All properties of RayTK operators are exposed as parameters just like standard TouchDesigner operators. That means that you can bind them to CHOP channels for audio reactivity, MIDI control, or any other source of data.
Reflections and shadows
With raymarching, reflections and configurable shadows are fully supported. Materials can use reflection-based colors derived from secondary rays of simulated light bouncing off surfaces.