diff --git a/doc/classes/VoxelTool.xml b/doc/classes/VoxelTool.xml
index 3e9c22c6d..6e3209a2c 100644
--- a/doc/classes/VoxelTool.xml
+++ b/doc/classes/VoxelTool.xml
@@ -41,7 +41,10 @@
- Operate on a rectangular cuboid section of the terrain. [code]begin[/code] and [code]end[/code] are inclusive. Choose operation and which voxel to use by setting [code]value[/code] and [code]mode[/code] before calling this function.
+ Operate on a rectangular cuboid section of the terrain. [code]begin[/code] and [code]end[/code] are inclusive.
+ You must choose operation by setting [code]mode[/code] and set parameters relevant to the type of tool before calling this function.
+ If working with blocky terrain, you can choose which voxel to use by setting [member value].
+ If working with smooth terrain, use [member sdf_scale] and [member sdf_strength] in [constant VoxelTool.MODE_ADD] or [constant VoxelTool.MODE_REMOVE]. See also [constant VoxelTool.MODE_TEXTURE_PAINT].
@@ -49,12 +52,14 @@
+ Performs an edit similar to `do_sphere` along a spline defined by `points`.
+ Used to edit single voxels. More useful with Blocky terrain, and might not look nice if editing [VoxelBuffer.CHANNEL_SDF].
@@ -62,18 +67,21 @@
+ Operate on all voxels in `radius` around `point`. See also [method do_box].
+ Gets data from voxel at `pos` coordinates as an unsigned integer. This is an encoded value, so non-integer values may be obtained by converting it. The kind of data you get depends on [member channel] the tool is set to.
+ Returns data from voxel at `pos` coordinates as float. If set to operate on [constant VoxelBuffer.CHANNEL_SDF] returns the voxel's SDF value.
@@ -100,12 +108,14 @@
+ Returns false if the blocks within `box` are not fully loaded. Not implemented in this class, because it only makes sense if editing with [VoxelToolTerrain] or [VoxelToolLodTerrain]
+ A helper method to set the sum of channels of the `Color` to 1.
@@ -230,7 +240,7 @@
Set which channel will be edited. When used on a terrain node, it will default to the first available channel, based on the stream and generator.
- Sets which value will be used to erase voxels when editing the [constant VoxelBuffer.CHANNEL_TYPE] channel in [constant MODE_REMOVE] mode.
+ Sets which value will be used to erase voxels when editing the [constant VoxelBuffer.CHANNEL_TYPE] channel in [constant MODE_REMOVE] mode. Only relevant for Blocky voxels.
Sets how [code]do_*[/code] functions will behave. This may vary depending on the channel.
@@ -240,13 +250,17 @@
This is related to the [enum VoxelBuffer.Depth] configuration on voxels. For 8-bit and 16-bit, there is a limited range of values the Signed Distance Field can take, and by default it is clamped to -1..1, so the gradient can only range across 2 voxels. But when LOD is used, it is better to stretch that range over a longer distance, and this is achieved by scaling SDF values.
-
+
+ When editing [constant VoxelBuffer.CHANNEL_SDF] of Smooth Terrains in [constant VoxelTool.MODE_ADD] or [constant VoxelTool.MODE_REMOVE] determines the interpolation phase between current values and values set by the tool. Effectively represents the amount of "matter" added or subtracted.
-
+
+ Range [0.001..1.0]. Determines texture blending strength when tool is set to [constant VoxelTool.MODE_TEXTURE_PAINT]. Lower values produce sharper transitions. Can be compared to brush softness in an image editing program.
+ Determines which texture's weights will be edited when tool is set to [constant VoxelTool.MODE_TEXTURE_PAINT].
-
+
+ Range [0.0..1.0]. Determines the maximum weight of a [member texture_index] when tool is set to [constant VoxelTool.MODE_TEXTURE_PAINT]. Can be compared to brush opacity in an image editing program.
Sets which voxel value will be used. This is not relevant when editing [constant VoxelBuffer.CHANNEL_SDF].
@@ -263,6 +277,7 @@
Replace voxel values without any blending. Useful for blocky voxels.
+ When editing [constant VoxelBuffer.CHANNEL_SDF] in Smooth Terrain, enables texture painting. The value of [member texture_index] will be added to texture indices of the affected voxels. The texture's weight will be blended based on the values of [member texture_falloff] and [member texture_opacity].
diff --git a/doc/classes/VoxelToolLodTerrain.xml b/doc/classes/VoxelToolLodTerrain.xml
index cf49a3dd5..2669459d0 100644
--- a/doc/classes/VoxelToolLodTerrain.xml
+++ b/doc/classes/VoxelToolLodTerrain.xml
@@ -16,6 +16,7 @@
+ Allows using a [VoxelGeneratorGraph] as a brush, which opens possibility for various advanced scenarios. See [related article](../Generators.md#using-voxelgeneratorgraph-as-a-brush).
@@ -25,6 +26,7 @@
+ See [method VoxelToolTerrain.do_hemisphere].
diff --git a/doc/classes/VoxelToolTerrain.xml b/doc/classes/VoxelToolTerrain.xml
index 6427a9bd2..91cf07807 100644
--- a/doc/classes/VoxelToolTerrain.xml
+++ b/doc/classes/VoxelToolTerrain.xml
@@ -17,6 +17,7 @@
+ Operates on a hemisphe, where the "dome" part's summit is pointed in `flat_direction`. `smoothness` determines how the flat part blends with the rounded part, with higher values producing softer more rounded edge.
diff --git a/doc/source/api/VoxelTool.md b/doc/source/api/VoxelTool.md
index 4ac365dbf..9ea29b2ea 100644
--- a/doc/source/api/VoxelTool.md
+++ b/doc/source/api/VoxelTool.md
@@ -23,10 +23,10 @@ Type | Name
[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [eraser_value](#i_eraser_value) |
[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [mode](#i_mode) |
[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [sdf_scale](#i_sdf_scale) |
-[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [sdf_strength](#i_sdf_strength) |
-[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [texture_falloff](#i_texture_falloff) |
+[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [sdf_strength](#i_sdf_strength) | 1.0
+[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [texture_falloff](#i_texture_falloff) | 0.5
[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [texture_index](#i_texture_index) |
-[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [texture_opacity](#i_texture_opacity) |
+[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [texture_opacity](#i_texture_opacity) | 1.0
[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [value](#i_value) |
@@ -68,7 +68,7 @@ enum **Mode**:
- **MODE_ADD** = **0** --- When editing [VoxelBuffer.CHANNEL_SDF](VoxelBuffer.md#i_CHANNEL_SDF), will add matter. Useful for building.
- **MODE_REMOVE** = **1** --- When editing [VoxelBuffer.CHANNEL_SDF](VoxelBuffer.md#i_CHANNEL_SDF), will subtract matter. Useful for digging.
- **MODE_SET** = **2** --- Replace voxel values without any blending. Useful for blocky voxels.
-- **MODE_TEXTURE_PAINT** = **3**
+- **MODE_TEXTURE_PAINT** = **3** --- When editing [VoxelBuffer.CHANNEL_SDF](VoxelBuffer.md#i_CHANNEL_SDF) in Smooth Terrain, enables texture painting. The value of [VoxelTool.texture_index](VoxelTool.md#i_texture_index) will be added to texture indices of the affected voxels. The texture's weight will be blended based on the values of [VoxelTool.texture_falloff](VoxelTool.md#i_texture_falloff) and [VoxelTool.texture_opacity](VoxelTool.md#i_texture_opacity).
## Property Descriptions
@@ -79,7 +79,7 @@ Set which channel will be edited. When used on a terrain node, it will default t
### [int](https://docs.godotengine.org/en/stable/classes/class_int.html) **eraser_value**
-Sets which value will be used to erase voxels when editing the [VoxelBuffer.CHANNEL_TYPE](VoxelBuffer.md#i_CHANNEL_TYPE) channel in [VoxelTool.MODE_REMOVE](VoxelTool.md#i_MODE_REMOVE) mode.
+Sets which value will be used to erase voxels when editing the [VoxelBuffer.CHANNEL_TYPE](VoxelBuffer.md#i_CHANNEL_TYPE) channel in [VoxelTool.MODE_REMOVE](VoxelTool.md#i_MODE_REMOVE) mode. Only relevant for Blocky voxels.
### [int](https://docs.godotengine.org/en/stable/classes/class_int.html) **mode**
@@ -92,21 +92,21 @@ When working with smooth voxels, applies a scale to the signed distance field. A
This is related to the [VoxelBuffer.Depth](VoxelBuffer.md#enumerations) configuration on voxels. For 8-bit and 16-bit, there is a limited range of values the Signed Distance Field can take, and by default it is clamped to -1..1, so the gradient can only range across 2 voxels. But when LOD is used, it is better to stretch that range over a longer distance, and this is achieved by scaling SDF values.
-### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **sdf_strength**
+### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **sdf_strength** = 1.0
-*(This property has no documentation)*
+When editing [VoxelBuffer.CHANNEL_SDF](VoxelBuffer.md#i_CHANNEL_SDF) of Smooth Terrains in [VoxelTool.MODE_ADD](VoxelTool.md#i_MODE_ADD) or [VoxelTool.MODE_REMOVE](VoxelTool.md#i_MODE_REMOVE) determines the interpolation phase between current values and values set by the tool. Effectively represents the amount of "matter" added or subtracted.
-### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **texture_falloff**
+### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **texture_falloff** = 0.5
-*(This property has no documentation)*
+Range [0.001..1.0]. Determines texture blending strength when tool is set to [VoxelTool.MODE_TEXTURE_PAINT](VoxelTool.md#i_MODE_TEXTURE_PAINT). Lower values produce sharper transitions. Can be compared to brush softness in an image editing program.
### [int](https://docs.godotengine.org/en/stable/classes/class_int.html) **texture_index**
-*(This property has no documentation)*
+Determines which texture's weights will be edited when tool is set to [VoxelTool.MODE_TEXTURE_PAINT](VoxelTool.md#i_MODE_TEXTURE_PAINT).
-### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **texture_opacity**
+### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **texture_opacity** = 1.0
-*(This property has no documentation)*
+Range [0.0..1.0]. Determines the maximum weight of a [VoxelTool.texture_index](VoxelTool.md#i_texture_index) when tool is set to [VoxelTool.MODE_TEXTURE_PAINT](VoxelTool.md#i_MODE_TEXTURE_PAINT). Can be compared to brush opacity in an image editing program.
### [int](https://docs.godotengine.org/en/stable/classes/class_int.html) **value**
@@ -132,27 +132,33 @@ Copies voxels in a box and stores them in the passed buffer.
### [void](#) **do_box**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) begin, [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) end )
-Operate on a rectangular cuboid section of the terrain. `begin` and `end` are inclusive. Choose operation and which voxel to use by setting `value` and `mode` before calling this function.
+Operate on a rectangular cuboid section of the terrain. `begin` and `end` are inclusive.
+
+You must choose operation by setting `mode` and set parameters relevant to the type of tool before calling this function.
+
+If working with blocky terrain, you can choose which voxel to use by setting [VoxelTool.value](VoxelTool.md#i_value).
+
+If working with smooth terrain, use [VoxelTool.sdf_scale](VoxelTool.md#i_sdf_scale) and [VoxelTool.sdf_strength](VoxelTool.md#i_sdf_strength) in [VoxelTool.MODE_ADD](VoxelTool.md#i_MODE_ADD) or [VoxelTool.MODE_REMOVE](VoxelTool.md#i_MODE_REMOVE). See also [VoxelTool.MODE_TEXTURE_PAINT](VoxelTool.md#i_MODE_TEXTURE_PAINT).
### [void](#) **do_path**( [PackedVector3Array](https://docs.godotengine.org/en/stable/classes/class_packedvector3array.html) points, [PackedFloat32Array](https://docs.godotengine.org/en/stable/classes/class_packedfloat32array.html) radii )
-*(This method has no documentation)*
+Performs an edit similar to `do_sphere` along a spline defined by `points`.
### [void](#) **do_point**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) pos )
-*(This method has no documentation)*
+Used to edit single voxels. More useful with Blocky terrain, and might not look nice if editing [VoxelBuffer.CHANNEL_SDF](https://docs.godotengine.org/en/stable/classes/class_voxelbuffer.channel_sdf.html).
### [void](#) **do_sphere**( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius )
-*(This method has no documentation)*
+Operate on all voxels in `radius` around `point`. See also [VoxelTool.do_box](VoxelTool.md#i_do_box).
### [int](https://docs.godotengine.org/en/stable/classes/class_int.html) **get_voxel**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) pos )
-*(This method has no documentation)*
+Gets data from voxel at `pos` coordinates as an unsigned integer. This is an encoded value, so non-integer values may be obtained by converting it. The kind of data you get depends on [VoxelTool.channel](VoxelTool.md#i_channel) the tool is set to.
### [float](https://docs.godotengine.org/en/stable/classes/class_float.html) **get_voxel_f**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) pos )
-*(This method has no documentation)*
+Returns data from voxel at `pos` coordinates as float. If set to operate on [VoxelBuffer.CHANNEL_SDF](VoxelBuffer.md#i_CHANNEL_SDF) returns the voxel's SDF value.
### [Variant](https://docs.godotengine.org/en/stable/classes/class_variant.html) **get_voxel_metadata**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) pos )
@@ -174,11 +180,11 @@ Note 2: This is meant to be analogous to Surface tool from Unreal Engine Voxel P
### [bool](https://docs.godotengine.org/en/stable/classes/class_bool.html) **is_area_editable**( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) box )
-*(This method has no documentation)*
+Returns false if the blocks within `box` are not fully loaded. Not implemented in this class, because it only makes sense if editing with [VoxelToolTerrain](VoxelToolTerrain.md) or [VoxelToolLodTerrain](VoxelToolLodTerrain.md)
### [Color](https://docs.godotengine.org/en/stable/classes/class_color.html) **normalize_color**( [Color](https://docs.godotengine.org/en/stable/classes/class_color.html) _unnamed_arg0 )
-*(This method has no documentation)*
+A helper method to set the sum of channels of the `Color` to 1.
### [void](#) **paste**( [Vector3i](https://docs.godotengine.org/en/stable/classes/class_vector3i.html) dst_pos, [VoxelBuffer](VoxelBuffer.md) src_buffer, [int](https://docs.godotengine.org/en/stable/classes/class_int.html) channels_mask )
@@ -264,4 +270,4 @@ Decodes raw voxel integer data from the WEIGHTS channel into a normalized 4-floa
Encodes a 4-integer vector into 16-bit integer voxel data, for use in the INDICES channel.
-_Generated on Apr 06, 2024_
+_Generated on Aug 12, 2024_
diff --git a/doc/source/api/VoxelToolLodTerrain.md b/doc/source/api/VoxelToolLodTerrain.md
index b356df03f..e2cbe7e08 100644
--- a/doc/source/api/VoxelToolLodTerrain.md
+++ b/doc/source/api/VoxelToolLodTerrain.md
@@ -13,27 +13,28 @@ It's not a class to instantiate alone, you may get it from [VoxelLodTerrain](Vox
## Methods:
-Return | Signature
-------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-[void](#) | [do_graph](#i_do_graph) ( [VoxelGeneratorGraph](VoxelGeneratorGraph.md) graph, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) area_size )
-[void](#) | [do_hemisphere](#i_do_hemisphere) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) flat_direction, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) smoothness=0.0 )
-[void](#) | [do_sphere_async](#i_do_sphere_async) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius )
-[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [get_raycast_binary_search_iterations](#i_get_raycast_binary_search_iterations) ( ) const
-[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [get_voxel_f_interpolated](#i_get_voxel_f_interpolated) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) position ) const
-[Array](https://docs.godotengine.org/en/stable/classes/class_array.html) | [separate_floating_chunks](#i_separate_floating_chunks) ( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) box, [Node](https://docs.godotengine.org/en/stable/classes/class_node.html) parent_node )
-[void](#) | [set_raycast_binary_search_iterations](#i_set_raycast_binary_search_iterations) ( [int](https://docs.godotengine.org/en/stable/classes/class_int.html) iterations )
-[void](#) | [stamp_sdf](#i_stamp_sdf) ( [VoxelMeshSDF](VoxelMeshSDF.md) mesh_sdf, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) isolevel, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) sdf_scale )
+Return | Signature
+------------------------------------------------------------------------- | -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+[void](#) | [do_graph](#i_do_graph) ( [VoxelGeneratorGraph](VoxelGeneratorGraph.md) graph, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) area_size )
+[void](#) | [do_hemisphere](#i_do_hemisphere) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) flat_direction, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) smoothness=0.0 )
+[void](#) | [do_sphere_async](#i_do_sphere_async) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius )
+[int](https://docs.godotengine.org/en/stable/classes/class_int.html) | [get_raycast_binary_search_iterations](#i_get_raycast_binary_search_iterations) ( ) const
+[float](https://docs.godotengine.org/en/stable/classes/class_float.html) | [get_voxel_f_interpolated](#i_get_voxel_f_interpolated) ( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) position ) const
+[void](#) | [run_blocky_random_tick](#i_run_blocky_random_tick) ( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) area, [int](https://docs.godotengine.org/en/stable/classes/class_int.html) voxel_count, [Callable](https://docs.godotengine.org/en/stable/classes/class_callable.html) callback, [int](https://docs.godotengine.org/en/stable/classes/class_int.html) batch_count=16 )
+[Array](https://docs.godotengine.org/en/stable/classes/class_array.html) | [separate_floating_chunks](#i_separate_floating_chunks) ( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) box, [Node](https://docs.godotengine.org/en/stable/classes/class_node.html) parent_node )
+[void](#) | [set_raycast_binary_search_iterations](#i_set_raycast_binary_search_iterations) ( [int](https://docs.godotengine.org/en/stable/classes/class_int.html) iterations )
+[void](#) | [stamp_sdf](#i_stamp_sdf) ( [VoxelMeshSDF](VoxelMeshSDF.md) mesh_sdf, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) isolevel, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) sdf_scale )
## Method Descriptions
### [void](#) **do_graph**( [VoxelGeneratorGraph](VoxelGeneratorGraph.md) graph, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) area_size )
-*(This method has no documentation)*
+Allows using a [VoxelGeneratorGraph](VoxelGeneratorGraph.md) as a brush, which opens possibility for various advanced scenarios. See [related article](../Generators.md#using-voxelgeneratorgraph-as-a-brush).
### [void](#) **do_hemisphere**( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) flat_direction, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) smoothness=0.0 )
-*(This method has no documentation)*
+See [VoxelToolTerrain.do_hemisphere](VoxelToolTerrain.md#i_do_hemisphere).
### [void](#) **do_sphere_async**( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius )
@@ -47,6 +48,10 @@ Return | Sign
*(This method has no documentation)*
+### [void](#) **run_blocky_random_tick**( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) area, [int](https://docs.godotengine.org/en/stable/classes/class_int.html) voxel_count, [Callable](https://docs.godotengine.org/en/stable/classes/class_callable.html) callback, [int](https://docs.godotengine.org/en/stable/classes/class_int.html) batch_count=16 )
+
+*(This method has no documentation)*
+
### [Array](https://docs.godotengine.org/en/stable/classes/class_array.html) **separate_floating_chunks**( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) box, [Node](https://docs.godotengine.org/en/stable/classes/class_node.html) parent_node )
Turns floating voxels into RigidBodies.
@@ -57,10 +62,14 @@ This algorithm can become expensive quickly, so the box should not be too big. A
### [void](#) **set_raycast_binary_search_iterations**( [int](https://docs.godotengine.org/en/stable/classes/class_int.html) iterations )
-*(This method has no documentation)*
+Picks random voxels within the specified area and executes a function on them. This only works for terrains using [VoxelMesherBlocky](VoxelMesherBlocky.md). Only voxels where [Voxel.random_tickable](https://docs.godotengine.org/en/stable/classes/class_voxel.html#class-voxel-property-random-tickable) is `true` will be picked.
+
+The given callback takes two arguments: voxel position (Vector3i), voxel value (int).
+
+Only voxels at LOD 0 will be considered.
### [void](#) **stamp_sdf**( [VoxelMeshSDF](VoxelMeshSDF.md) mesh_sdf, [Transform3D](https://docs.godotengine.org/en/stable/classes/class_transform3d.html) transform, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) isolevel, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) sdf_scale )
*(This method has no documentation)*
-_Generated on Apr 06, 2024_
+_Generated on Aug 12, 2024_
diff --git a/doc/source/api/VoxelToolTerrain.md b/doc/source/api/VoxelToolTerrain.md
index 77b3ffbb8..5337a8810 100644
--- a/doc/source/api/VoxelToolTerrain.md
+++ b/doc/source/api/VoxelToolTerrain.md
@@ -24,7 +24,7 @@ Return | Signature
### [void](#) **do_hemisphere**( [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) center, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) radius, [Vector3](https://docs.godotengine.org/en/stable/classes/class_vector3.html) flat_direction, [float](https://docs.godotengine.org/en/stable/classes/class_float.html) smoothness=0.0 )
-*(This method has no documentation)*
+Operates on a hemisphe, where the "dome" part's summit is pointed in `flat_direction`. `smoothness` determines how the flat part blends with the rounded part, with higher values producing softer more rounded edge.
### [void](#) **for_each_voxel_metadata_in_area**( [AABB](https://docs.godotengine.org/en/stable/classes/class_aabb.html) voxel_area, [Callable](https://docs.godotengine.org/en/stable/classes/class_callable.html) callback )
@@ -40,4 +40,4 @@ Picks random voxels within the specified area and executes a function on them. T
The given callback takes two arguments: voxel position (Vector3i), voxel value (int).
-_Generated on Apr 06, 2024_
+_Generated on Aug 12, 2024_