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 VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | lesen | Semantischer Typ dieser Ebene (z. B., NORMAL, UV, VERTEX_COLOR). |
name | str | lesen/schreiben | Optionaler Name für diese Ebene. |
mapping_mode | MappingMode | lesen/schreiben | Steuert, welchem Geometrie-Primitive jeder Datenwert zugeordnet ist. |
reference_mode | ReferenceMode | lesen/schreiben | Steuert, ob Werte direkt oder über ein Index-Array adressiert werden. |
indices | list[int] | lesen | Index-Array verwendet, wenn reference_mode ist INDEX_TO_DIRECT. |
data | list[FVector4] | lesen | Rohdatenwerte gespeichert als FVector4 Einträge (verfügbar auf VertexElementFVector Unterklassen). |
Methods
| Methods | Methods | Methods |
|---|---|---|
set_data(data) | None | Ersetzt das Daten-Array. Akzeptiert list[FVector2], list[FVector3], oder list[FVector4]; Werte werden normalisiert zu FVector4 intern. |
set_indices(data) | None | Ersetzen Sie das Indizes-Array durch eine Liste von Ganzzahlen. |
clear() | None | Entfernen Sie alle Datenwerte und Indizes aus der Ebene. |
copy_to(target) | None | Kopieren 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 VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVMethods
VertexElement → VertexElementFVector → VertexElementUV
Methods
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Methods | Methods | Methods |
|---|---|---|
texture_mapping | TextureMapping | Der Texturkanal, den diese UV-Schicht bedient. Standardwert ist TextureMapping.DIFFUSE. |
Zusätzliche Eigenschaft
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | lesen | Der 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 VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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| Methods | Methods |
|---|---|
NORMAL | Oberflächennormalenvektoren. |
UV | Textur-UV-Koordinaten. |
VERTEX_COLOR | Pro-Vertex RGBA-Farbe. |
TANGENT | Tangentialvektoren für Normal Mapping. |
BINORMAL | Binormale (Bitangenten) Vektoren. |
SMOOTHING_GROUP | Pro-Polygon Glättungsgruppen-Integer-IDs. |
MATERIAL | Pro-Polygon Materialindex. |
POLYGON_GROUP | Polygon-Gruppierungsindex. |
VERTEX_CREASE | Subdivision-Vertex-Faltengewichtungen. |
EDGE_CREASE | Subdivision-Kanten-Faltengewichtungen. |
USER_DATA | Beliebige benutzerdefinierte Daten. |
VISIBILITY | Sichtbarkeits‑Flags pro Element. |
SPECULAR | Specularfarbe oder -intensität. |
WEIGHT | Blend‑Gewichte für Skinning. |
HOLE | Polygon‑Loch‑Flags. |
Aufzählung MappingMode
Steuert, welchem Geometrie-Primitive jeder Vertex-Element-Wert zugeordnet ist.
from aspose.threed.entities import MappingMode| Methods | Methods |
|---|---|
CONTROL_POINT | Ein Wert pro Kontrollpunkt (Vertex). |
POLYGON_VERTEX | Ein Wert pro Polygon‑Ecke (Face‑Vertex). |
POLYGON | Ein Wert pro Polygon. |
EDGE | Ein Wert pro Kante. |
ALL_SAME | Ein einzelner Wert gilt für das gesamte Mesh. |
Aufzählung ReferenceMode
Steuert, wie das Datenarray indiziert wird.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
DIRECT | Daten werden sequenziell ohne ein separates Index‑Array abgerufen. |
INDEX | Auf die Daten wird über ein separates Indizes-Array zugegriffen. |
INDEX_TO_DIRECT | Ein 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")