VertexElement — Aspose.3D Python API Reference
Pakket: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement is de abstracte basisklasse voor alle per-vertex gegevenslagen die aan een Geometry object. Elke laag bevat een array met gegevenswaarden samen met mapping_mode en reference_mode metadata die beschrijven hoe de gegevens worden gemapt op de onderliggende geometrie. Subklassen zijn gespecialiseerd voor normalen, UV-coördinaten, vertexkleuren, tangenten, binormalen en smoothing-groepen.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | lezen | Semantisch type van deze laag (bijv., NORMAL, UV, VERTEX_COLOR). |
name | str | lezen/schrijven | Optionele naam voor deze laag. |
mapping_mode | MappingMode | lezen/schrijven | Bepaalt welke geometrie‑primitive elke gegevenswaarde is gekoppeld. |
reference_mode | ReferenceMode | lezen/schrijven | Bepaalt of waarden direct worden aangesproken of via een indexarray. |
indices | list[int] | lezen | Indexarray gebruikt wanneer reference_mode is INDEX_TO_DIRECT. |
data | list[FVector4] | lezen | Ruwe gegevenswaarden opgeslagen als FVector4 items (beschikbaar op VertexElementFVector subklassen). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Vervang de gegevensarray. Accepteert list[FVector2], list[FVector3], of list[FVector4]; waarden worden genormaliseerd naar FVector4 intern. |
set_indices(data) | None | Vervang de indexarray door een lijst van gehele getallen. |
clear() | None | Verwijder alle gegevenswaarden en indexen uit de laag. |
copy_to(target) | None | Kopieer gegevens en indexen naar een andere VertexElementFVector instantie. |
VertexElementNormal
Slaat oppervlak‑normaalvectoren op. Normal‑data wordt doorgaans door renderers gebruikt voor lichtberekeningen.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type is vastgezet op VertexElementType.NORMAL.
Retourneert: VertexElementUV
Slaat UV‑textuurcoördinaten op. Een mesh kan meerdere UV‑lagen bevatten voor verschillende textuurkanalen.
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 | Het textuurkanaal dat deze UV-laag bedient. Standaard is TextureMapping.DIFFUSE. |
Extra eigenschap
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | lezen | Het textuurkanaal waaraan deze UV-laag is gekoppeld. |
add_data(data)
Voeg UV-coördinaatgegevens toe. Accepteert list[Vector2], list[Vector3], list[FVector2], list[FVector3], of list[FVector4]. Alle waarden worden intern opgeslagen als FVector4 met ongebruikte componenten ingesteld op 0.0.
VertexElementVertexColor
Slaat per-vertex RGBA‑kleurwaarden op in het bereik 0–1.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type is vastgezet op VertexElementType.VERTEX_COLOR.
VertexElementTangent
Slaat per-vertex of per-hoek tangentvectoren op, gebruikt voor normal‑map rendering.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type is vastgezet op VertexElementType.TANGENT.
VertexElementBinormal
Slaat per-vertex of per-corner binormale (bitangent) vectoren op, als aanvulling op VertexElementTangent voor tangent-space normal mapping.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type is vastgezet op VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Slaat per-polygon gehele getal smoothing group-ID’s op. Geladen uit OBJ-bestanden die bevatten s declaraties.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type is vastgezet op VertexElementType.SMOOTHING_GROUP.
VertexElementType‑enumeratie
Identificeert de semantische rol van een vertex‑elementlaag.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Oppervlakte-normaalvectoren. |
UV | Texture UV-coördinaten. |
VERTEX_COLOR | Per-vertex RGBA-kleur. |
TANGENT | Tangentvectoren voor normal mapping. |
BINORMAL | Binormale (bitangent) vectoren. |
SMOOTHING_GROUP | Per-polygon gladstrijkgroep integer-ID’s. |
MATERIAL | Per-polygon materiaalindex. |
POLYGON_GROUP | Polygon groeperingsindex. |
VERTEX_CREASE | Subdivision-vertex vouwgewichten. |
EDGE_CREASE | Subdivision-rand vouwgewichten. |
USER_DATA | Willekeurige door gebruiker gedefinieerde gegevens. |
VISIBILITY | Per-element zichtbaarheidsvlaggen. |
SPECULAR | Speculaire kleur of intensiteit. |
WEIGHT | Blend-gewichten voor skinning. |
HOLE | Polygon gatvlaggen. |
MappingMode‑enumeratie
Bepaalt bij welke geometrie‑primitief elke vertex‑elementwaarde hoort.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Één waarde per controlepunt (vertex). |
POLYGON_VERTEX | Één waarde per polygonhoek (face-vertex). |
POLYGON | Één waarde per polygon. |
EDGE | Één waarde per rand. |
ALL_SAME | Een enkele waarde geldt voor het gehele mesh. |
ReferenceMode‑enumeratie
Bepaalt hoe de gegevensarray wordt geïndexeerd.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Data wordt sequentieel benaderd zonder een aparte indices array. |
INDEX | Data wordt benaderd via een aparte indices array. |
INDEX_TO_DIRECT | Een indices array mappt elke mapping primitive naar een positie in de data array. |
Properties
Voeg een normaal‑laag toe aan een mesh (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")Voeg UV‑coördinaten toe (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")