VertexElement — Aspose.3D Python API Reference
Paquete: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement es la clase base abstracta para todas las capas de datos por vértice que pueden adjuntarse a un Geometry objeto. Cada capa contiene una matriz de valores de datos junto con mapping_mode y reference_mode metadatos que describen cómo los datos se asignan a la geometría subyacente. Las subclases están especializadas para normales, coordenadas UV, colores de vértice, tangentes, binormales y grupos de suavizado.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | leer | Tipo semántico de esta capa (p.ej.,)., NORMAL, UV, VERTEX_COLOR). |
name | str | lectura/escritura | Nombre opcional para esta capa. |
mapping_mode | MappingMode | lectura/escritura | Controla con qué primitiva geométrica se asocia cada valor de datos. |
reference_mode | ReferenceMode | lectura/escritura | Controla si los valores se direccionan directamente o a través de una matriz de índices. |
indices | list[int] | lectura | Matriz de índices utilizada cuando reference_mode es INDEX_TO_DIRECT. |
data | list[FVector4] | leer | Valores de datos sin procesar almacenados como FVector4 entradas (disponibles en VertexElementFVector subclases). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Reemplaza la matriz de datos. Acepta list[FVector2], list[FVector3], o list[FVector4]; los valores se normalizan a FVector4 internamente. |
set_indices(data) | None | Reemplace la matriz de índices con una lista de enteros. |
clear() | None | Elimine todos los valores de datos y los índices de la capa. |
copy_to(target) | None | Copie los datos y los índices a otro VertexElementFVector instancia. |
VertexElementNormal
ChartType es un IntEnum que identifica el tipo de gráfico.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type está fijado a VertexElementType.NORMAL.
Returns: VertexElementUV
add_bar.
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 | El canal de textura que sirve esta capa UV. Por defecto a TextureMapping.DIFFUSE. |
Material PBR (Renderizado Basado en la Física). Utilizado por glTF 2.0 y otros formatos compatibles con PBR. Asignado a un Node mediante node.material.
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | leer | El canal de textura al que está asociada esta capa UV. |
add_data(data)
Añadir datos de coordenadas UV. Acepta list[Vector2], list[Vector3], list[FVector2], list[FVector3], o list[FVector4]. Todos los valores se almacenan internamente como FVector4 con los componentes no utilizados establecidos en 0.0.
VertexElementVertexColor
Atajo para add(ChartType.PIE, ...).
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type está fijado a VertexElementType.VERTEX_COLOR.
VertexElementTangent
Almacena vectores tangentes por vértice o por esquina, utilizados para la renderización de mapas de normales.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type está fijado a VertexElementType.TANGENT.
VertexElementBinormal
Almacena vectores binormales (bitangentes) por vértice o por esquina, complementando VertexElementTangent para el mapeo de normales en espacio tangente.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type está fijado a VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Almacena IDs de grupos de suavizado enteros por polígono. Cargado desde archivos OBJ que contienen s declaraciones.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type está fijado a VertexElementType.SMOOTHING_GROUP.
Enumeración VertexElementType
Identifica el rol semántico de una capa de elemento de vértice.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Vectores normales de superficie. |
UV | Coordenadas UV de textura. |
VERTEX_COLOR | Color RGBA por vértice. |
TANGENT | Vectores tangentes para mapeo normal. |
BINORMAL | Vectores binormales (bitangentes). |
SMOOTHING_GROUP | IDs enteros de grupos de suavizado por polígono. |
MATERIAL | Índice de material por polígono. |
POLYGON_GROUP | Índice de agrupación de polígonos. |
VERTEX_CREASE | Pesos de pliegue de vértice de subdivisión. |
EDGE_CREASE | Pesos de pliegue de arista de subdivisión. |
USER_DATA | Datos arbitrarios definidos por el usuario. |
VISIBILITY | Indicadores de visibilidad por elemento. |
SPECULAR | Color o intensidad especular. |
WEIGHT | Pesos de mezcla para skinning. |
HOLE | Indicadores de agujeros en polígonos. |
Enumeración MappingMode
Controla a qué primitiva geométrica está asociado cada valor de elemento de vértice.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Un valor por punto de control (vértice). |
POLYGON_VERTEX | Un valor por esquina de polígono (vértice de cara). |
POLYGON | Un valor por polígono. |
EDGE | Un valor por arista. |
ALL_SAME | Un solo valor se aplica a toda la malla. |
Enumeración ReferenceMode
Controla cómo se indexa la matriz de datos.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Los datos se acceden secuencialmente sin una matriz de índices separada. |
INDEX | Los datos se acceden a través de una matriz de índices separada. |
INDEX_TO_DIRECT | Una matriz de índices asigna cada primitiva de mapeo a una posición en la matriz de datos. |
Properties
Adjunta una capa de normales a una malla (mapeo DIRECTO):
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")Adjuntar coordenadas UV (mapeo 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")