HEGoTerrain3DOutput

Inherits: RefCounted

Builds a Terrain3D node from the heightfield layers of a cooked HDA.

Description

The height layer drives the terrain itself; the optional hegot3d_* layers add region masks, holes, per-texture weights and colour maps. Everything is driven by detail attributes on the height layer, so an HDA that does not set hegot3d_spawn_terrain is skipped entirely.

Methods

String

output_phase() static

bool

should_handle(summary: Dictionary) static

void

handle(context: HEGoOutputContext) static


Constants

LOG_CATEGORY = "terrain3d" 🔗

Category this file logs under, shown in the session panel filter.

SPAWN_ATTRIB = "hegot3d_spawn_terrain" 🔗

Attributes read off the height layer.

DATA_DIRECTORY_ATTRIB = "hegot3d_data_directory" 🔗

There is currently no description for this constant. Please help us by contributing one!

NODE_PATH_ATTRIB = "hegot3d_node_path" 🔗

There is currently no description for this constant. Please help us by contributing one!

REGION_SIZE_ATTRIB = "hegot3d_region_size" 🔗

There is currently no description for this constant. Please help us by contributing one!

REGION_MAP_LAYER = "hegot3d_region_map" 🔗

Optional layers.

HOLE_LAYER = "hegot3d_hole" 🔗

There is currently no description for this constant. Please help us by contributing one!

COLOR_LAYERS = {"b": "hegot3d_color_map_b", "g": "hegot3d_color_map_g", "r": "hegot3d_color_map_r", "roughness": "hegot3d_color_map_roughness"} 🔗

There is currently no description for this constant. Please help us by contributing one!

REQUESTED_ATTRIBS = ["hegot3d_spawn_terrain", "hegot3d_data_directory", "hegot3d_node_path", "hegot3d_region_size", "hegot3d_albedo_texture", "hegot3d_normal_texture", "hegot3d_ao_strength", "hegot3d_detiling_rotation", "hegot3d_detiling_shift", "hegot3d_id", "hegot3d_name", "hegot3d_normal_depth", "hegot3d_roughness", "hegot3d_uv_scale"] 🔗

Attributes requested from the heightfield fetch.

DEFAULT_NODE_PATH = "Terrain3D" 🔗

Default node name and region size when the HDA does not specify them.

DEFAULT_REGION_SIZE = 256 🔗

There is currently no description for this constant. Please help us by contributing one!

EXPECTED_HEIGHTFIELD_ROTATION = Vector3(-90, -90, 0) 🔗

Rotation a Houdini heightfield is expected to have for the axis correction to hold.

ROTATION_TOLERANCE = 0.5 🔗

There is currently no description for this constant. Please help us by contributing one!

UPDATE_MAPS_HEIGHT_AND_CONTROL = 3 🔗

Terrain3DData.update_maps map type mask: height and control.


Method Descriptions

String output_phase() static 🔗

Name of the cook phase this handler is timed under.


bool should_handle(summary: Dictionary) static 🔗

Whether the cook produced heightfield volumes, and Terrain3D is there to receive them.


void handle(context: HEGoOutputContext) static 🔗

Fetches the cook’s heightfield layers and builds the terrain.


Class Registration

  • Kind: GDScript class

  • Script: res://addons/hego/node3d/hego_terrain3d_output.gd