What is the RDK?
This guide describes the Rhino Renderer Development Kit (AKA RDK) and its features.
The RDK is a collection of tools that extend the Rhino application platform with visualization-specific capabilities. Third-party developers can use the RDK SDK to integrate their renderers into Rhino.
- Extensible Material, Environment and Texture editors which display and edit Materials, Environments and Textures (AKA Render Content) and allow operations to be performed on them.
- Render content can have tags assigned.
- Frame buffer implementation with multiple channels and post-processing.
- Pre-process custom mesh provision interface for third party developers.
- Built-in material types, including gem, glass, plastic, plaster, metal, paint, picture and custom.
- Built-in procedural textures, including wood, marble, granite, noise generators, perturbs, and so on.
- Built-in HDR and OpenEXR support.
- Improved render pipeline that makes it much easier for developers to implement a renderer engine in Rhino.
- Sun light and sun angle calculation tools.
- Skylight support.
- Safe Frame support.
- Gamma, Linear Workflow and Dithering support.
- Automatic shader UI support for third party Material/Environment/Texture providers.
- Several utility classes to aid in the development of renderers and visualization related tools.
- Decal support with planar, UV, cylindrical or spherical mapping.
- Ground Plane support with automatic height, material and texture mapping options.
- 360 degree environment preview in the viewport.
- Extensive library of ready-to-use materials, environments and textures with Library browser.
Material, Environment and Texture Editors
The Material, Environment, and Texture Editors display objects called Render Contents and allow the user to edit them. These editors are all based on a similar interface with only small functional differences between them. Render Contents are the foundation of the RDK and one of the most important objects it provides. The RDK SDK provides an extensive system that allows render engine developers to create their own custom render contents. The editors then allow users to create, edit and manage these specialized contents as well as the ones bundled with the RDK and apply them to objects in the scene.
A user thinks of the Render Window as the window that appears on the screen when one renders a model (see the picture above). However, the render window object used by developers corresponds more to the actual frame buffer. It contains information about the channels and pixels that make up the rendered image. The standard render window provides a number of features to renderers, including built-in support for scripting, cloning, saving to high dynamic-range formats, post effects, zooming and channel display.
HDR and EXR Support
An HDR image which provides automatic conversion to a bitmap for non-HDR capable renderers. This allows the Rhino renderer and viewport display to show HDR environments while providing HDR tools to third-party renderer engines.
The HDR texture also provides projection conversion features. Most HDRi files come as Light Probe projection. The Basic Environment requires Spherical (Equirectangular) projection for spherical environments, so the HDR texture defaults to this conversion. However, several other types are supported.
The LDR exposure determines the brightness of the image when converted to a bitmap image. This will not affect the rendering when used by a HDR capable renderer.
HDR multiplier is a simple linear multiplier on all values in the image. This can be used to brighten or dim the image in an HDR capable renderer.
The Save As button can be used to convert the image to a bitmap file. The LDR exposure value is used convert the image during this process.
Azimuth and Altitude values modify the way the image is rotated in space during the projection conversion.
Decals are non-repeating textures that are applied to the surface of an object with a given projection. They are an easy-to-use way of attaching single images or similar textures to objects without going through the complexity of the texture mapping process.
Decals are textures that are placed directly on a specified area of one or more objects. They consist of a single instance of a texture, rather than being tiled as they are when used in a material. Users use decals to modify a limited part of an object’s color.
The following classes can be used to access decal features:
The RDK provides easy-to-use sun tools, including a docking panel to control the document sun, a sunlight preview within the Rendered viewport, a Sunlight command and a number of other scripting and developer tools to make sun-angle calculations easy.
The following classes can be used to access sun features:
This article introduced the RDK and described some of its main features. Each feature is explained in more detail in a different article.