CSGPolygon3D

Hereda: CSGPrimitive3D < CSGShape3D < GeometryInstance3D < VisualInstance3D < Node3D < Node < Object

Extrae una forma de polígono 2D para crear una malla 3D.

Descripción

Un array de puntos 2D se extruye para crear rápida y fácilmente una variedad de mallas 3D. Véase también CSGMesh3D para usar mallas 3D como nodos CSG.

Nota: Los nodos CSG están pensados para ser usados para el prototipado de niveles. La creación de nodos CSG tiene un coste de CPU significativo comparado con la creación de una MeshInstance3D con una PrimitiveMesh. Mover un nodo CSG dentro de otro nodo CSG también tiene un coste de CPU significativo, por lo que debe evitarse durante el juego.

Tutoriales

Propiedades

float

depth

1.0

Material

material

Mode

mode

0

bool

path_continuous_u

float

path_interval

PathIntervalType

path_interval_type

bool

path_joined

bool

path_local

NodePath

path_node

PathRotation

path_rotation

bool

path_rotation_accurate

float

path_simplify_angle

float

path_u_distance

PackedVector2Array

polygon

PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0)

bool

smooth_faces

false

float

spin_degrees

int

spin_sides


Enumeraciones

enum Mode: 🔗

Mode MODE_DEPTH = 0

La forma polygon se extruye a lo largo del eje Z negativo.

Mode MODE_SPIN = 1

La forma polygon se extruye girándola alrededor del eje Y.

Mode MODE_PATH = 2

La forma polygon se extruye a lo largo del Path3D especificado en path_node.


enum PathRotation: 🔗

PathRotation PATH_ROTATION_POLYGON = 0

La forma polygon no se rota.

Nota: Requiere que las coordenadas Z de la ruta disminuyan continuamente para asegurar formas viables.

PathRotation PATH_ROTATION_PATH = 1

La forma polygon se rota a lo largo de la ruta, pero no se rota alrededor del eje de la ruta.

Nota: Requiere que las coordenadas Z de la ruta disminuyan continuamente para asegurar formas viables.

PathRotation PATH_ROTATION_PATH_FOLLOW = 2

La forma polygon sigue la ruta y sus rotaciones alrededor del eje de la ruta.


enum PathIntervalType: 🔗

PathIntervalType PATH_INTERVAL_DISTANCE = 0

Cuando mode se establece en MODE_PATH, path_interval determinará la distancia, en metros, que se extruirá cada intervalo de la ruta.

PathIntervalType PATH_INTERVAL_SUBDIVIDE = 1

Cuando mode se establece en MODE_PATH, path_interval subdividirá los polígonos a lo largo de la ruta.


Descripciones de Propiedades

float depth = 1.0 🔗

Cuando mode es MODE_DEPTH, la profundidad de la extrusión.


Material material 🔗

Material a usar para la malla resultante. El UV mapea la mitad superior del material a la forma extruida (U a lo largo de la longitud de las extrusiones y V alrededor del contorno del polygon), el cuarto inferior izquierdo a la cara del extremo frontal, y el cuarto inferior derecho a la cara del extremo posterior.


Mode mode = 0 🔗

  • void set_mode(value: Mode)

  • Mode get_mode()

El mode utilizado para extruir el polygon.


bool path_continuous_u 🔗

  • void set_path_continuous_u(value: bool)

  • bool is_path_continuous_u()

Cuando mode es MODE_PATH, por defecto, la mitad superior del material se estira a lo largo de toda la longitud de la forma extruida. Si es false, la mitad superior del material se repite en cada paso de la extrusión.


float path_interval 🔗

  • void set_path_interval(value: float)

  • float get_path_interval()

Cuando mode es MODE_PATH, el intervalo de ruta o la relación de puntos de ruta a extrusiones.


PathIntervalType path_interval_type 🔗

Cuando mode es MODE_PATH, esto determinará si el intervalo debe ser por distancia (PATH_INTERVAL_DISTANCE) o fracciones de subdivisión (PATH_INTERVAL_SUBDIVIDE).


bool path_joined 🔗

  • void set_path_joined(value: bool)

  • bool is_path_joined()

Cuando mode es MODE_PATH, si es true los extremos de la ruta se unen, añadiendo una extrusión entre el último y el primer punto de la ruta.


bool path_local 🔗

  • void set_path_local(value: bool)

  • bool is_path_local()

Cuando mode es MODE_PATH, si es true la Transform3D del CSGPolygon3D se utiliza como punto de partida para las extrusiones, no la Transform3D del path_node.


NodePath path_node 🔗

Cuando mode es MODE_PATH, la ubicación del objeto Path3D utilizado para extruir el polygon.


PathRotation path_rotation 🔗

Cuando mode es MODE_PATH, el método de rotación de la ruta utilizado para rotar el polygon a medida que se extruye.


bool path_rotation_accurate 🔗

  • void set_path_rotation_accurate(value: bool)

  • bool get_path_rotation_accurate()

Cuando mode es MODE_PATH, si es true el polígono se rotará de acuerdo con la tangente apropiada de la ruta en los puntos muestreados. Si es false, se utiliza una aproximación, cuya precisión disminuye a medida que disminuye el número de subdivisiones.


float path_simplify_angle 🔗

  • void set_path_simplify_angle(value: float)

  • float get_path_simplify_angle()

Cuando mode es MODE_PATH, las extrusiones que son menores que este ángulo se fusionarán para reducir el número de polígonos.


float path_u_distance 🔗

  • void set_path_u_distance(value: float)

  • float get_path_u_distance()

Cuando mode es MODE_PATH, esta es la distancia a lo largo de la ruta, en metros, que se enlazarán las coordenadas de textura. Cuando se establece en 0, las coordenadas de textura coincidirán exactamente con la geometría sin enlazar.


PackedVector2Array polygon = PackedVector2Array(0, 0, 0, 1, 1, 1, 1, 0) 🔗

La matriz de puntos que define el polígono 2D que se extruye. Esto puede ser un polígono convexo o cóncavo con 3 o más puntos. El polígono no debe tener aristas que se intersecten. De lo contrario, la triangulación fallará y no se generará ninguna malla.

Nota: Si solo se definen 1 o 2 puntos en polygon, no se generará ninguna malla.

Note: The returned array is copied and any changes to it will not update the original property value. See PackedVector2Array for more details.


bool smooth_faces = false 🔗

  • void set_smooth_faces(value: bool)

  • bool get_smooth_faces()

Si es true, aplica sombreado suave a las extrusiones.


float spin_degrees 🔗

  • void set_spin_degrees(value: float)

  • float get_spin_degrees()

Cuando mode es MODE_SPIN, el número total de grados que se rota el polygon al extruir.


int spin_sides 🔗

  • void set_spin_sides(value: int)

  • int get_spin_sides()

Cuando mode es MODE_SPIN, el número de extrusiones realizadas.