Instancing and Particle Systems

Corona Standalone supports instancing, and the Blender addon attempts to cut down on the amount of geometry written to the hard drive by instancing geometry wherever possible: Blender's native duplifaces, dupliverts, and dupligroups, as well as 'Object' and 'Group' particle systems (both Hair and Emitter types) and a simple custom proxy object system.

Duplifaces, Dupliverts, Dupligroups

Duplifaces, dupliverts, and dupligroups are supported, giving expected results.
The Stanford dragon is instanced here, as a dupli child object of the classic Utah teapot:

Particle Systems

Object, group, and path particles are supported by the exporter, in both Hair and Emitter modes.
An example of group particle systems from an emitter:

And an example of object particle systems, as hair particle objects rather than emitted objects:

Hair rendering is also supported to some extent. The implementation is fairly limited: textures cannot be mapped to the hairs as a whole or along their length, and hairs are exported as geometry, stored in .obj files.
Dense hair systems generate quite a bit of geometry, so export times can be somewhat prohibitive, and the .obj files are usually fairly large. It's advised to use hair rendering sparingly.

  • Strand Shape: Hair geometry can be generated as Ribbons (flat curves) or as Thick (cylindrical curves). When exporting a moderately dense particle system, use Ribbon curves as they can cut down on export times and .obj file size pretty substantially.
  • Resolution: The resolution of the hair curves. Increasing this value will result in smoother hairs at the cost of export time and file size. The default of 0 is generally sufficient.
  • Thickness: Root and tip thickness relative to the curve scaling (overall thickness). With tip thickness value at 0.1, for example, tip thickness will be 10% of the scaling value.
  • Scaling: The thickness of the hair strand.

The exporter uses the steps value in the Render subpanel of the particle system settings for smoother curves along their length.
You can use the steps value in the Display subpanel to visualize the smoothing of hair paths in the viewport, and set the render steps value to match.
You can keep the display steps low to keep maximal viewport performance.

An example of a hair particle system exported with a glossy anistropic material:

Proxies

Proxies are simplified placeholders for another mesh which replaces the proxy object at render time.
An object can be made a proxy by enabling Use As Corona Proxy (in the Object tab, under Corona Object Properties subpanel).
A proxy can be assigned a replacement mesh existing within the scene, or an .obj file external to the Blender file can be specified by enabling Use External Object and using the file browser to select an .obj file on the hard disk.

Using proxy objects for external .obj files enables the user to include very dense meshes into the render without the need to import them into the Blender file.
When assigning external .obj files, their respective material definition files (.mtl) must be specified as well.

Here the proxy object is assigned an existing object within the Blender file:

The proxy object is assigned an external .obj file, with its associated .mtl file:

The rendered meshes inherit not only the world space location of the proxy objects, but the scaling and rotation as well.

Here some scattered proxy objects show object-level scaling and rotation influencing the rendered mesh:


Log In