From 1298aa9cf3d2a2719f1eae24d154ffa258ae2178 Mon Sep 17 00:00:00 2001 From: Illauriel Date: Tue, 13 Aug 2024 01:27:09 +0200 Subject: [PATCH] Updated docs for VoxelTool class family --- doc/classes/VoxelTool.xml | 25 +++++++++++--- doc/classes/VoxelToolLodTerrain.xml | 2 ++ doc/classes/VoxelToolTerrain.xml | 1 + doc/source/api/VoxelTool.md | 48 +++++++++++++++------------ doc/source/api/VoxelToolLodTerrain.md | 37 +++++++++++++-------- doc/source/api/VoxelToolTerrain.md | 4 +-- 6 files changed, 75 insertions(+), 42 deletions(-) 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_