VertexElement — Aspose.3D Python API Reference

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

VertexElement je apstraktna osnovna klasa za sve per-vertex slojeve podataka koji se mogu priložiti Geometry objektu. Svaki sloj drži niz vrijednosti podataka zajedno s mapping_mode i reference_mode metapodacima koji opisuju kako se podaci mapiraju na temeljnu geometriju. Podklase su specijalizirane za normale, UV koordinate, boje vrhova, tangente, binormale i grupe zaglađivanja.


Properties

from aspose.threed.entities import VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypečitanjeSemantički tip ovog sloja (npr., NORMAL, UV, VERTEX_COLOR).
namestrčitanje/pisanjeOpcionalno ime za ovaj sloj.
mapping_modeMappingModečitanje/pisanjeUpravlja kojim geometrijskim primitivom je svaka vrijednost podataka povezana.
reference_modeReferenceModečitanje/pisanjeUpravlja hoće li se vrijednosti adresirati izravno ili putem niza indeksa.
indiceslist[int]čitanjeNiz indeksa koji se koristi kada reference_mode je INDEX_TO_DIRECT.
datalist[FVector4]čitajSirove vrijednosti podataka pohranjene kao FVector4 unosi (dostupni na VertexElementFVector podklase).

Properties

PropertiesPropertiesProperties
set_data(data)NoneZamijeni niz podataka. Prihvaća list[FVector2], list[FVector3], ili list[FVector4]; vrijednosti se normaliziraju na FVector4 interno.
set_indices(data)NoneZamijeni niz indeksa popisom cijelih brojeva.
clear()NoneUkloni sve vrijednosti podataka i indekse iz sloja.
copy_to(target)NoneKopiraj podatke i indekse u drugi VertexElementFVector instancu.

VertexElementNormal

Pohranjuje vektore površinskih normala. Podaci o normalama se tipično koriste u rendererima za izračune osvjetljenja.

from aspose.threed.entities import VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

Properties

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

vertex_element_type je fiksirano na VertexElementType.NORMAL.


Vraća: VertexElementUV

Pohranjuje UV teksturne koordinate. Mreža može imati više UV slojeva za različite teksturne kanale.

from aspose.threed.entities import VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingTeksturni kanal koji ovaj UV sloj služi. Zadano je TextureMapping.DIFFUSE.

Dodatna svojstva

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappingčitajTeksturni kanal s kojim je ovaj UV sloj povezan.

add_data(data)

Dodaj UV koordinate. Prihvaća list[Vector2], list[Vector3], list[FVector2], list[FVector3], ili list[FVector4]. Sve vrijednosti se interno pohranjuju kao FVector4 s neiskorištenim komponentama postavljenim na 0.0.


VertexElementVertexColor

Pohranjuje RGBA vrijednosti boje po vrhu u rasponu 0–1.

from aspose.threed.entities import VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

Properties

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

vertex_element_type je postavljeno na VertexElementType.VERTEX_COLOR.


VertexElementTangent

Pohranjuje tangente po vrhu ili po uglu, koje se koriste za renderiranje normalnih mapa.

from aspose.threed.entities import VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type je postavljeno na VertexElementType.TANGENT.


VertexElementBinormal

Pohranjuje per-vertex ili per-corner binormal (bitangent) vektore, dopunjujući VertexElementTangent za tangent-space normal mapping.

from aspose.threed.entities import VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type je postavljeno na VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Pohranjuje cijele ID‑ove grupa zaglađivanja po poligonu. Učitava se iz OBJ datoteka koje sadrže s deklaracije.

from aspose.threed.entities import VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type je postavljeno na VertexElementType.SMOOTHING_GROUP.


Enumeracija VertexElementType

Identificira semantičku ulogu sloja elementa vrha.

from aspose.threed.entities import VertexElementType
PropertiesProperties
NORMALVektori površinskih normala.
UVUV koordinate teksture.
VERTEX_COLORRGBA boja po vrhu.
TANGENTTangencijalni vektori za normalno mapiranje.
BINORMALBinormal (bitangent) vektori.
SMOOTHING_GROUPCijeli ID‑ovi grupa zaglađivanja po poligonu.
MATERIALIndeks materijala po poligonu.
POLYGON_GROUPIndeks grupiranja poligona.
VERTEX_CREASETežine nabora vrhova podjela.
EDGE_CREASETežine nabora rubova podjela.
USER_DATAProizvoljni podaci definirani od strane korisnika.
VISIBILITYZastavice vidljivosti po elementu.
SPECULARSpecularna boja ili intenzitet.
WEIGHTTežine blendanja za skinning.
HOLEZastavice rupa poligona.

Enumeracija MappingMode

Upravlja s kojim geometrijskim primitivom je svaka vrijednost elementa vrha povezana.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTJedna vrijednost po kontrolnoj točki (vrh).
POLYGON_VERTEXJedna vrijednost po uglu poligona (vrh‑lica).
POLYGONJedna vrijednost po poligonu.
EDGEJedna vrijednost po rubu.
ALL_SAMEJedna vrijednost primjenjuje se na cijelu mrežu.

Enumeracija ReferenceMode

Upravlja načinom indeksiranja podatkovnog niza.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTPodaci se pristupaju sekvencijalno bez zasebnog niza indeksa.
INDEXPodaci se pristupaju putem zasebnog niza indeksa.
INDEX_TO_DIRECTNiz indeksa mapira svaki primitivni element mapiranja na položaj u nizu podataka.

Properties

Dodajte normalni sloj mreži (DIRECT mapiranje):

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

Dodajte UV koordinate (INDEX_TO_DIRECT mapiranje):

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

Vidi također

 Hrvatski