Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

CSGPolygon3D

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

Estrude una forma poligonale 2D per creare una mesh 3D.

Descrizione

Un array di punti 2D che è estruso per creare rapidamente e facilmente una varietà di mesh 3D. Vedi anche CSGMesh3D per l'utilizzo di mesh 3D come nodi CSG.

Nota: I nodi CSG sono progettati per la prototipazione di livelli. La creazione di nodi CSG ha un costo notevole sulla CPU rispetto alla creazione di un MeshInstance3D con un PrimitiveMesh. Anche spostare un nodo CSG all'interno di un altro nodo CSG ha un costo notevole sulla CPU, quindi dovrebbe essere evitato durante il gioco.

Tutorial

Proprietà

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


Enumerazioni

enum Mode: 🔗

Mode MODE_DEPTH = 0

La forma polygon è estrusa lungo l'asse Z negativo.

Mode MODE_SPIN = 1

La forma polygon è estrusa ruotandola attorno all'asse Y.

Mode MODE_PATH = 2

La forma polygon è estrusa lungo il Path3D specificato in path_node.


enum PathRotation: 🔗

PathRotation PATH_ROTATION_POLYGON = 0

La forma polygon non è ruotata.

Nota: Richiede che le coordinate Z del percorso diminuiscano gradualmente per assicurare forme realizzabili.

PathRotation PATH_ROTATION_PATH = 1

La forma polygon è ruotata lungo il percorso, ma non attorno all'asse del percorso.

Nota: Richiede che le coordinate Z del percorso diminuiscano gradualmente per assicurare forme realizzabili.

PathRotation PATH_ROTATION_PATH_FOLLOW = 2

La forma polygon segue il percorso e le sue rotazioni attorno all'asse del percorso.


enum PathIntervalType: 🔗

PathIntervalType PATH_INTERVAL_DISTANCE = 0

Quando mode è impostato su MODE_PATH, path_interval determinerà la distanza, in metri, alla quale verrà estruso ciascun intervallo del percorso.

PathIntervalType PATH_INTERVAL_SUBDIVIDE = 1

Quando mode è impostato su MODE_PATH, path_interval suddividerà i poligoni lungo il percorso.


Descrizioni delle proprietà

float depth = 1.0 🔗

Quando mode è MODE_DEPTH, la profondità dell'estrusione.


Material material 🔗

Materiale da utilizzare per la mesh risultante. L'UV mappa la metà superiore del materiale sulla forma estrusa (U lungo la lunghezza delle estrusioni e V attorno al contorno del polygon), il quarto in basso a sinistra sulla faccia frontale e il quarto in basso a destra sulla faccia posteriore.


Mode mode = 0 🔗

  • void set_mode(value: Mode)

  • Mode get_mode()

La modalità utilizzata per estrudere il poligono (polygon).


bool path_continuous_u 🔗

  • void set_path_continuous_u(value: bool)

  • bool is_path_continuous_u()

Quando mode è MODE_PATH, per impostazione predefinita, la metà superiore del material è allungata lungo l'intera lunghezza della forma estrusa. Se false la metà superiore del materiale è ripetuta a ogni passaggio dell'estrusione.


float path_interval 🔗

  • void set_path_interval(value: float)

  • float get_path_interval()

Quando mode è MODE_PATH, l'intervallo del percorso o il rapporto tra i punti del percorso e le estrusioni.


PathIntervalType path_interval_type 🔗

Quando mode è MODE_PATH, questo determinerà se l'intervallo deve essere in base alla distanza (PATH_INTERVAL_DISTANCE) o alle frazioni di suddivisione (PATH_INTERVAL_SUBDIVIDE).


bool path_joined 🔗

  • void set_path_joined(value: bool)

  • bool is_path_joined()

Quando mode è MODE_PATH, se true le estremità del percorso sono unite, aggiungendo un'estrusione tra l'ultimo e il primo punto del percorso.


bool path_local 🔗

  • void set_path_local(value: bool)

  • bool is_path_local()

Quando mode è MODE_PATH, se true il Transform3D del CSGPolygon3D è utilizzato come punto di partenza per le estrusioni, non il Transform3D di path_node.


NodePath path_node 🔗

Quando mode è MODE_PATH, la posizione dell'oggetto Path3D è utilizzata per estrudere il poligono (polygon).


PathRotation path_rotation 🔗

Quando mode è MODE_PATH, il metodo di rotazione del percorso è utilizzato per ruotare il poligono (polygon) mentre è estruso.


bool path_rotation_accurate 🔗

  • void set_path_rotation_accurate(value: bool)

  • bool get_path_rotation_accurate()

Quando mode è MODE_PATH, se true il poligono verrà ruotato in base alla tangente appropriata del percorso nei punti campionati. Se false viene utilizzata un'approssimazione, la quale diminuisce in accuratezza man mano che diminuisce il numero di suddivisioni.


float path_simplify_angle 🔗

  • void set_path_simplify_angle(value: float)

  • float get_path_simplify_angle()

Quando mode è MODE_PATH, le estrusioni inferiori a questo angolo saranno unite insieme per ridurre il numero di poligoni.


float path_u_distance 🔗

  • void set_path_u_distance(value: float)

  • float get_path_u_distance()

Quando mode è MODE_PATH, questa è la distanza lungo il percorso, in metri, in cui le coordinate della texture saranno piastrellate. Quando è impostato su 0, le coordinate della texture corrisponderanno esattamente alla geometria senza piastrellamento.


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

L'array di punti che definisce il poligono 2D che è estruso. Può essere un poligono convesso o concavo con 3 o più punti. Il poligono non deve avere spigoli intersecanti. Altrimenti, la triangolazione fallirà e non sarà generata alcuna mesh.

Nota: Se solo 1 o 2 punti sono definiti in polygon, non sarà generata alcuna mesh.

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()

Se true, applica un'ombreggiatura liscia alle estrusioni.


float spin_degrees 🔗

  • void set_spin_degrees(value: float)

  • float get_spin_degrees()

Quando mode è MODE_SPIN, il numero totale di gradi in cui il poligono (polygon) è ruotato durante l'estrusione.


int spin_sides 🔗

  • void set_spin_sides(value: int)

  • int get_spin_sides()

Quando mode è MODE_SPIN, il numero di estrusioni eseguite.