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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypelezenSemantisch type van deze laag (bijv., NORMAL, UV, VERTEX_COLOR).
namestrlezen/schrijvenOptionele naam voor deze laag.
mapping_modeMappingModelezen/schrijvenBepaalt welke geometrie‑primitive elke gegevenswaarde is gekoppeld.
reference_modeReferenceModelezen/schrijvenBepaalt of waarden direct worden aangesproken of via een indexarray.
indiceslist[int]lezenIndexarray gebruikt wanneer reference_mode is INDEX_TO_DIRECT.
datalist[FVector4]lezenRuwe gegevenswaarden opgeslagen als FVector4 items (beschikbaar op VertexElementFVector subklassen).

Properties

PropertiesPropertiesProperties
set_data(data)NoneVervang de gegevensarray. Accepteert list[FVector2], list[FVector3], of list[FVector4]; waarden worden genormaliseerd naar FVector4 intern.
set_indices(data)NoneVervang de indexarray door een lijst van gehele getallen.
clear()NoneVerwijder alle gegevenswaarden en indexen uit de laag.
copy_to(target)NoneKopieer 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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingHet textuurkanaal dat deze UV-laag bedient. Standaard is TextureMapping.DIFFUSE.

Extra eigenschap

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

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

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
PropertiesProperties
NORMALOppervlakte-normaalvectoren.
UVTexture UV-coördinaten.
VERTEX_COLORPer-vertex RGBA-kleur.
TANGENTTangentvectoren voor normal mapping.
BINORMALBinormale (bitangent) vectoren.
SMOOTHING_GROUPPer-polygon gladstrijkgroep integer-ID’s.
MATERIALPer-polygon materiaalindex.
POLYGON_GROUPPolygon groeperingsindex.
VERTEX_CREASESubdivision-vertex vouwgewichten.
EDGE_CREASESubdivision-rand vouwgewichten.
USER_DATAWillekeurige door gebruiker gedefinieerde gegevens.
VISIBILITYPer-element zichtbaarheidsvlaggen.
SPECULARSpeculaire kleur of intensiteit.
WEIGHTBlend-gewichten voor skinning.
HOLEPolygon gatvlaggen.

MappingMode‑enumeratie

Bepaalt bij welke geometrie‑primitief elke vertex‑elementwaarde hoort.

from aspose.threed.entities import MappingMode
PropertiesProperties
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_SAMEEen enkele waarde geldt voor het gehele mesh.

ReferenceMode‑enumeratie

Bepaalt hoe de gegevensarray wordt geïndexeerd.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTData wordt sequentieel benaderd zonder een aparte indices array.
INDEXData wordt benaderd via een aparte indices array.
INDEX_TO_DIRECTEen 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")

Zie ook

 Nederlands