VertexElement — Aspose.3D Python API Reference

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

VertexElement ist die abstrakte Basisklasse für alle pro-Vertex-Datenebenen, die an ein Geometry Objekt angehängt werden können. Jede Ebene enthält ein Array von Datenwerten zusammen mit mapping_mode und reference_mode Metadaten, die beschreiben, wie die Daten auf die zugrunde liegende Geometrie abgebildet werden. Unterklassen sind spezialisiert für Normalen, UV-Koordinaten, Vertex-Farben, Tangenten, Binormalen und Glättungsgruppen.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypelesenSemantischer Typ dieser Ebene (z. B., NORMAL, UV, VERTEX_COLOR).
namestrlesen/schreibenOptionaler Name für diese Ebene.
mapping_modeMappingModelesen/schreibenSteuert, welchem Geometrie-Primitive jeder Datenwert zugeordnet ist.
reference_modeReferenceModelesen/schreibenSteuert, ob Werte direkt oder über ein Index-Array adressiert werden.
indiceslist[int]lesenIndex-Array verwendet, wenn reference_mode ist INDEX_TO_DIRECT.
datalist[FVector4]lesenRohdatenwerte gespeichert als FVector4 Einträge (verfügbar auf VertexElementFVector Unterklassen).

Methods

MethodsMethodsMethods
set_data(data)NoneErsetzt das Daten-Array. Akzeptiert list[FVector2], list[FVector3], oder list[FVector4]; Werte werden normalisiert zu FVector4 intern.
set_indices(data)NoneErsetzen Sie das Indizes-Array durch eine Liste von Ganzzahlen.
clear()NoneEntfernen Sie alle Datenwerte und Indizes aus der Ebene.
copy_to(target)NoneKopieren Sie Daten und Indizes zu einem anderen VertexElementFVector Instanz.

VertexElementNormal

Speichert Oberflächennormalenvektoren. Normaldaten werden typischerweise von Renderern für Beleuchtungsberechnungen verwendet.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

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

vertex_element_type ist festgelegt auf VertexElementType.NORMAL.


VertexElementUV

Speichert UV‑Texturkoordinaten. Ein Mesh kann mehrere UV‑Schichten für verschiedene Texturkanäle enthalten.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingDer Texturkanal, den diese UV-Schicht bedient. Standardwert ist TextureMapping.DIFFUSE.

Zusätzliche Eigenschaft

MethodsMethodsMethodsMethods
texture_mappingTextureMappinglesenDer Texturkanal, dem diese UV-Schicht zugeordnet ist.

add_data(data)

UV‑Koordinatendaten anhängen. Akzeptiert list[Vector2], list[Vector3], list[FVector2], list[FVector3], oder list[FVector4]. Alle Werte werden intern gespeichert als FVector4 mit nicht genutzten Komponenten gesetzt auf 0.0.


VertexElementVertexColor

Speichert pro-Vertex RGBA‑Farbwerte im Bereich 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

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

vertex_element_type ist festgelegt auf VertexElementType.VERTEX_COLOR.


VertexElementTangent

Speichert pro-Vertex- oder pro-Corner-Tangentialvektoren, die für das Rendering von Normalmaps verwendet werden.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type ist festgelegt auf VertexElementType.TANGENT.


VertexElementBinormal

Speichert pro‑Vertex‑ oder pro‑Eck‑Binormalvektoren (Bitangent), ergänzend VertexElementTangent für Tangentenraum‑Normal‑Mapping.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type ist festgelegt auf VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Speichert pro‑Polygon‑Integer‑Glättungsgruppen‑IDs. Geladen aus OBJ‑Dateien, die enthalten s Deklarationen.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type ist festgelegt auf VertexElementType.SMOOTHING_GROUP.


Aufzählung VertexElementType

Identifiziert die semantische Rolle einer Vertex-Element-Schicht.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALOberflächennormalenvektoren.
UVTextur-UV-Koordinaten.
VERTEX_COLORPro-Vertex RGBA-Farbe.
TANGENTTangentialvektoren für Normal Mapping.
BINORMALBinormale (Bitangenten) Vektoren.
SMOOTHING_GROUPPro-Polygon Glättungsgruppen-Integer-IDs.
MATERIALPro-Polygon Materialindex.
POLYGON_GROUPPolygon-Gruppierungsindex.
VERTEX_CREASESubdivision-Vertex-Faltengewichtungen.
EDGE_CREASESubdivision-Kanten-Faltengewichtungen.
USER_DATABeliebige benutzerdefinierte Daten.
VISIBILITYSichtbarkeits‑Flags pro Element.
SPECULARSpecularfarbe oder -intensität.
WEIGHTBlend‑Gewichte für Skinning.
HOLEPolygon‑Loch‑Flags.

Aufzählung MappingMode

Steuert, welchem Geometrie-Primitive jeder Vertex-Element-Wert zugeordnet ist.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTEin Wert pro Kontrollpunkt (Vertex).
POLYGON_VERTEXEin Wert pro Polygon‑Ecke (Face‑Vertex).
POLYGONEin Wert pro Polygon.
EDGEEin Wert pro Kante.
ALL_SAMEEin einzelner Wert gilt für das gesamte Mesh.

Aufzählung ReferenceMode

Steuert, wie das Datenarray indiziert wird.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTDaten werden sequenziell ohne ein separates Index‑Array abgerufen.
INDEXAuf die Daten wird über ein separates Indizes-Array zugegriffen.
INDEX_TO_DIRECTEin Indizes-Array ordnet jedes Mapping-Primitive einer Position im Daten-Array zu.

Methods

Füge einer Mesh ein Normalen-Layer hinzu (DIRECT-Mapping):

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

UV-Koordinaten anhängen (INDEX_TO_DIRECT-Mapping):

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

Siehe auch

 Deutsch