VertexElement — Aspose.3D Python API Reference

Paquet: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement és la classe base abstracta per a totes les capes de dades per vèrtex que es poden adjuntar a un Geometry objecte. Cada capa conté una matriu de valors de dades juntament amb mapping_mode i reference_mode metadades que descriuen com les dades es mapen a la geometria subjacents. Les subclasses estan especialitzades per a normals, coordenades UV, colors de vèrtex, tangents, binormals i grups d’allisat.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypelecturaTipus semàntic d’aquesta capa (p. ex., NORMAL, UV, VERTEX_COLOR).
namestrlectura/escripturaNom opcional per a aquesta capa.
mapping_modeMappingModelectura/escripturaControla quina primitiva de geometria s’associa a cada valor de dades.
reference_modeReferenceModelectura/escripturaControla si els valors s’adrecen directament o a través d’una matriu d’índexs.
indiceslist[int]lecturaMatriu d’índexs utilitzada quan reference_mode és INDEX_TO_DIRECT.
datalist[FVector4]lecturaValors de dades en brut emmagatzemats com a FVector4 entrades (disponibles a VertexElementFVector subclasses).

Methods

MethodsMethodsMethods
set_data(data)NoneSubstitueix la matriu de dades. Accepta list[FVector2], list[FVector3], o list[FVector4]; els valors s’han normalitzat a FVector4 internament.
set_indices(data)NoneSubstituïu la matriu d’índexs per una llista d’enters.
clear()NoneElimineu tots els valors de dades i els índexs de la capa.
copy_to(target)NoneCopieu les dades i els índexs a un altre VertexElementFVector instància.

VertexElementNormal

Emmagatzema vectors normals de superfície. Les dades normals són típicament utilitzades pels renderitzadors per a càlculs d’il·luminació.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

VertexElementNormal(name="", mapping_mode=None, reference_mode=None)

vertex_element_type està fixat a VertexElementType.NORMAL.


VertexElementUV

Emmagatzema coordenades de textura UV. Una malla pot portar diverses capes UV per a diferents canals de textura.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingEl canal de textura que serveix aquesta capa UV. Per defecte és TextureMapping.DIFFUSE.

Propietat addicional

MethodsMethodsMethodsMethods
texture_mappingTextureMappingllegirEl canal de textura amb el qual està associada aquesta capa UV.

add_data(data)

Afegeix dades de coordenades UV. Accepta list[Vector2], list[Vector3], list[FVector2], list[FVector3], o list[FVector4]. Tots els valors s’emmagatzemen internament com a FVector4 amb components no utilitzats establerts a 0.0.


VertexElementVertexColor

Emmagatzema valors de color RGBA per vèrtex en el rang 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)

vertex_element_type està fixat a VertexElementType.VERTEX_COLOR.


VertexElementTangent

Emmagatzema vectors tangent per vèrtex o per cantonada, utilitzats per al renderitzat de mapes normals.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type està fixat a VertexElementType.TANGENT.


VertexElementBinormal

Emmagatzema vectors binormals (bitangent) per vèrtex o per cantonada, complementant VertexElementTangent per al mapatge normal en espai tangent.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type està fixat a VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Emmagatzema IDs de grups de suavitzat enters per polígon. Carregats des de fitxers OBJ que contenen s declaracions.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type està fixat a VertexElementType.SMOOTHING_GROUP.


Enumeració VertexElementType

Identifica la funció semàntica d’una capa d’element de vèrtex.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALVectors normals de la superfície.
UVCoordenades UV de la textura.
VERTEX_COLORColor RGBA per vèrtex.
TANGENTVectors tangent per al mapatge normal.
BINORMALVectors binormals (bitangent).
SMOOTHING_GROUPIdentificadors enters de grup de suavitzat per polígon.
MATERIALÍndex de material per polígon.
POLYGON_GROUPÍndex d’agrupació de polígons.
VERTEX_CREASEPesos de plec de vèrtex per subdivisió.
EDGE_CREASEPesos de plec d’aresta per subdivisió.
USER_DATADades arbitràries definides per l’usuari.
VISIBILITYIndicadors de visibilitat per element.
SPECULARColor o intensitat especular.
WEIGHTPesos de mescla per a skinning.
HOLEIndicadors de forats de polígon.

Enumeració MappingMode

Controla amb quina primitiva geomètrica s’associa cada valor d’element de vèrtex.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTUn valor per punt de control (vèrtex).
POLYGON_VERTEXUn valor per cantonada de polígon (vèrtex de cara).
POLYGONUn valor per polígon.
EDGEUn valor per aresta.
ALL_SAMEUn únic valor s’aplica a tota la malla.

Enumeració ReferenceMode

Controla com s’indexa la matriu de dades.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTLes dades s’accedeixen seqüencialment sense una matriu d’índexs separada.
INDEXLes dades s’accedeixen mitjançant una matriu d’índexs separada.
INDEX_TO_DIRECTUna matriu d’índexs assigna cada primitiva de mapatge a una posició a la matriu de dades.

Methods

Adjunta una capa de normals a una malla (mapeig DIRECTE):

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

Adjunta coordenades UV (mapeig 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")

Vegeu també

 Català