mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
686 lines
73 KiB
ReStructuredText
686 lines
73 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. _class_SurfaceTool:
|
||
|
||
SurfaceTool
|
||
===========
|
||
|
||
**Наследует:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
|
||
|
||
Вспомогательный инструмент для создания геометрии.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Описание
|
||
----------------
|
||
|
||
**SurfaceTool** используется для построения :ref:`Mesh<class_Mesh>` путем указания атрибутов вершин по отдельности. Его можно использовать для построения :ref:`Mesh<class_Mesh>` из скрипта. Все свойства, кроме индексов, необходимо добавить до вызова :ref:`add_vertex()<class_SurfaceTool_method_add_vertex>`. Например, чтобы добавить цвета вершин и UV:
|
||
|
||
|
||
.. tabs::
|
||
|
||
.. code-tab:: gdscript
|
||
|
||
var st = SurfaceTool.new()
|
||
st.begin(Mesh.PRIMITIVE_TRIANGLES)
|
||
st.set_color(Color(1, 0, 0))
|
||
st.set_uv(Vector2(0, 0))
|
||
st.add_vertex(Vector3(0, 0, 0))
|
||
|
||
.. code-tab:: csharp
|
||
|
||
var st = new SurfaceTool();
|
||
st.Begin(Mesh.PrimitiveType.Triangles);
|
||
st.SetColor(new Color(1, 0, 0));
|
||
st.SetUV(new Vector2(0, 0));
|
||
st.AddVertex(new Vector3(0, 0, 0));
|
||
|
||
|
||
|
||
Вышеуказанный **SurfaceTool** теперь содержит одну вершину треугольника, которая имеет координату UV и указанный :ref:`Color<class_Color>`. Если бы была добавлена другая вершина без вызова :ref:`set_uv()<class_SurfaceTool_method_set_uv>` или :ref:`set_color()<class_SurfaceTool_method_set_color>`, то использовались бы последние значения.
|
||
|
||
Атрибуты вершины должны быть переданы **перед** вызовом :ref:`add_vertex()<class_SurfaceTool_method_add_vertex>`. Невыполнение этого требования приведет к ошибке при фиксации информации о вершине в сетке.
|
||
|
||
Кроме того, атрибуты, используемые до добавления первой вершины, определяют формат сетки. Например, если вы добавляете UV только к первой вершине, вы не можете добавить цвет ни к одной из последующих вершин.
|
||
|
||
См. также :ref:`ArrayMesh<class_ArrayMesh>`, :ref:`ImmediateMesh<class_ImmediateMesh>` и :ref:`MeshDataTool<class_MeshDataTool>` для процедурной генерации геометрии.
|
||
|
||
\ **Примечание:** Годо использует `порядок намотки <https://learnopengl.com/Advanced-OpenGL/Face-culling>`__ по часовой стрелке для передних граней примитивных режимов треугольника.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Обучающие материалы
|
||
--------------------------------------
|
||
|
||
- :doc:`Использование SurfaceTool <../tutorials/3d/procedural_geometry/surfacetool>`
|
||
|
||
- `Демоверсия 3D вокселей <https://godotengine.org/asset-library/asset/2755>`__
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Методы
|
||
------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_index<class_SurfaceTool_method_add_index>`\ (\ index\: :ref:`int<class_int>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_triangle_fan<class_SurfaceTool_method_add_triangle_fan>`\ (\ vertices\: :ref:`PackedVector3Array<class_PackedVector3Array>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), colors\: :ref:`PackedColorArray<class_PackedColorArray>` = PackedColorArray(), uv2s\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), normals\: :ref:`PackedVector3Array<class_PackedVector3Array>` = PackedVector3Array(), tangents\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] = []\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`add_vertex<class_SurfaceTool_method_add_vertex>`\ (\ vertex\: :ref:`Vector3<class_Vector3>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`append_from<class_SurfaceTool_method_append_from>`\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`begin<class_SurfaceTool_method_begin>`\ (\ primitive\: :ref:`PrimitiveType<enum_Mesh_PrimitiveType>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`clear<class_SurfaceTool_method_clear>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`ArrayMesh<class_ArrayMesh>` | :ref:`commit<class_SurfaceTool_method_commit>`\ (\ existing\: :ref:`ArrayMesh<class_ArrayMesh>` = null, flags\: :ref:`int<class_int>` = 0\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Array<class_Array>` | :ref:`commit_to_arrays<class_SurfaceTool_method_commit_to_arrays>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`create_from<class_SurfaceTool_method_create_from>`\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`create_from_arrays<class_SurfaceTool_method_create_from_arrays>`\ (\ arrays\: :ref:`Array<class_Array>`, primitive_type\: :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` = 3\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`create_from_blend_shape<class_SurfaceTool_method_create_from_blend_shape>`\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`, blend_shape\: :ref:`String<class_String>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`deindex<class_SurfaceTool_method_deindex>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedInt32Array<class_PackedInt32Array>` | :ref:`generate_lod<class_SurfaceTool_method_generate_lod>`\ (\ nd_threshold\: :ref:`float<class_float>`, target_index_count\: :ref:`int<class_int>` = 3\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`generate_normals<class_SurfaceTool_method_generate_normals>`\ (\ flip\: :ref:`bool<class_bool>` = false\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`generate_tangents<class_SurfaceTool_method_generate_tangents>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`AABB<class_AABB>` | :ref:`get_aabb<class_SurfaceTool_method_get_aabb>`\ (\ ) |const| |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` | :ref:`get_custom_format<class_SurfaceTool_method_get_custom_format>`\ (\ channel_index\: :ref:`int<class_int>`\ ) |const| |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` | :ref:`get_primitive_type<class_SurfaceTool_method_get_primitive_type>`\ (\ ) |const| |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>` | :ref:`get_skin_weight_count<class_SurfaceTool_method_get_skin_weight_count>`\ (\ ) |const| |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`index<class_SurfaceTool_method_index>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`optimize_indices_for_cache<class_SurfaceTool_method_optimize_indices_for_cache>`\ (\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_bones<class_SurfaceTool_method_set_bones>`\ (\ bones\: :ref:`PackedInt32Array<class_PackedInt32Array>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_color<class_SurfaceTool_method_set_color>`\ (\ color\: :ref:`Color<class_Color>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_custom<class_SurfaceTool_method_set_custom>`\ (\ channel_index\: :ref:`int<class_int>`, custom_color\: :ref:`Color<class_Color>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_custom_format<class_SurfaceTool_method_set_custom_format>`\ (\ channel_index\: :ref:`int<class_int>`, format\: :ref:`CustomFormat<enum_SurfaceTool_CustomFormat>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_material<class_SurfaceTool_method_set_material>`\ (\ material\: :ref:`Material<class_Material>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_normal<class_SurfaceTool_method_set_normal>`\ (\ normal\: :ref:`Vector3<class_Vector3>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_skin_weight_count<class_SurfaceTool_method_set_skin_weight_count>`\ (\ count\: :ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_smooth_group<class_SurfaceTool_method_set_smooth_group>`\ (\ index\: :ref:`int<class_int>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_tangent<class_SurfaceTool_method_set_tangent>`\ (\ tangent\: :ref:`Plane<class_Plane>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_uv<class_SurfaceTool_method_set_uv>`\ (\ uv\: :ref:`Vector2<class_Vector2>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_uv2<class_SurfaceTool_method_set_uv2>`\ (\ uv2\: :ref:`Vector2<class_Vector2>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`set_weights<class_SurfaceTool_method_set_weights>`\ (\ weights\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`\ ) |
|
||
+----------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Перечисления
|
||
------------------------
|
||
|
||
.. _enum_SurfaceTool_CustomFormat:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **CustomFormat**: :ref:`🔗<enum_SurfaceTool_CustomFormat>`
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RGBA8_UNORM:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RGBA8_UNORM** = ``0``
|
||
|
||
Ограничивает диапазон данных, передаваемых в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, беззнаковыми нормализованными значениями от 0 до 1, хранящимися в 8 битах на канал. См. :ref:`Mesh.ARRAY_CUSTOM_RGBA8_UNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_UNORM>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RGBA8_SNORM:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RGBA8_SNORM** = ``1``
|
||
|
||
Ограничивает диапазон данных, передаваемых в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, до нормализованных со знаком от -1 до 1, хранящихся в 8 битах на канал. См. :ref:`Mesh.ARRAY_CUSTOM_RGBA8_SNORM<class_Mesh_constant_ARRAY_CUSTOM_RGBA8_SNORM>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RG_HALF:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RG_HALF** = ``2``
|
||
|
||
Сохраняет данные, переданные в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, как числа с плавающей точкой половинной точности (half precision float) и использует только каналы красного и зеленого цветов. См. :ref:`Mesh.ARRAY_CUSTOM_RG_HALF<class_Mesh_constant_ARRAY_CUSTOM_RG_HALF>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RGBA_HALF:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RGBA_HALF** = ``3``
|
||
|
||
Сохраняет данные, переданные в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, как числа с плавающей точкой половинной точности (half precision float) и использует все цветовые каналы. См. :ref:`Mesh.ARRAY_CUSTOM_RGBA_HALF<class_Mesh_constant_ARRAY_CUSTOM_RGBA_HALF>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_R_FLOAT:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_R_FLOAT** = ``4``
|
||
|
||
Сохраняет данные, переданные в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, как числа с плавающей точкой полной точности (full precision float) и использует только красный цветовой канал. См. :ref:`Mesh.ARRAY_CUSTOM_R_FLOAT<class_Mesh_constant_ARRAY_CUSTOM_R_FLOAT>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RG_FLOAT:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RG_FLOAT** = ``5``
|
||
|
||
Сохраняет данные, переданные в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, как числа с плавающей точкой полной точности (full precision float) и использует только каналы красного и зеленого цветов. См. :ref:`Mesh.ARRAY_CUSTOM_RG_FLOAT<class_Mesh_constant_ARRAY_CUSTOM_RG_FLOAT>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RGB_FLOAT:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RGB_FLOAT** = ``6``
|
||
|
||
Сохраняет данные, переданные в :ref:`set_custom()<class_SurfaceTool_method_set_custom>`, как числа с плавающей точкой полной точности (full precision float) и использует только каналы красного, зеленого и синего цвета. См. :ref:`Mesh.ARRAY_CUSTOM_RGB_FLOAT<class_Mesh_constant_ARRAY_CUSTOM_RGB_FLOAT>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_RGBA_FLOAT:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_RGBA_FLOAT** = ``7``
|
||
|
||
Сохраняет данные, переданные в ``methodset_custom``, как числа с плавающей точкой полной точности (full precision float) и использует все цветовые каналы. См. :ref:`Mesh.ARRAY_CUSTOM_RGBA_FLOAT<class_Mesh_constant_ARRAY_CUSTOM_RGBA_FLOAT>`.
|
||
|
||
.. _class_SurfaceTool_constant_CUSTOM_MAX:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **CUSTOM_MAX** = ``8``
|
||
|
||
Используется для обозначения отключенного пользовательского канала.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _enum_SurfaceTool_SkinWeightCount:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **SkinWeightCount**: :ref:`🔗<enum_SurfaceTool_SkinWeightCount>`
|
||
|
||
.. _class_SurfaceTool_constant_SKIN_4_WEIGHTS:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>` **SKIN_4_WEIGHTS** = ``0``
|
||
|
||
На каждую отдельную вершину могут влиять только 4 веса костей.
|
||
|
||
.. _class_SurfaceTool_constant_SKIN_8_WEIGHTS:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>` **SKIN_8_WEIGHTS** = ``1``
|
||
|
||
На каждую отдельную вершину может влиять до 8 весов костей.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описания метода
|
||
------------------------------
|
||
|
||
.. _class_SurfaceTool_method_add_index:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_index**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SurfaceTool_method_add_index>`
|
||
|
||
Добавляет вершину в индексный массив, если вы используете индексированные вершины. Не нужно вызывать перед добавлением вершин.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_add_triangle_fan:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_triangle_fan**\ (\ vertices\: :ref:`PackedVector3Array<class_PackedVector3Array>`, uvs\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), colors\: :ref:`PackedColorArray<class_PackedColorArray>` = PackedColorArray(), uv2s\: :ref:`PackedVector2Array<class_PackedVector2Array>` = PackedVector2Array(), normals\: :ref:`PackedVector3Array<class_PackedVector3Array>` = PackedVector3Array(), tangents\: :ref:`Array<class_Array>`\[:ref:`Plane<class_Plane>`\] = []\ ) :ref:`🔗<class_SurfaceTool_method_add_triangle_fan>`
|
||
|
||
Вставляет треугольный веер, созданный из массива данных, в создаваемую :ref:`Mesh<class_Mesh>`.
|
||
|
||
Требует, чтобы тип примитива был установлен на :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_add_vertex:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **add_vertex**\ (\ vertex\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SurfaceTool_method_add_vertex>`
|
||
|
||
Указывает положение текущей вершины. Следует вызывать после указания других свойств вершины (например, цвета, UV).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_append_from:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **append_from**\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`, transform\: :ref:`Transform3D<class_Transform3D>`\ ) :ref:`🔗<class_SurfaceTool_method_append_from>`
|
||
|
||
Добавить вершины из заданной поверхности :ref:`Mesh<class_Mesh>` в текущий массив вершин с указанным :ref:`Transform3D<class_Transform3D>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_begin:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **begin**\ (\ primitive\: :ref:`PrimitiveType<enum_Mesh_PrimitiveType>`\ ) :ref:`🔗<class_SurfaceTool_method_begin>`
|
||
|
||
Вызывается перед добавлением вершин. Принимает примитивный тип в качестве аргумента (например, :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_clear:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **clear**\ (\ ) :ref:`🔗<class_SurfaceTool_method_clear>`
|
||
|
||
Очистите всю информацию, переданную на данный момент в surface tool.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_commit:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`ArrayMesh<class_ArrayMesh>` **commit**\ (\ existing\: :ref:`ArrayMesh<class_ArrayMesh>` = null, flags\: :ref:`int<class_int>` = 0\ ) :ref:`🔗<class_SurfaceTool_method_commit>`
|
||
|
||
Возвращает сконструированный :ref:`ArrayMesh<class_ArrayMesh>` из текущей переданной информации. Если существующая :ref:`ArrayMesh<class_ArrayMesh>` передана в качестве аргумента, добавит дополнительную поверхность к существующей :ref:`ArrayMesh<class_ArrayMesh>`.
|
||
|
||
Аргумент ``flags`` может быть побитовым ИЛИ :ref:`Mesh.ARRAY_FLAG_USE_DYNAMIC_UPDATE<class_Mesh_constant_ARRAY_FLAG_USE_DYNAMIC_UPDATE>`, :ref:`Mesh.ARRAY_FLAG_USE_8_BONE_WEIGHTS<class_Mesh_constant_ARRAY_FLAG_USE_8_BONE_WEIGHTS>` или :ref:`Mesh.ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY<class_Mesh_constant_ARRAY_FLAG_USES_EMPTY_VERTEX_ARRAY>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_commit_to_arrays:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Array<class_Array>` **commit_to_arrays**\ (\ ) :ref:`🔗<class_SurfaceTool_method_commit_to_arrays>`
|
||
|
||
Фиксирует данные в том же формате, который используется :ref:`ArrayMesh.add_surface_from_arrays()<class_ArrayMesh_method_add_surface_from_arrays>`, :ref:`ImporterMesh.add_surface()<class_ImporterMesh_method_add_surface>` и :ref:`create_from_arrays()<class_SurfaceTool_method_create_from_arrays>`. Таким образом, вы можете дополнительно обрабатывать данные сетки с помощью API :ref:`ArrayMesh<class_ArrayMesh>` или :ref:`ImporterMesh<class_ImporterMesh>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_create_from:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **create_from**\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SurfaceTool_method_create_from>`
|
||
|
||
Создает массив вершин из существующего :ref:`Mesh<class_Mesh>`'а.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_create_from_arrays:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **create_from_arrays**\ (\ arrays\: :ref:`Array<class_Array>`, primitive_type\: :ref:`PrimitiveType<enum_Mesh_PrimitiveType>` = 3\ ) :ref:`🔗<class_SurfaceTool_method_create_from_arrays>`
|
||
|
||
Создает этот SurfaceTool из существующих массивов вершин, таких как возвращаемые :ref:`commit_to_arrays()<class_SurfaceTool_method_commit_to_arrays>`, :ref:`Mesh.surface_get_arrays()<class_Mesh_method_surface_get_arrays>`, :ref:`Mesh.surface_get_blend_shape_arrays()<class_Mesh_method_surface_get_blend_shape_arrays>`, :ref:`ImporterMesh.get_surface_arrays()<class_ImporterMesh_method_get_surface_arrays>` и :ref:`ImporterMesh.get_surface_blend_shape_arrays()<class_ImporterMesh_method_get_surface_blend_shape_arrays>`. ``primitive_type`` управляет типом данных сетки, по умолчанию равным :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_create_from_blend_shape:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **create_from_blend_shape**\ (\ existing\: :ref:`Mesh<class_Mesh>`, surface\: :ref:`int<class_int>`, blend_shape\: :ref:`String<class_String>`\ ) :ref:`🔗<class_SurfaceTool_method_create_from_blend_shape>`
|
||
|
||
Создает массив вершин из указанной формы смешивания (blend shape) существующей в :ref:`Mesh<class_Mesh>`. Это может быть использовано для извлечения определенной позы из формы смешивания.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_deindex:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **deindex**\ (\ ) :ref:`🔗<class_SurfaceTool_method_deindex>`
|
||
|
||
Удаляет массив индексов путем расширения массива вершин.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_generate_lod:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedInt32Array<class_PackedInt32Array>` **generate_lod**\ (\ nd_threshold\: :ref:`float<class_float>`, target_index_count\: :ref:`int<class_int>` = 3\ ) :ref:`🔗<class_SurfaceTool_method_generate_lod>`
|
||
|
||
**Устарело:** This method is unused internally, as it does not preserve normals or UVs. Consider using :ref:`ImporterMesh.generate_lods()<class_ImporterMesh_method_generate_lods>` instead.
|
||
|
||
Генерирует LOD для заданного ``nd_threshold`` в линейных единицах (квадратный корень квадратичной метрики ошибки), используя не более ``target_index_count`` индексов.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_generate_normals:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **generate_normals**\ (\ flip\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_SurfaceTool_method_generate_normals>`
|
||
|
||
Генерирует нормали из вершин, поэтому вам не придется делать это вручную. Если ``flip`` равен ``true``, результирующие нормали будут инвертированы. :ref:`generate_normals()<class_SurfaceTool_method_generate_normals>` следует вызывать *после* генерации геометрии и *до* фиксации сетки с помощью :ref:`commit()<class_SurfaceTool_method_commit>` или :ref:`commit_to_arrays()<class_SurfaceTool_method_commit_to_arrays>`. Для корректного отображения поверхностей с отображением нормалей вам также придется генерировать касательные с помощью :ref:`generate_tangents()<class_SurfaceTool_method_generate_tangents>`.
|
||
|
||
\ **Примечание:** :ref:`generate_normals()<class_SurfaceTool_method_generate_normals>` работает только в том случае, если тип примитива установлен на :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`.
|
||
|
||
\ **Примечание:** :ref:`generate_normals()<class_SurfaceTool_method_generate_normals>` учитывает группы сглаживания. Для генерации гладких нормалей установите для гладкой группы значение большее или равное ``0`` с помощью :ref:`set_smooth_group()<class_SurfaceTool_method_set_smooth_group>` или оставьте для гладкой группы значение по умолчанию ``0``. Для генерации плоских нормалей установите для гладкой группы значение ``-1`` с помощью :ref:`set_smooth_group()<class_SurfaceTool_method_set_smooth_group>` перед добавлением вершин.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_generate_tangents:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **generate_tangents**\ (\ ) :ref:`🔗<class_SurfaceTool_method_generate_tangents>`
|
||
|
||
Генерирует касательный вектор для каждой вершины. Требует, чтобы каждая вершина уже имела UV и нормали (см. :ref:`generate_normals()<class_SurfaceTool_method_generate_normals>`).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_get_aabb:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`AABB<class_AABB>` **get_aabb**\ (\ ) |const| :ref:`🔗<class_SurfaceTool_method_get_aabb>`
|
||
|
||
Возвращает выровненный по осям ограничивающий прямоугольник позиций вершин.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_get_custom_format:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`CustomFormat<enum_SurfaceTool_CustomFormat>` **get_custom_format**\ (\ channel_index\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_SurfaceTool_method_get_custom_format>`
|
||
|
||
Возвращает формат для пользовательского ``channel_index`` (в настоящее время до 4). Возвращает :ref:`CUSTOM_MAX<class_SurfaceTool_constant_CUSTOM_MAX>`, если этот пользовательский канал не используется.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_get_primitive_type:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PrimitiveType<enum_Mesh_PrimitiveType>` **get_primitive_type**\ (\ ) |const| :ref:`🔗<class_SurfaceTool_method_get_primitive_type>`
|
||
|
||
Возвращает тип геометрии сетки, например :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_get_skin_weight_count:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>` **get_skin_weight_count**\ (\ ) |const| :ref:`🔗<class_SurfaceTool_method_get_skin_weight_count>`
|
||
|
||
По умолчанию возвращает :ref:`SKIN_4_WEIGHTS<class_SurfaceTool_constant_SKIN_4_WEIGHTS>`, чтобы указать, что используются только 4 влияния костей на вершину.
|
||
|
||
Возвращает :ref:`SKIN_8_WEIGHTS<class_SurfaceTool_constant_SKIN_8_WEIGHTS>`, если используется до 8 влияний.
|
||
|
||
\ **Примечание:** Эта функция возвращает перечисление, а не точное количество весов.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_index:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **index**\ (\ ) :ref:`🔗<class_SurfaceTool_method_index>`
|
||
|
||
Сжимает массив вершин, создавая массив индексов. Это может повысить производительность, избегая повторного использования вершин.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_optimize_indices_for_cache:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **optimize_indices_for_cache**\ (\ ) :ref:`🔗<class_SurfaceTool_method_optimize_indices_for_cache>`
|
||
|
||
Оптимизирует сортировку треугольников для производительности. Требует, чтобы :ref:`get_primitive_type()<class_SurfaceTool_method_get_primitive_type>` был :ref:`Mesh.PRIMITIVE_TRIANGLES<class_Mesh_constant_PRIMITIVE_TRIANGLES>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_bones:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_bones**\ (\ bones\: :ref:`PackedInt32Array<class_PackedInt32Array>`\ ) :ref:`🔗<class_SurfaceTool_method_set_bones>`
|
||
|
||
Указывает массив костей, которые будут использоваться для *следующей* вершины. ``bones`` должен содержать 4 целых числа.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_color:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_color**\ (\ color\: :ref:`Color<class_Color>`\ ) :ref:`🔗<class_SurfaceTool_method_set_color>`
|
||
|
||
Указывает :ref:`Color<class_Color>`, который будет использоваться для *следующей* вершины. Если для каждой вершины необходимо задать эту информацию, а вы не предоставите ее для первой вершины, эта информация может вообще не использоваться.
|
||
|
||
\ **Примечание:** Материал должен иметь включенный :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>`, чтобы цвет вершины был виден.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_custom:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_custom**\ (\ channel_index\: :ref:`int<class_int>`, custom_color\: :ref:`Color<class_Color>`\ ) :ref:`🔗<class_SurfaceTool_method_set_custom>`
|
||
|
||
Устанавливает пользовательское значение для этой вершины для ``channel_index``.
|
||
|
||
\ :ref:`set_custom_format()<class_SurfaceTool_method_set_custom_format>` должен быть вызван первым для этого ``channel_index``. Форматы, которые не являются RGBA, будут игнорировать другие цветовые каналы.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_custom_format:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_custom_format**\ (\ channel_index\: :ref:`int<class_int>`, format\: :ref:`CustomFormat<enum_SurfaceTool_CustomFormat>`\ ) :ref:`🔗<class_SurfaceTool_method_set_custom_format>`
|
||
|
||
Устанавливает формат цвета для этого пользовательского ``channel_index``. Используйте :ref:`CUSTOM_MAX<class_SurfaceTool_constant_CUSTOM_MAX>` для отключения.
|
||
|
||
Должен вызываться после :ref:`begin()<class_SurfaceTool_method_begin>` и должен быть установлен до :ref:`commit()<class_SurfaceTool_method_commit>` или :ref:`commit_to_arrays()<class_SurfaceTool_method_commit_to_arrays>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_material:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_material**\ (\ material\: :ref:`Material<class_Material>`\ ) :ref:`🔗<class_SurfaceTool_method_set_material>`
|
||
|
||
Устанавливает :ref:`Material<class_Material>`, который будет использоваться в создаваемом вами :ref:`Mesh<class_Mesh>`'е.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_normal:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_normal**\ (\ normal\: :ref:`Vector3<class_Vector3>`\ ) :ref:`🔗<class_SurfaceTool_method_set_normal>`
|
||
|
||
Указывает нормаль для использования для *следующей* вершины. Если для каждой вершины необходимо установить эту информацию, а вы не предоставили ее для первой вершины, эта информация может вообще не использоваться.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_skin_weight_count:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_skin_weight_count**\ (\ count\: :ref:`SkinWeightCount<enum_SurfaceTool_SkinWeightCount>`\ ) :ref:`🔗<class_SurfaceTool_method_set_skin_weight_count>`
|
||
|
||
Установите :ref:`SKIN_8_WEIGHTS<class_SurfaceTool_constant_SKIN_8_WEIGHTS>`, чтобы указать, что можно использовать до 8 влияний костей на вершину.
|
||
|
||
По умолчанию используются только 4 влияния костей (:ref:`SKIN_4_WEIGHTS<class_SurfaceTool_constant_SKIN_4_WEIGHTS>`).
|
||
|
||
\ **Примечание:** Эта функция принимает перечисление, а не точное количество весов.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_smooth_group:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_smooth_group**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_SurfaceTool_method_set_smooth_group>`
|
||
|
||
Указывает группу сглаживания, используемую для *следующей* вершины. Если эта функция никогда не вызывается, все вершины будут иметь группу сглаживания по умолчанию ``0`` и будут сглажены с соседними вершинами той же группы. Чтобы создать сетку с плоскими нормалями, установите группу сглаживания на ``-1``.
|
||
|
||
\ **Примечание:** Эта функция на самом деле принимает ``uint32_t``, поэтому пользователи C# должны использовать ``uint32.MaxValue`` вместо ``-1`` для создания сетки с плоскими нормалями.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_tangent:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_tangent**\ (\ tangent\: :ref:`Plane<class_Plane>`\ ) :ref:`🔗<class_SurfaceTool_method_set_tangent>`
|
||
|
||
Specifies a tangent to use for the *next* vertex. If every vertex needs to have this information set and you fail to submit it for the first vertex, this information may not be used at all.
|
||
|
||
\ **Note:** Even though ``tangent`` is a :ref:`Plane<class_Plane>`, it does not directly represent the tangent plane. Its :ref:`Plane.x<class_Plane_property_x>`, :ref:`Plane.y<class_Plane_property_y>`, and :ref:`Plane.z<class_Plane_property_z>` represent the tangent vector and :ref:`Plane.d<class_Plane_property_d>` should be either ``-1`` or ``1``. See also :ref:`Mesh.ARRAY_TANGENT<class_Mesh_constant_ARRAY_TANGENT>`.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_uv:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_uv**\ (\ uv\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_SurfaceTool_method_set_uv>`
|
||
|
||
Указывает набор UV-координат для использования в *следующей* вершине. Если для каждой вершины необходимо установить эту информацию, а вы не предоставили ее для первой вершины, эта информация может вообще не использоваться.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_uv2:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_uv2**\ (\ uv2\: :ref:`Vector2<class_Vector2>`\ ) :ref:`🔗<class_SurfaceTool_method_set_uv2>`
|
||
|
||
Указывает необязательный второй набор UV-координат для использования для *следующей* вершины. Если для каждой вершины необходимо установить эту информацию, а вы не предоставили ее для первой вершины, эта информация может вообще не использоваться.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_SurfaceTool_method_set_weights:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **set_weights**\ (\ weights\: :ref:`PackedFloat32Array<class_PackedFloat32Array>`\ ) :ref:`🔗<class_SurfaceTool_method_set_weights>`
|
||
|
||
Указывает значения веса для использования для *следующей* вершины. ``weights`` должен содержать 4 значения. Если для каждой вершины необходимо установить эту информацию, а вы не предоставили ее для первой вершины, эта информация может вообще не использоваться.
|
||
|
||
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
|
||
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
|
||
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
|
||
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
|
||
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
|
||
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
|
||
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
|
||
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
|
||
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`
|