Choose your operating system:
Windows
macOS
Linux
Curve Atlases store a combination of
Curve Linear Color Asset
A
Curve Linear Color
asset is used to store the interpolated RGBA points that are evaluated over a given range producing a color gradient that can be used with Materials.
Use the
Content Browser
to create your Curve asset by selecting
Add New > Miscellaneous > Curve
.
Then select
CurveLinearColor
from the
Pick Curve Class
window.
A new Curve Linear Color asset is added to the Content Browser displaying a preview of its current gradient. When you open the Curve Asset Editor, you can add, adjust, and subtract keys to the individual RGBA curves in the graph.
When you open the Curve in its Asset Editor, you'll be able to set the individual RGBA curves, adjust color values for the Curve, and preview the Curve Gradient Result.
Curve Atlas Asset
A
Curve Atlas
asset is used to store and access multiple Curve assets enabling management of gradient lookup tables (LUT). The Curve Atlas Asset Editor is similar to the Texture Editor, enabling you to make adjustments for Brightness, Vibrance, Hue, and more.
The curves assigned to the Curve Atlas as Gradient Curves make up the atlas. The Material Graph uses the texture created to perform the lookup for Materials applied to Actors.
Use the
Content Browser
to create your Curve Atlas asset by selecting
Add New > Miscellaneous > Curve Atlas
.
When you open the Curve Atlas in its Asset Editor, you'll be able to set the number of curves it can store, assign your curves, and adjust color values for all assigned curves - similar to the functionality of the Texture Editor.
-
The main viewport displays the Curve Atlas LUT that displays all assigned Gradient Curves for the Texture Size that is applied.
-
The Curves panel is where you sets the Texture Size for the number of Gradient Curves you need. The default is 256.
-
The Adjustments panel makes texture adjustments to all Gradient Curves assigned to the Curve Atlas.
For maximum texture efficiency, it's best to use a power of 2 value (such as 32, 64, 128). The texture sizes here are for demonstration purposes to include the entirety of the Editor Interface.
The Texture Size used can have an impact on the fidelity of your gradients, so it's best not to use a small atlas size for a complex curve. However, you can save texture size by using a small atlas for a set of simple curves.
To add a new Gradient Curve to the Curve Atlas, click the
Plus
(
+
) icon to add array elements, and the
Trash Can
icon to remove elements.
Using Curve Atlas with Materials
After creating your Curves and applying them to a Curve Atlas, you can create a Material that references the Curve Atlas and a Curve assigned to the atlas.
To sample the curve from an atlas, create a new Material and in the graph, right-click and add a
Curve Atlas Row Parameter
node.
This node is similar to a Scalar Parameter in that it enables you to work with Material Instance Dynamics (MIDs) that can then be used through Blueprint for the V-axis of the atlas UVs, but the node will do the sampling for you and return a Vector 3, along with R, G, B, and A, masks.
When you select the node, in the
Details
panel, you can assign the
Atlas
and a default
Curve
from that atlas to use with this Material.
The Curve Atlas bakes down when it is compiled, which means there is currently no runtime support for changing what is in the atlas or the curve data that is stored in the atlas at runtime. However, you can store a large amount of data in a single Curve Atlas, and use Blueprint to override the curve being sampled from a Material Instance.
As an example, here is a "Rock" Material that is using multiple Curves assigned to a Curve Atlas.
Then when you create any Material Instances , you can change the Scalar Parameter to select the Curve asset referenced by your Curve Atlas that is applied to your mesh.
The examples here show a Material Instance applied and the Curve that is being referenced from the Curve Atlas.
|
|
|
|
---|---|---|---|
Base |
Curve 1 |
Curve 2 |
Curve 3 |
Accessing Curve Atlases through Blueprint
In Blueprint, you can set the scalar parameter value on a Dynamic Material Instance using the
Get Curve Position
node. Get Curve Position takes the Curve Atlas as an input, passes the scalar value to the
Set Scalar Parameter Value
, and returns a Boolean indicating whether the curve was found in the atlas.