VertexElement — Aspose.3D Python API Reference

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

VertexElement je apstraktna osnovna klasa za sve slojeve podataka po vrhu koji se mogu prikačiti na Geometry objekat. Svaki sloj sadrži niz vrednosti podataka zajedno sa mapping_mode i reference_mode metapodacima koji opisuju kako se podaci mapiraju na osnovnu geometriju. Podklase su specijalizovane za normale, UV koordinate, boje vrhova, tangente, binormale i grupe izglađivanja.


from aspose.threed.entities import VertexElement

VertexElement

vertex_element_typeVertexElementTypečitanjeSemantički tip ovog sloja (npr., NORMAL, UV, VERTEX_COLOR).
namestrčitanje/pisanjeOpcionalno ime za ovaj sloj.
mapping_modeMappingModečitanje/pisanjeKontroliše koji geometrijski primitiv je povezan sa svakom vrednošću podataka.
reference_modeReferenceModečitanje/pisanjeKontroliše da li se vrednosti adresiraju direktno ili putem niza indeksa.
indiceslist[int]čitanjeNiz indeksa koji se koristi kada reference_mode je INDEX_TO_DIRECT.
datalist[FVector4]čita seSirove vrednosti podataka pohranjene kao FVector4 unosi (dostupni na VertexElementFVector podklasama).

set_data(data)NoneZamenite niz podataka. Prihvata list[FVector2], list[FVector3], ili list[FVector4]; vrednosti su normalizovane na FVector4 interno.
set_indices(data)NoneZamenite niz indeksa listom celih brojeva.
clear()NoneUklonite sve vrednosti podataka i indekse iz sloja.
copy_to(target)NoneKopirajte podatke i indekse u drugi VertexElementFVector instancu.

VertexElementNormal

Čuva vektore površinskih normala. Podaci o normalama se tipično koriste od strane renderera za proračune osvetljenja.

from aspose.threed.entities import VertexElementNormal

VertexElementVertexElementFVectorVertexElementNormal

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

vertex_element_type je fiksirano na VertexElementType.NORMAL.


VertexElementUV

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

from aspose.threed.entities import VertexElementUV

VertexElementVertexElementFVectorVertexElementUV

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
texture_mappingTextureMappingKanal teksture koji ovaj UV sloj služi. Podrazumevano je TextureMapping.DIFFUSE.

Dodatna svojstva

texture_mappingTextureMappingčitajKanal teksture sa kojim je ovaj UV sloj povezan.

add_data(data)

Dodaj UV koordinate. Prihvata list[Vector2], list[Vector3], list[FVector2], list[FVector3], ili list[FVector4]. Sve vrednosti se interno čuvaju kao FVector4 sa neiskorišćenim komponentama postavljenim na 0.0.


VertexElementVertexColor

Čuva RGBA vrednosti boje po vrhu u opsegu 0–1.

from aspose.threed.entities import VertexElementVertexColor

VertexElementVertexElementFVectorVertexElementVertexColor

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

vertex_element_type je fiksirano na VertexElementType.VERTEX_COLOR.


VertexElementTangent

Čuva vektore tangente po vrhu ili po uglu, koji se koriste za renderovanje normalnih mapa.

from aspose.threed.entities import VertexElementTangent

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type je fiksirano na VertexElementType.TANGENT.


VertexElementBinormal

Čuva binormale (bitangente) po vrhu ili po uglu, dopunjujući VertexElementTangent za mapiranje normalnih mapa u tangentnom prostoru.

from aspose.threed.entities import VertexElementBinormal

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type je fiksirano na VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Čuva ID‑ove grupa zaglađivanja po poligonu (cijeli brojevi). Učitava se iz OBJ fajlova koji sadrže s deklaracije.

from aspose.threed.entities import VertexElementSmoothingGroup

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type je fiksirano na VertexElementType.SMOOTHING_GROUP.


Enumeracija VertexElementType

Identifikuje semantičku ulogu sloja elementa vrha.

from aspose.threed.entities import VertexElementType
NORMALVektori površinskih normala.
UVUV koordinate teksture.
VERTEX_COLORRGBA boja po vrhu.
TANGENTTangencijalni vektori za normal mapiranje.
BINORMALBinormal (bitangent) vektori.
SMOOTHING_GROUPPo‑poligonu integer ID‑jevi grupa zaglađivanja.
MATERIALIndeks materijala po poligonu.
POLYGON_GROUPIndeks grupisanja poligona.
VERTEX_CREASETežine nabornih (crease) vrhova poddeljivanja.
EDGE_CREASETežine nabornih (crease) ivica poddeljivanja.
USER_DATAProizvoljni podaci definisani od strane korisnika.
VISIBILITYZastavice vidljivosti po elementu.
SPECULARSpecularna boja ili intenzitet.
WEIGHTTežine mešanja za skinning.
HOLEZastavice rupa poligona.

Enumeracija MappingMode

Kontroliše kojem geometrijskom primitivu je svaka vrednost elementa vrha dodeljena.

from aspose.threed.entities import MappingMode
CONTROL_POINTJedna vrednost po kontrolnoj tački (vrh).
POLYGON_VERTEXJedna vrednost po uglu poligona (face-vertex).
POLYGONJedna vrednost po poligonu.
EDGEJedna vrednost po ivici.
ALL_SAMEJedna vrednost se primenjuje na ceo mesh.

Enumeracija ReferenceMode

Kontroliše kako je indeksiran niz podataka.

from aspose.threed.entities import ReferenceMode
DIRECTPodaci se pristupaju sekvencijalno bez zasebnog niza indeksa.
INDEXPodaci se pristupaju putem zasebnog niza indeksa.
INDEX_TO_DIRECTNiz indeksa mapira svaki primitiv mapiranja na poziciju u nizu podataka.

Prikači normalni sloj na mrežu (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")

Prikači 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đe

 Српски