The standard ForestTools GPU actor is a versatile PCG blueprint processed on the GPU using HLSL to run and create geometry at runtime.
Capabilities:
Works only on Landscapes
Does not saved in cache. Each restart will trigger the recompile of the HLSL.
Use with caution as a lot of these scatterers stack on top of each other, they are not saved in cache, meaning, that when you reload the level, all of your GPU scatterers will recompile and recalculated from scratch. As a result in some scenarios you might experience a TLDR or even a driver crash.
CleanUp PCG - cleans up your currently generated meshes.
Create Stamp - Stamps your generation into a baked ISM actor.
Flush Cache - Flushes the cache of your scatter object.
Generate PCG - Forcefully regenerates your scatterer.
Forest Groups - An array to pick a Forest Groups object from the scene.
Meshes array:
Static Mesh - Choose a static mesh.
Weight - Choose how much of this mesh is going to be applied at the end. The bigger the number the more of this object you going to see in the scatter.
Scale - Individually control the scale of the meshes in the final scatter.
Forest Groups - If you have meshes in addition to Forest Groups, you can define to which group this mesh is going to be applied.
Global Scale - Global Scale for all geometry added to arrays.
Use Forest Groups - Whether to use Forest Groups in addition to the static meshes in Meshes list.
Normal's Direction - Weather to use the Scatter Area's normals as objects rotation or not. Values 0-1 where 0 is objects are looking straight and 1 being fully following normals.
Usefull for grasses that are heavily affected by it but less for trees that tend to grow Up.
Sampling - The number of points to be scattered on top the landscape x1000
Base Offset - The amount of random offset to add to the position of the points.
Global Seed - controls the seed of most of the parameters unless specified by the parameter.
Grid Size - Pick a distribution grid for your scatterer. Works similarly to world partition.
Button ReDraw - When you moved an object to a different location it will not refllect on the exclusion map automatically, press this button to update it.
Exclude Entries:
Actor - Pick an exclude actor. It can be anything, splines Open/Closed, Meshes, other scatterers, ISM components.
Scale - Scale the final bounds to enlarge or contract the final exclusion area.
Do not touch:
Just dont touch these variables.
Distribution Map:
Use Distribution Map - Indicates whether to use the map to drive density of the points or not.
Use UV Distribution - When scattering on StaticMeshes with Poison sampling, allows to sample textures on UV space of those meshes
Channel Distribution - Chose a channel of your texture to take the values from (Usefull for when you have 3 different masks on the same texture)
Distribution Map - A texture to sample the distribution with.
Distribution Map Tiling/Rotation - Functions to help with placement of the texture.
Threshold Min/Max - The threshold in the texture to be sampled.
As an example: Pixels are usually go from 0 being black to 255 being white (Lightness), this threshold helps to decide the lower and upper threshold on the texture to sample points only in those areas. E.g. if you put the lower threshold to 0.3, everything on map that is below 0.3 is not going to spawn any points
Self Collision:
Self Collision - Whether to use self collision for the scattered meshes or not.
Self Collision Min/Max - Vector3 values for additionally modifying the bounds as X, Y and Z axis.
Self collision is a function that means to fix the issue of meshes intersecting each other. It automatically detects the bounding boxes of the applied meshes and prune throw your points using those bounds.
Clustering:
Enable Clustering - Whether to apply clustering algorithm for mesh assignment or not.
Use UV Clustering - When scattering on StaticMeshes with Poison sampling, allows to sample textures on UV space of those meshes
Channel Clustering - Chose a channel of your texture to take the values from (Usefull for when you have 3 different patterns on the same texture)
Cluster size - Decide how large the area is going to be for a single cluster in meters squared
By default the algorithm applies a base voronoi pattern assignment, if you ever feel like its not enough and you'd like more interesting shape, feel free to switch to cluster map mode.
Use Cluster Map - Whether to use a texture to drive clustering or not.
Cluster Map - A texture to sample the clustering with.
Cluster Map Tiling/Rotation - Functions to help with placement of the texture.
Visualize Clusters - A function that applies a debug meshes to help you visualize clusters better. Sometimes when you have pretty similar meshes, its hard to see the clusters. This function helps you visualize them without changing meshes themselves.
Lock Scale - Locks the scale on all three axis to do a uniform scaling.
Transform Min/Man - Randomization of the points.
ScaleMap:
Use Scale map - Whether to multiply the scale of the meshes by a map or not.
Use UV Scale Map - When scattering on StaticMeshes with Poison sampling, allows to sample textures on UV space of those meshes
Channel Scale Map - Chose a channel of your texture to take the values from
Scale Map - A texture to sample the scaling with.
Scale Map Tiling/Rotation - Functions to help with placement of the texture.
Scale Map Remap - Choose a min and max for your applied textures. By default Black = 0 scale and white = 1. Here you can define any values for black and white.
Scale Map Influence - How vividly the texture is going to affect the points. 0 is none, 1 is full effect.
Scale By Slope:
Scale By Slope - A function to change the scale on slopes.
Scale By Slope Distance - Adds a falloff that gradually leads to change in scale the closer to the slope the point is (Inside of the slope range) in cm.
Min/Max Slope scale - Minimum Maximum scale on the slope and the falloff that leads to it. 0, 0, 0 - 1st value is Min, Second is Max, Third - ignored.
Slope Angle - Minimum slope angle for this effect to be fully active.
E.g. value of 45 means that everything on the slope bigger than 45 (45-90) is going to be fully influenced by this function.
Slope Filtering - Weather to use Slope filtering or not.
MinMax Angle - Min Max angle for points to be spawned.
Angle Fall Off - Define if you want to apply a falloff for the filtered points. 0 means no falloff. Value in cm.
Height Filtering - Weather to use Height filtering or not.
MinMax Height - Min Max Height for points to be spawned.
Height Fall Off - Define if you want to apply a falloff for the filtered points. 0 means no falloff. Value in cm.
GPU uses Grasstype ID rather than landscape materials. Your material should have an appropriate grasstype setup in order for it to work.
Material Filtering - Weather to use Material filtering or not.
Grass ID - The IF of the material you want to scatter on top of.
Grass threshold - Because masks are usually have falloff, you can specify how deep or outwards you want the grasstype to be.
Exclude Material - Use this if you want to exclude the selected material rather than include.
A list of functions to help you randomize colors of your scattered meshes.
Please note that in order for it to work, your master material should have Forest Color material function be applied to your Base Color. Refer to this short video for more information on how to set it up.ColorVariation 1 minute tutorial
Use Randomizer - Whether to use color randomization on your meshes or not.
Color 1, 2, 3 - Choose colors to be applied to your meshes randomly.
This creates a bit of a gradient behavior so its not just these 3 color but a bit more naturally randomized.
Use Map - Whether to use a texture to drive the randomization of colors or not.
Use UV CV - Whether to use a texture to drive the randomization of colors or not.
Sample random pixel - Will sample random pixels on the texture to apply that color to your mesh. this will create more randomized effect rather than just projecting the texture onto your points.
Please note, dew to how this algorithm is currently has limitations, it might result in 1-2 points being deleted at random.
Color Map - A texture to sample the colors from.
Color Map Tiling/Rotation - Functions to help with placement of the texture.
Color Strength - decide how strong the colors should affect your material.
Use Perfect Cut - Weather to use perfectly cut edges or not (Great for grass that needs a very defined edge next to a geometry like grass between planks in archviz)
Perfect Cut Max Height - The Maximum height that Perfect Cut has effect.
Please refer to this video to learn more about the perfect cut:
UE5 - ForestTools Update 2.0 - New Features (Tutorial)
Color variation in FT is working on per object basis, so if you have the same master material or the same objects scattered with different FT objects, you can have different colors for each FT object.
This category is still under implementation