Clutter Effect Layer

From TrainzOnline
Revision as of 15:53, 5 February 2020 by Pw3r (Talk | contribs)

Jump to: navigation, search
Clutterexample1.jpg

The Clutter Effect Layer is an Effect Layer type which is used to render small localised ground clutter (small foliage, stones, etc.) As with all effect layers, clutter is painted onto the terrain and automatically generates appropriate geometry for the area surrounding the camera.

Contents

Surveyor Configuration

Clutter effect options.jpg

In Surveyor, effect layers are added and configured using the Effect Layers dialog. Once added to the Route, the effect itself is "painted" onto the world using the topology tools (e.g. "Height up", "Plateau", etc.). Below is a detailed breakdown of the editable fields for a clutter effect layer.

name

The name of this effect layer. This is used for display and identification purposes only, and has no effect on use or visuals.

clutter-density

Data storage semantics for the clutter density data. This controls the amount of data that this effect layer will use within the Route. Allocating more data for an effect layer allows more control over painting it, but there is a (shared) limit to how much data you can allocate for effect layers so it's best to keep this as low as possible.

Effect data bindings have 3 configurable field. The first field is the bit depth, which controls how much data each effect "vertex" uses. A higher bit depth means more layers of control between the minumum and maximum values, but uses more data. This field can also be set to Zero, meaning that it uses no data within the Route files, and every vertex will use the Default value for this binding. The second field is the vertex grid size. This controls the distance between each effect layer vertex. A smaller value means you can paint the effect with very high precision or over a very small area, but uses more data. A large value is better for quickly bulk filling, and uses much less data storage space, but can be difficult to pain precisely. The final field is the default value. The default is used when the bit depth is set to zero, and to pre-fill newly added ground sections.

spacing

Controls the distance new clutter objects will spawn from each other.

random-rotation

Enables/disables random mesh rotation around the height (z) axis.

draw-distance

Sets the maximum distance at which this clutter effect will draw.

mesh-assets

The assets which will be randomly spawned for this effect. This controls the visuals for the clutter effect, and you must add at least one mesh here before anything will be visible in the world.

avoid-water

Whether to avoid rendering this effect under water. This feature was added for the TRS19 2020q1 subscriber update, and is currently only available to subscribers.

altitude-range

The minimum and maximum altitude at which to render this effect. This feature was added for the TRS19 2020q1 subscriber update, and is currently only available to subscribers.

gradient-range

The minimum and maximum terrain gradient (degrees) on which to render this effect. This feature was added for the TRS19 2020q1 subscriber update, and is currently only available to subscribers.

ground-texture-mask

Causes this effect layer to only render on specific ground texture assets. This feature was added for the TRS19 2020q1 subscriber update, and is currently only available to subscribers.

Asset Configuration

Before you start looking at creating assets for Clutter Effect Layers you should have a very good knowledge on how you go about modelling efficient meshes for each LOD level and what textures you should be using for each mesh LOD. You can find an excellent reference on how to model and texture assets under the Modelling Overview on the Art Recommendations Trainz wiki page.

When using a large amount of clutter objects onscreen at one time, it's best to have at least the lowest LODs (which shouldn't be very far from the camera) using a Texture Atlas. The texture atlas should be as small as it can be while maintaining good visual results (256x256 perhaps) and will hold all the images for all the assets lowest LODs. This means when the lowest LODs are showing (which should be the majority of clutter onscreen most of the time) you'll only be paying the cost of 1 material shared across all the lowest LODs.

You will also want to share as many single textures between as many assets as possible to cut-down on draw calls where possible - If you have 3 ferns all of different sizes, don't make 3 copies of the same texture.

You will want to make sure you understand how to create a Trainz Mesh Library asset so you can utilise texture atlases and sharing of textures between multiple meshes.

Once you start to construct your Trainz mesh library asset be sure to use the m.clutter material for all your meshes. This will allow your clutter asset to fade in and out where required. You will also want to take note about the fadeInEndDistance and fadeOutEndDistance in your mesh metadata files to get your fade transitions correct.

Mesh Asset Creation

There are several factors to consider when determining which assets you should put in a clutter layer:

  1. How big is the asset? Anything that has a size of ~1 metre cubed or smaller can be considered as clutter. This is not to say it must be clutter but anything larger than that you should place with the Objects tab.
  2. To get the nice fade-out transition (and fade-in if you've configured that) your clutter asset should use the material m.clutter.
  3. LODs are a MUST! If your asset has no LOD or poor LOD it will be far too performance heavy for use as clutter.

You can find all the information on creating clutter mesh assets under m.clutter.

It is strongly recommended that assets created for use in a clutter effect layer are small, relatively low polygon (100-500 polygons at highest LOD), with very efficient LOD (typically down to 5-10 polygons at lowest LOD) and using the m.clutter material type. It is possible to create very attractive and high-density scenery with well-built clutter assets. However inefficient asset creation can very quickly lead to very poor performance.

See Also


Back to Effect_Layer

Personal tools