Rendering Best Practices
Introduction
RailClone includes native shaders the renderers listed below, making it possible to render high-poly objects over splines as long as kilometers:
- Mental Ray
- V-Ray
- V-Ray RT
- Thea Render
- Corona Renderer
- Moskito Render
Usually these techniques push a rendering engine to its limits. The following notes include technical information that can help you to optimize your renderings.
Feature Compatibility
Due to technical limitations, feature support varies between renderers. The table below illustrates the compatibility of RailClone's key features with each render engine.
Standard | V-Ray | V-Ray RT | Mental Ray | Corona | Thea | Octane | Maxwell | Moskito | Arion | |
Native Instancing | ✗ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ |
Create Instances using RailClone Tools | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Automatic UVW Mapping | ✗* | ✓ | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* |
Debug Mode | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Generators | ||||||||||
L1S | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
A2S | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Base Objects | ||||||||||
Segment | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Spline | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Surface | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Parameters | ||||||||||
Numeric | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Constant | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Random | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Operators | ||||||||||
Material | ✗* | ✓ | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* |
Conditional | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Randomise | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Sequence | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Selector | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Compose | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Reverse | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Transform | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Mirror | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Arithmetic | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
UVW XForm | ✗* | ✓ | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* |
Common Tips
RailClone is able to create complex parametric structures by cloning and adapting mesh objects (called Segments) along one or more reference objects (such as spline). According to the spline's direction, elevation or other parameters, some Segments must be deformed and other simply cloned.
In the supported engines, it's possible to render thousands of instances of the same object using minimal resources. RailClone uses this feature, identifying which Segments may be cloned, and creating native render instances of them. This process is automatic and invisible to the user, but you can optimize your renderings by paying attention to the following rules:
- If you are certain that a type of Segment should never be deformed (such as pillars or joints), turn off 'Bend' in the Segments parameters. The same is applicable for 'Slice'.
- It is possible to use meshes or proxies as Segments, but it is not necessary to convert high-poly objects to proxies to get better performance. The plugin converts all objects to native render instances internally, so there are no significant differences (on render time and memory used) between using meshes or proxies.
- Proxies cannot be deformed, so RailClone always creates instances from them, but obviously they cannot be bent or sliced.
Some features are not available when using the native render mode:
- Vertex welding is disabled.
- Operator->Material and Segment->Deform->Mapping work only with V-Ray.
- RailClone objects cannot have any modifier applied.
You can switch to the standard render mode turning by off Display->Render->Use Instancing Engine. When this is used the plugin creates a single mesh containing all the geometry.
In any case, you can use RailClone Tools to generate the instanced geometry manually. This procedure is compatible with all render engines.
V-Ray Tips
RailClone offers some unique features using this render engine:
- Improved performance and reduced memory footprint for very large objects, generating the geometry dynamically inside the camera frustrum.
- We have included a debug mode, to identify visually from the render what segments are instanced. How to use it:
- Go to Display>Debug Mode and turn on Show Up Instances
- The default material ID is set to 100, leave this as it is or if you prefer, set to another number.
- Apply a multi-sub material that includes a material set to the ID specified in the previous step.
- All instanced geometry will be allocated the ID specified above and will render with the associated material.
Instanced segments are shown in blue color