VertexElement — Aspose.3D Python API Reference
Pacchetto: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement è la classe base astratta per tutti i layer di dati per-vertice che possono essere associati a un Geometry oggetto. Ogni layer contiene un array di valori di dati insieme a mapping_mode e reference_mode metadati che descrivono come i dati si mappano sulla geometria sottostante. Le sottoclassi sono specializzate per normali, coordinate UV, colori dei vertici, tangenti, binormali e gruppi di smoothing.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | Read | Tipo semantico di questo layer (ad es., NORMAL, UV, VERTEX_COLOR). |
name | str | Read/Write | Nome opzionale per questo layer. |
mapping_mode | MappingMode | Read/Write | Controlla a quale primitiva geometrica è associato ciascun valore di dati. |
reference_mode | ReferenceMode | Read/Write | Controlla se i valori sono indirizzati direttamente o tramite un array di indici. |
indices | list[int] | Read | Array di indici usato quando reference_mode è INDEX_TO_DIRECT. |
data | list[FVector4] | leggi | Valori dei dati grezzi memorizzati come FVector4 voci (disponibili su VertexElementFVector sottoclassi). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Sostituisci l’array dei dati. Accetta list[FVector2], list[FVector3], o list[FVector4]; i valori sono normalizzati a FVector4 internamente. |
set_indices(data) | None | Sostituisci l’array degli indici con un elenco di interi. |
clear() | None | Rimuovi tutti i valori dei dati e gli indici dal livello. |
copy_to(target) | None | Copia i dati e gli indici a un altro VertexElementFVector istanza. |
VertexElementNormal
Memorizza i vettori normali di superficie. I dati delle normali sono tipicamente usati dai renderer per i calcoli di illuminazione.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type è fissato a VertexElementType.NORMAL.
Restituisce: VertexElementUV
Memorizza le coordinate di texture UV. Una mesh può contenere più strati UV per diversi canali di texture.
from aspose.threed.entities import VertexElementUVProperties
VertexElement → VertexElementFVector → VertexElementUV
Properties
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Properties | Properties | Properties |
|---|---|---|
texture_mapping | TextureMapping | Il canale di texture che questo livello UV serve. Predefinito a TextureMapping.DIFFUSE. |
Proprietà aggiuntiva
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | leggi | Il canale di texture a cui è associato questo livello UV. |
add_data(data)
Aggiungi dati di coordinate UV. Accetta list[Vector2], list[Vector3], list[FVector2], list[FVector3], o list[FVector4]. Tutti i valori sono memorizzati internamente come FVector4 con i componenti inutilizzati impostati a 0.0.
VertexElementVertexColor
Memorizza i valori di colore RGBA per vertice nell’intervallo 0–1.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type è fissato a VertexElementType.VERTEX_COLOR.
VertexElementTangent
Memorizza i vettori tangente per vertice o per angolo, usati per il rendering delle normal map.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type è fissato a VertexElementType.TANGENT.
VertexElementBinormal
Memorizza vettori binormali (bitangenti) per vertice o per angolo, completando VertexElementTangent per la mappatura normale nello spazio tangente.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type è fissato a VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Memorizza ID interi di gruppi di smoothing per poligono. Caricato da file OBJ che contengono s dichiarazioni.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type è fissato a VertexElementType.SMOOTHING_GROUP.
Enumerazione VertexElementType
Identifica il ruolo semantico di un livello di elemento vertice.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Vettori normali di superficie. |
UV | Coordinate UV della texture. |
VERTEX_COLOR | Colore RGBA per vertice. |
TANGENT | Vettori tangenti per il normal mapping. |
BINORMAL | Vettori binormali (bitangenti). |
SMOOTHING_GROUP | ID interi dei gruppi di smoothing per poligono. |
MATERIAL | Indice del materiale per poligono. |
POLYGON_GROUP | Indice di raggruppamento dei poligoni. |
VERTEX_CREASE | Pesi delle pieghe dei vertici di subdivision. |
EDGE_CREASE | Pesi delle pieghe dei bordi di subdivision. |
USER_DATA | Dati arbitrari definiti dall’utente. |
VISIBILITY | Flag di visibilità per elemento. |
SPECULAR | Colore o intensità speculare. |
WEIGHT | Pesi di blend per lo skinning. |
HOLE | Flag dei buchi dei poligoni. |
Enumerazione MappingMode
Controlla a quale primitiva geometrica è associato ciascun valore dell’elemento vertice.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Un valore per punto di controllo (vertice). |
POLYGON_VERTEX | Un valore per angolo del poligono (faccia-vertice). |
POLYGON | Un valore per poligono. |
EDGE | Un valore per bordo. |
ALL_SAME | Un singolo valore si applica all’intera mesh. |
Enumerazione ReferenceMode
Controlla come è indicizzato l’array di dati.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | I dati vengono accessi in modo sequenziale senza un array di indici separato. |
INDEX | I dati vengono accessi tramite un array di indici separato. |
INDEX_TO_DIRECT | Un array di indici mappa ogni primitiva di mapping a una posizione nell’array dei dati. |
Properties
Allega un livello di normali a una mesh (mappatura DIRECT):
from aspose.threed import Scene
from aspose.threed.entities import Mesh, VertexElementType, MappingMode, ReferenceMode, VertexElementNormal
from aspose.threed.utilities import Vector4, FVector4
mesh = Mesh()
mesh.control_points.append(Vector4(0.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(1.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(0.5, 1.0, 0.0, 1.0))
mesh.create_polygon(0, 1, 2)
normals: VertexElementNormal = mesh.create_element(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT,
)
normals.set_data([
FVector4(0.0, 0.0, 1.0, 0.0),
FVector4(0.0, 0.0, 1.0, 0.0),
FVector4(0.0, 0.0, 1.0, 0.0),
])
scene = Scene()
scene.root_node.create_child_node("tri", mesh)
scene.save("triangle_normals.glb")Allega coordinate UV (mappatura INDEX_TO_DIRECT):
from aspose.threed import Scene
from aspose.threed.entities import Mesh, TextureMapping, MappingMode, ReferenceMode
from aspose.threed.utilities import Vector4, FVector4
mesh = Mesh()
for x, z in [(0, 0), (1, 0), (1, 1), (0, 1)]:
mesh.control_points.append(Vector4(float(x), 0.0, float(z), 1.0))
mesh.create_polygon(0, 1, 2, 3)
uv = mesh.create_element_uv(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT,
)
uv.set_data([
FVector4(0.0, 0.0, 0.0, 0.0),
FVector4(1.0, 0.0, 0.0, 0.0),
FVector4(1.0, 1.0, 0.0, 0.0),
FVector4(0.0, 1.0, 0.0, 0.0),
])
uv.set_indices([0, 1, 2, 3])
scene = Scene()
scene.root_node.create_child_node("quad", mesh)
scene.save("quad_uv.glb")