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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypeReadTipo semantico di questo layer (ad es., NORMAL, UV, VERTEX_COLOR).
namestrRead/WriteNome opzionale per questo layer.
mapping_modeMappingModeRead/WriteControlla a quale primitiva geometrica è associato ciascun valore di dati.
reference_modeReferenceModeRead/WriteControlla se i valori sono indirizzati direttamente o tramite un array di indici.
indiceslist[int]ReadArray di indici usato quando reference_mode è INDEX_TO_DIRECT.
datalist[FVector4]leggiValori dei dati grezzi memorizzati come FVector4 voci (disponibili su VertexElementFVector sottoclassi).

Properties

PropertiesPropertiesProperties
set_data(data)NoneSostituisci l’array dei dati. Accetta list[FVector2], list[FVector3], o list[FVector4]; i valori sono normalizzati a FVector4 internamente.
set_indices(data)NoneSostituisci l’array degli indici con un elenco di interi.
clear()NoneRimuovi tutti i valori dei dati e gli indici dal livello.
copy_to(target)NoneCopia 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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingIl canale di texture che questo livello UV serve. Predefinito a TextureMapping.DIFFUSE.

Proprietà aggiuntiva

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappingleggiIl 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 VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

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
PropertiesProperties
NORMALVettori normali di superficie.
UVCoordinate UV della texture.
VERTEX_COLORColore RGBA per vertice.
TANGENTVettori tangenti per il normal mapping.
BINORMALVettori binormali (bitangenti).
SMOOTHING_GROUPID interi dei gruppi di smoothing per poligono.
MATERIALIndice del materiale per poligono.
POLYGON_GROUPIndice di raggruppamento dei poligoni.
VERTEX_CREASEPesi delle pieghe dei vertici di subdivision.
EDGE_CREASEPesi delle pieghe dei bordi di subdivision.
USER_DATADati arbitrari definiti dall’utente.
VISIBILITYFlag di visibilità per elemento.
SPECULARColore o intensità speculare.
WEIGHTPesi di blend per lo skinning.
HOLEFlag dei buchi dei poligoni.

Enumerazione MappingMode

Controlla a quale primitiva geometrica è associato ciascun valore dell’elemento vertice.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTUn valore per punto di controllo (vertice).
POLYGON_VERTEXUn valore per angolo del poligono (faccia-vertice).
POLYGONUn valore per poligono.
EDGEUn valore per bordo.
ALL_SAMEUn singolo valore si applica all’intera mesh.

Enumerazione ReferenceMode

Controlla come è indicizzato l’array di dati.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTI dati vengono accessi in modo sequenziale senza un array di indici separato.
INDEXI dati vengono accessi tramite un array di indici separato.
INDEX_TO_DIRECTUn 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")

Vedi anche

 Italiano