> [!tip] Always use References and Size references
> Visual references, plus matched scale references — keep texel density consistent across the terrain.
# Heightfield
- From a **heightfield**, you can **save the different layers** (`bedrock`, `water`, `sediments`) — either via a **Heightfield Output** node, or via a **Convert** to geometry that turns those layers into point attributes.
- **Visualization / Compute Range** — output a height map at the correct range:
- ![[file-20240924153446315.png|600]]
# Coordinate System
*(Section to expand — coordinate system conventions for terrain projection.)*
# Megascan Download
- **Option: Prefer EXR.**
- ![[file-20240924181052229.png|388]]
# Lookdev
- **Keep the node graph as light as possible.**
- **Anyone should be able to make retakes** without asking you what's going on. Document the graph or use sticky notes.
- **Displacement only if the studio asks for it** — usually your v1 doesn't have displacement.
- The **goal** is to **cover the maximum terrain**, **hide repetition**, and be **as easy to render as possible**.
## Megascan Projection
- Like always we need at least a Diffuse, a SpecR and a normal that we will gather from megascan. To project them on ground with relief we need a tri planar (Projection in 3 axis)
- The first Tri planar will drive the other as we need the projection to be identical in between maps. so for that you do a **RIGHT CLICK** on your tri planar node then **ACTION** then **CREATE REFERENCE COPY**
- ![[file-20240924182716594.png]]
- **Input per Axis** = 3 images for the triplanar to work : One image projected in X one in Y one in Z :
- ![[file-20240924174426366.png|500]]
- **Blend** = blending transition between the different axis projection.
- ![[file-20240924174737982.png|500]]
- **The Cell** = Super important ! It will allow rotation of your texture, this is useful to hide repetition pattern of your texture
- The blend option allow you to blend in between the rotation
- ![[file-20240924175136511.png|500]]
- You can add if needed color variation, range for spec and specRoughness and then plug everything into a standard shader
- For my exemple I need an other megascan projection with moss only, so I repeat the exact same process
## Layer Shader
- We need to combine shader as we have different megascan material with different physical properties
## Creating mask
- This is where everything make sense, we need to create mask to go from the material 1 to material 2, in my case : soil to moss.
- Here I am making a **mask by feature**, a node I already showed you for scattering. I am using it to have a mask which will define the area on the ground around my big trees. I do that by making a shadow mask and by connection the tree to the third channel of the **mask by feature** node. I call this mask : maskMoss
- ![[file-20240924191210452.png]]
- I will also use the Height and Water maps that the heightfield is making by defaults as a point attribute :
![[file-20240924192215985.png|650]]
- To call my maskMoss I am using a user data float. A node that allow to call float attribute from geometry :
- ![[file-20240924193820910.png|575]]
- I am then using a noise and the diffuse of the soil to create some mask variation and I am adding it to the maskMoss. Connecting everything to the mix of the layer 2
- ![[file-20240924194009921.png|600]]
- ![[file-20240924194030809.png|600]]
- I am now projecting an other megascan and applied the height mask I talked to you about to target it just in the pound area where the water will be :
- ![[file-20240925103921862.png]]
- Adding the water geo and shader which is just a transmission shader as I wanted clear water but feel free to add subsurface with you want something more muddy
- ![[file-20240925104103934.png]]
# Combining displacement
- In case you want to combine the differents displacement made by your megascan projection :
- Don't forget that the displacement depends on how much you model is subdivided so increase the subdivision if necessary, but more subdiv means more RAM and render time :
- ![[file-20240925110920931.png|500]]
- The Displacement height, bounds and center are controlled in the arnold parameters of your geometry
- ![[file-20240925110956047.png|500]]
- Megascan displacement are 0.5 centered . don't forget to change it
- I usually don't touch the Height value
- In my material I am using a layerRGBA node to combine my megascans displacement. The first layer is a grey 0.5. this is my base. then I am adding my first megascan (soil) displacement layer in overlay mode
- ![[file-20240925111621808.png|600]]
- 0.5 Value of midpoint --> use Overlay
- 0 Value of midpoint --> Use add mode as 0 + 0 still is 0
- The mix value is acting as my displacement strength
- To add my second layer of megascan (moss) displacement I need to multiply it with the mask I made as I want the displacement only where the moss is. I am then connecting that to the layer 3 entry of my layer RGBA and that's it !
- ![[file-20240925112101222.png]]