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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypeleerTipo semántico de esta capa (p.ej.,)., NORMAL, UV, VERTEX_COLOR).
namestrlectura/escrituraNombre opcional para esta capa.
mapping_modeMappingModelectura/escrituraControla con qué primitiva geométrica se asocia cada valor de datos.
reference_modeReferenceModelectura/escrituraControla si los valores se direccionan directamente o a través de una matriz de índices.
indiceslist[int]lecturaMatriz de índices utilizada cuando reference_mode es INDEX_TO_DIRECT.
datalist[FVector4]leerValores de datos sin procesar almacenados como FVector4 entradas (disponibles en VertexElementFVector subclases).

Properties

PropertiesPropertiesProperties
set_data(data)NoneReemplaza la matriz de datos. Acepta list[FVector2], list[FVector3], o list[FVector4]; los valores se normalizan a FVector4 internamente.
set_indices(data)NoneReemplace la matriz de índices con una lista de enteros.
clear()NoneElimine todos los valores de datos y los índices de la capa.
copy_to(target)NoneCopie 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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingEl 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.

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

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

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
PropertiesProperties
NORMALVectores normales de superficie.
UVCoordenadas UV de textura.
VERTEX_COLORColor RGBA por vértice.
TANGENTVectores tangentes para mapeo normal.
BINORMALVectores binormales (bitangentes).
SMOOTHING_GROUPIDs 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_CREASEPesos de pliegue de vértice de subdivisión.
EDGE_CREASEPesos de pliegue de arista de subdivisión.
USER_DATADatos arbitrarios definidos por el usuario.
VISIBILITYIndicadores de visibilidad por elemento.
SPECULARColor o intensidad especular.
WEIGHTPesos de mezcla para skinning.
HOLEIndicadores 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
PropertiesProperties
CONTROL_POINTUn valor por punto de control (vértice).
POLYGON_VERTEXUn valor por esquina de polígono (vértice de cara).
POLYGONUn valor por polígono.
EDGEUn valor por arista.
ALL_SAMEUn 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
PropertiesProperties
DIRECTLos datos se acceden secuencialmente sin una matriz de índices separada.
INDEXLos datos se acceden a través de una matriz de índices separada.
INDEX_TO_DIRECTUna 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")

Ver también

 Español