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 VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | lectura | Tipus semàntic d’aquesta capa (p. ex., NORMAL, UV, VERTEX_COLOR). |
name | str | lectura/escriptura | Nom opcional per a aquesta capa. |
mapping_mode | MappingMode | lectura/escriptura | Controla quina primitiva de geometria s’associa a cada valor de dades. |
reference_mode | ReferenceMode | lectura/escriptura | Controla si els valors s’adrecen directament o a través d’una matriu d’índexs. |
indices | list[int] | lectura | Matriu d’índexs utilitzada quan reference_mode és INDEX_TO_DIRECT. |
data | list[FVector4] | lectura | Valors de dades en brut emmagatzemats com a FVector4 entrades (disponibles a VertexElementFVector subclasses). |
Methods
| Methods | Methods | Methods |
|---|---|---|
set_data(data) | None | Substitueix la matriu de dades. Accepta list[FVector2], list[FVector3], o list[FVector4]; els valors s’han normalitzat a FVector4 internament. |
set_indices(data) | None | Substituïu la matriu d’índexs per una llista d’enters. |
clear() | None | Elimineu tots els valors de dades i els índexs de la capa. |
copy_to(target) | None | Copieu 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 VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVMethods
VertexElement → VertexElementFVector → VertexElementUV
Methods
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Methods | Methods | Methods |
|---|---|---|
texture_mapping | TextureMapping | El canal de textura que serveix aquesta capa UV. Per defecte és TextureMapping.DIFFUSE. |
Propietat addicional
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | llegir | El 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 VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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| Methods | Methods |
|---|---|
NORMAL | Vectors normals de la superfície. |
UV | Coordenades UV de la textura. |
VERTEX_COLOR | Color RGBA per vèrtex. |
TANGENT | Vectors tangent per al mapatge normal. |
BINORMAL | Vectors binormals (bitangent). |
SMOOTHING_GROUP | Identificadors enters de grup de suavitzat per polígon. |
MATERIAL | Índex de material per polígon. |
POLYGON_GROUP | Índex d’agrupació de polígons. |
VERTEX_CREASE | Pesos de plec de vèrtex per subdivisió. |
EDGE_CREASE | Pesos de plec d’aresta per subdivisió. |
USER_DATA | Dades arbitràries definides per l’usuari. |
VISIBILITY | Indicadors de visibilitat per element. |
SPECULAR | Color o intensitat especular. |
WEIGHT | Pesos de mescla per a skinning. |
HOLE | Indicadors 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| Methods | Methods |
|---|---|
CONTROL_POINT | Un valor per punt de control (vèrtex). |
POLYGON_VERTEX | Un valor per cantonada de polígon (vèrtex de cara). |
POLYGON | Un valor per polígon. |
EDGE | Un valor per aresta. |
ALL_SAME | Un únic valor s’aplica a tota la malla. |
Enumeració ReferenceMode
Controla com s’indexa la matriu de dades.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
DIRECT | Les dades s’accedeixen seqüencialment sense una matriu d’índexs separada. |
INDEX | Les dades s’accedeixen mitjançant una matriu d’índexs separada. |
INDEX_TO_DIRECT | Una 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")