Table of Contents

Class HeightMapShape3D

Namespace
Godot
Assembly
GodotSharp.dll

A 3D heightmap shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D. This is useful for terrain, but it is limited as overhangs (such as caves) cannot be stored. Holes in a HeightMapShape3D are created by assigning very low values to points in the desired area.

Performance: HeightMapShape3D is faster to check collisions against than ConcavePolygonShape3D, but it is significantly slower than primitive shapes like BoxShape3D.

A heightmap collision shape can also be build by using an Image reference:

public class HeightMapShape3D : Shape3D, IDisposable
Inheritance
HeightMapShape3D
Implements
Inherited Members

Constructors

HeightMapShape3D()

public HeightMapShape3D()

Properties

MapData

Height map data. The array's size must be equal to MapWidth multiplied by MapDepth.

public float[] MapData { get; set; }

Property Value

float[]

MapDepth

Number of vertices in the depth of the height map. Changing this will resize the MapData.

public int MapDepth { get; set; }

Property Value

int

MapWidth

Number of vertices in the width of the height map. Changing this will resize the MapData.

public int MapWidth { get; set; }

Property Value

int

Methods

GetMaxHeight()

Returns the largest height value found in MapData. Recalculates only when MapData changes.

public float GetMaxHeight()

Returns

float

GetMinHeight()

Returns the smallest height value found in MapData. Recalculates only when MapData changes.

public float GetMinHeight()

Returns

float

HasGodotClassMethod(in godot_string_name)

Check if the type contains a method with the given name. This method is used by Godot to check if a method exists before invoking it. Do not call or override this method.

protected override bool HasGodotClassMethod(in godot_string_name method)

Parameters

method godot_string_name

Name of the method to check for.

Returns

bool

HasGodotClassSignal(in godot_string_name)

Check if the type contains a signal with the given name. This method is used by Godot to check if a signal exists before raising it. Do not call or override this method.

protected override bool HasGodotClassSignal(in godot_string_name signal)

Parameters

signal godot_string_name

Name of the signal to check for.

Returns

bool

InvokeGodotClassMethod(in godot_string_name, NativeVariantPtrArgs, out godot_variant)

Invokes the method with the given name, using the given arguments. This method is used by Godot to invoke methods from the engine side. Do not call or override this method.

protected override bool InvokeGodotClassMethod(in godot_string_name method, NativeVariantPtrArgs args, out godot_variant ret)

Parameters

method godot_string_name

Name of the method to invoke.

args NativeVariantPtrArgs

Arguments to use with the invoked method.

ret godot_variant

Value returned by the invoked method.

Returns

bool

UpdateMapDataFromImage(Image, float, float)

Updates MapData with data read from an Image reference. Automatically resizes heightmap MapWidth and MapDepth to fit the full image width and height.

The image needs to be in either Rf (32 bit), Rh (16 bit), or R8 (8 bit).

Each image pixel is read in as a float on the range from 0.0 (black pixel) to 1.0 (white pixel). This range value gets remapped to heightMin and heightMax to form the final height value.

public void UpdateMapDataFromImage(Image image, float heightMin, float heightMax)

Parameters

image Image
heightMin float
heightMax float