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 VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | čitanje | Semantički tip ovog sloja (npr., NORMAL, UV, VERTEX_COLOR). |
name | str | čitanje/pisanje | Opcionalno ime za ovaj sloj. |
mapping_mode | MappingMode | čitanje/pisanje | Upravlja kojim geometrijskim primitivom je svaka vrijednost podataka povezana. |
reference_mode | ReferenceMode | čitanje/pisanje | Upravlja hoće li se vrijednosti adresirati izravno ili putem niza indeksa. |
indices | list[int] | čitanje | Niz indeksa koji se koristi kada reference_mode je INDEX_TO_DIRECT. |
data | list[FVector4] | čitaj | Sirove vrijednosti podataka pohranjene kao FVector4 unosi (dostupni na VertexElementFVector podklase). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Zamijeni niz podataka. Prihvaća list[FVector2], list[FVector3], ili list[FVector4]; vrijednosti se normaliziraju na FVector4 interno. |
set_indices(data) | None | Zamijeni niz indeksa popisom cijelih brojeva. |
clear() | None | Ukloni sve vrijednosti podataka i indekse iz sloja. |
copy_to(target) | None | Kopiraj 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 VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVProperties
VertexElement → VertexElementFVector → VertexElementUV
Properties
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Properties | Properties | Properties |
|---|---|---|
texture_mapping | TextureMapping | Teksturni kanal koji ovaj UV sloj služi. Zadano je TextureMapping.DIFFUSE. |
Dodatna svojstva
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | čitaj | Teksturni 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 VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type je postavljeno na VertexElementType.SMOOTHING_GROUP.
Enumeracija VertexElementType
Identificira semantičku ulogu sloja elementa vrha.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Vektori površinskih normala. |
UV | UV koordinate teksture. |
VERTEX_COLOR | RGBA boja po vrhu. |
TANGENT | Tangencijalni vektori za normalno mapiranje. |
BINORMAL | Binormal (bitangent) vektori. |
SMOOTHING_GROUP | Cijeli ID‑ovi grupa zaglađivanja po poligonu. |
MATERIAL | Indeks materijala po poligonu. |
POLYGON_GROUP | Indeks grupiranja poligona. |
VERTEX_CREASE | Težine nabora vrhova podjela. |
EDGE_CREASE | Težine nabora rubova podjela. |
USER_DATA | Proizvoljni podaci definirani od strane korisnika. |
VISIBILITY | Zastavice vidljivosti po elementu. |
SPECULAR | Specularna boja ili intenzitet. |
WEIGHT | Težine blendanja za skinning. |
HOLE | Zastavice rupa poligona. |
Enumeracija MappingMode
Upravlja s kojim geometrijskim primitivom je svaka vrijednost elementa vrha povezana.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Jedna vrijednost po kontrolnoj točki (vrh). |
POLYGON_VERTEX | Jedna vrijednost po uglu poligona (vrh‑lica). |
POLYGON | Jedna vrijednost po poligonu. |
EDGE | Jedna vrijednost po rubu. |
ALL_SAME | Jedna vrijednost primjenjuje se na cijelu mrežu. |
Enumeracija ReferenceMode
Upravlja načinom indeksiranja podatkovnog niza.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Podaci se pristupaju sekvencijalno bez zasebnog niza indeksa. |
INDEX | Podaci se pristupaju putem zasebnog niza indeksa. |
INDEX_TO_DIRECT | Niz 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")