Skip to main content

General Best Practice

Forest Pack pushes the rendering engine to its limits. In the following notes, we include technical information that can help you to optimize your projets to get the best speed and efficiency from your renders.

Edge mode

  • Boundary Checking > Edge Mode is compatible with V-Ray, Corona and Arnold if this mode is used with unsupported renderers, point mode is used instead.
  • Edge mode works at render time, removing elements which are outside the scatter area. Therefore, it was necessary to implement a custom shader with certain capabilities, but actually only V-Ray allows this technique. The "trimmed part" is treated by the V-Ray render engine as a kind of "Matte object" internally (and other render engines ignore it for its calculations).
  • To use Edge mode with Arnold and Corona it is necessary to add a Forest Edge map to the material's Opacity input.
  • For other renderers, we have implemented an interface which can be used by the developers of these engines to write their own shader. But since each render engine and company is different, when or if this feature will be finally implemented will depend on them.
  • Edge Mode does not preview in viewports by default - to improve viewport performance edge trimming is calculated only at render time. This means the effects of this mode will not be previewed in the viewports. However, previews can be enabled by holding down the left CTRL key and clicking on the Edge radio button. (Points-Cloud Viewport mode only)

Scatter in large areas

  • To fill a large area, do not reduce the density setting with a sparse distriution map. It is far more efficient to use a dense or even solid map and a higher density value.
  • If you are using a Solid distribution map, you can break up any grid-like distribution effects by randomising the X and Y translations.
  • Remember that the density at viewport is not always a true reflection of the number scattered at rendertime because the number of items is limited by the Display->Viewport->Max Items parameter. You should check the real density by test rendering the scene.
  • Alternatively, if you want to adjust the density visually for a huge area, create a smaller grass region (for example 2 m x 2 m) and test different settings there. Once you get a nice result, apply it to the full area.
  • In large scenes it isn't recommended to fill huge areas with millions of tiny objects. Instead, it is almost always better to pre-compose a larger patch and use that as source object. In our library you will see presets called "large" which are already created as large patches for filling sizable areas more efficiently.

Optimising Materials

  • In Forest Pack, there is a big difference in comparison with the standard assignment of materials in 3ds Max. The material is NOT applied directly to the Forest Pack object, using the Material Editor, but is added in a parameter found in the Geometry rollout, using the "Material Override" pick button. If no material is present, the material assigned to the source object is used instead.
  • Set the Reflection Max Depth to a low amount if you don't really need it to be that high, 1 will work fine in most circumstances. Either disable glossiness for midground/ background objects and/or disable tracing of reflections for background objects. This works extremely well with the new LOD object in Forest Pack. Avoid using Refraction and Opacity at the same time.

Surfaces

  • When Forest uses a Surface as a scattering area, it extracts a "virtual" spline from closed edges of the mesh, and this is used as a Spline Area for several operations, including Size/Edge boundary checking, Area Falloffs and others. Depending on the surface topology, this spline is more or less adequate to be used as Spline Area. In some cases however, it could result in some imperfect working shapes (even some which lead to self-intersections, that may create an endless loop in one of the Max functions which process it).

If similar problem occurs, it can be fixed manually:

  1. Create a Copy of the surface object & convert it to Editable Poly if needed.
  2. Under Polygon Selection mode select all faces used for scattering (sometimes the Select By Angle from Ribbon could be very handy).
  3. Having Ctrl key pressed switch to Edge Selection mode.
  4. Then hit under Edit Edges -> Create Shape. It creates a new Editable Spline object to be used with Forest.
  5. Select the Forest object, under Areas rollout Add a new Spline Area and assign the shape created before.
  6. Select the Surface Area and turn it Off (Forest will not generate items from it).

Meshes vs Proxies

Internally all Forest objects are converted to native instances for most compatible renderers, so there is no performance loss using meshes instead proxies. Here is a brief list about pros and cons between meshes / proxies:

Meshes:

  • The geometry is loaded in memory while all rendering time (only a copy by tree model). This takes more space in the max scene, although you can fix it using XRefs.
  • Any geometric object can be used as source, including parametric and animated objects (Onyx, GrowFX or other Forest object).
  • Animation samples are generated on the fly, allowing you to create endless animations, but this may be slow depending on the type of object.
  • Some Forest features as Tint by Element only can be used with objects.

Proxies:

  • In V-Ray, the geometry is loaded/unloaded from disk dynamically, only when it is required by the current rendering bucket. This optimizes the use of the memory, but usually is slower.
  • The proxies don't take space on the scene, but they must be created manually before rendering. Also, you must take care to make them visible to all render nodes.
  • You can store the animation on the proxy file. It is much faster to load the samples from disk, than generate them at each frame.

We suggest to use proxies only if the system is low in RAM. But since each scene is different, it's always a good idea to test both methods for a specific configuration, specially when creating huge scenes.


viewport performance

Improving viewport performance with complex scenes that include multiple Forest objects can be achieved through a couple of methods.

  • Firstly, consider the use of camera clipping. This feature is beneficial for handling expansive terrains but necessitates frequent redrawing and rebuilding of the Forest object each time the view changes. It also hampers the efficient caching of geometry on the video card. While the utility of camera clipping varies depending on the specifics of your scene, we recommend activating this feature in the viewports mainly for very large areas. To test its impact on your scene, you could disable the Enable on Viewport/IR option and compare the performance to see if it offers any improvements.

  • Secondly, avoid Points-cloud mode where it isn't necessary. Although visually appealing, this mode can affect viewport performance, depending on your video card and the number of visible objects in the scene. You might want to experiment with alternative display modes, such as Proxy, to see if they offer better performance.


Creating Opacity Maps

  • Minimize the use of opacity maps in your plants. Raytracers are slow computing transparencies, when possible use mesh leaves instead masked textures, although number of polygons be higher.
  • Even though we recommend using geometry for leaves instead of opacity maps, it's not always possible nor the most efficient way of creating a plant. So if you're using alpha maps, or have purchased a model that uses them, turn off filtering for the opacity bitmaps. This is particularly true for still images, animated scenes may have issues with flickering if filtering is disabled.
  • The amount of transparent areas should be minimised in the bitmap. To do this, even if you are going to use a simple plane as a leaf a texture projected from the top view, try to cut out the areas of the geometry where you don't see any texture. Although it'll increase your poly count, the render will be much faster.
  • Not related to speeding up renders, but to avoid getting a halo/fringing around leaves that use opacity maps, create an alpha that is slightly smaller than the diffuse map. Alternatively, fill the background of the diffuse bitmap with a similar color as the texture.
  • In Photoshop, when creating an alpha channel, avoid feathering or at least use a very tiny amount.