CSGMesh3D

Наследует: CSGPrimitive3D < CSGShape3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Форма сетки CSG, использующая ресурс сетки.

Описание

Этот узел CSG позволяет использовать любой ресурс сетки в качестве формы CSG, при условии, что он многообразный. Форма многообразия замкнута, не пересекается сама с собой, не содержит внутренних граней и не имеет ребер, которые соединяются более чем с двумя гранями. См. также CSGPolygon3D для рисования 2D-выдавленных полигонов, которые будут использоваться в качестве узлов CSG.

Примечание: Узлы CSG предназначены для использования при прототипировании уровней. Создание узлов CSG требует значительных затрат ресурсов ЦП по сравнению с созданием MeshInstance3D с помощью PrimitiveMesh. Перемещение узла CSG внутри другого узла CSG также требует значительных затрат ресурсов ЦП, поэтому его следует избегать во время игры.

Обучающие материалы

Свойства

Material

material

Mesh

mesh


Описания свойств

Material material 🔗

Material, используемый при рисовании формы CSG.


Mesh mesh 🔗

  • void set_mesh(value: Mesh)

  • Mesh get_mesh()

Ресурс Mesh для использования в качестве формы CSG.

Примечание: Некоторые типы Mesh, такие как PlaneMesh, PointMesh, QuadMesh и RibbonTrailMesh, исключены из подсказки типа для этого свойства, так как эти примитивы не являются manifold и, таким образом, несовместимы с алгоритмом CSG.

Примечание: При использовании ArrayMesh все атрибуты вершин, кроме Mesh.ARRAY_VERTEX, Mesh.ARRAY_NORMAL и Mesh.ARRAY_TEX_UV, остаются неиспользованными. Только Mesh.ARRAY_VERTEX и Mesh.ARRAY_TEX_UV будут переданы в графический процессор.

Mesh.ARRAY_NORMAL используется только для определения того, какие грани требуют использования плоского затенения. По умолчанию CSGMesh будет игнорировать нормали вершин сетки, пересчитывать их для каждой вершины и использовать сглаженный шейдер. Если для грани требуется плоский шейдер, убедитесь, что все нормали вершин грани приблизительно равны.