VertexElement — Aspose.3D Python API Reference
Balík: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement je abstraktnou základnou triedou pre všetky vrstvy dát na vrchole, ktoré môžu byť pripojené k Geometry objektu. Každá vrstva obsahuje pole hodnôt dát spolu s mapping_mode a reference_mode metadátami, ktoré opisujú, ako sa dáta mapujú na podkladovú geometriu. Podtriedy sú špecializované pre normály, UV súradnice, farby vrcholov, tangenty, binormály a vyhladzovacie skupiny.
from aspose.threed.entities import VertexElementVertexElement
vertex_element_type | VertexElementType | čítanie | Sémantický typ tejto vrstvy (napr., NORMAL, UV, VERTEX_COLOR). |
name | str | čítanie/zápis | Voliteľný názov pre túto vrstvu. |
mapping_mode | MappingMode | čítanie/zápis | Ovláda, ktorý geometrický primitív je priradený ku každej hodnote dát. |
reference_mode | ReferenceMode | čítanie/zápis | Ovláda, či sú hodnoty adresované priamo alebo prostredníctvom poľa indexov. |
indices | list[int] | čítanie | Pole indexov použité keď reference_mode je INDEX_TO_DIRECT. |
data | list[FVector4] | čítanie | Surové dátové hodnoty uložené ako FVector4 položky (k dispozícii na VertexElementFVector podtriedy). |
set_data(data) | None | Nahradiť pole dát. Prijíma list[FVector2], list[FVector3], alebo list[FVector4]; hodnoty sú normalizované na FVector4 interne. |
set_indices(data) | None | Nahradiť pole indexov zoznamom celých čísel. |
clear() | None | Odstrániť všetky hodnoty dát a indexy z vrstvy. |
copy_to(target) | None | Skopírovať dáta a indexy do iného VertexElementFVector inštancie. |
VertexElementNormal
Ukladá vektory normál povrchu. Dáta o normálach sa typicky používajú renderermi na výpočty osvetlenia.
from aspose.threed.entities import VertexElementNormalVertexElement → VertexElementFVector → VertexElementNormal
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type je nastavené na VertexElementType.NORMAL.
VertexElementUV
Ukladá UV textúrové súradnice. Mriežka môže obsahovať viacero UV vrstiev pre rôzne textúrové kanály.
from aspose.threed.entities import VertexElementUVVertexElement → VertexElementFVector → VertexElementUV
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)texture_mapping | TextureMapping | Textúrový kanál, ktorý táto UV vrstva slúži. Predvolene je TextureMapping.DIFFUSE. |
Ďalšia vlastnosť
texture_mapping | TextureMapping | čítanie | Textúrový kanál, s ktorým je táto UV vrstva spojená. |
add_data(data)
Pridať UV súradnicové dáta. Prijíma list[Vector2], list[Vector3], list[FVector2], list[FVector3], alebo list[FVector4]. Všetky hodnoty sú uložené interne ako FVector4 s nepoužívanými komponentmi nastavenými na 0.0.
VertexElementVertexColor
Ukladá hodnoty farieb RGBA na vrchole v rozsahu 0–1.
from aspose.threed.entities import VertexElementVertexColorVertexElement → VertexElementFVector → VertexElementVertexColor
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type je nastavené na VertexElementType.VERTEX_COLOR.
VertexElementTangent
Ukladá vektorové tangenty na úrovni vrchola alebo rohu, používané pri renderovaní normálových máp.
from aspose.threed.entities import VertexElementTangentVertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type je nastavené na VertexElementType.TANGENT.
VertexElementBinormal
Ukladá per-vertex alebo per-corner binormálne (bitangent) vektory, dopĺňajúc VertexElementTangent pre mapovanie normál v tangentnom priestore.
from aspose.threed.entities import VertexElementBinormalVertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type je nastavené na VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Ukladá celočíselné ID skupín vyhladzovania pre každý polygon. Načítané z OBJ súborov, ktoré obsahujú s deklarácie.
from aspose.threed.entities import VertexElementSmoothingGroupVertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type je nastavené na VertexElementType.SMOOTHING_GROUP.
Výčtový typ VertexElementType
Identifikuje sémantickú úlohu vrstvy prvku vrchola.
from aspose.threed.entities import VertexElementTypeNORMAL | Vektory normál povrchu. |
UV | UV súradnice textúry. |
VERTEX_COLOR | RGBA farba na vrchole. |
TANGENT | Tangentové vektory pre mapovanie normál. |
BINORMAL | Binormálové (bitangent) vektory. |
SMOOTHING_GROUP | Celočíselné ID skupín vyhladzovania pre každý polygon. |
MATERIAL | Index materiálu pre každý polygon. |
POLYGON_GROUP | Index zoskupenia polygonov. |
VERTEX_CREASE | Váhy záhybov vrcholov pri subdivízii. |
EDGE_CREASE | Váhy záhybov hrán pri subdivízii. |
USER_DATA | Ľubovoľné používateľom definované dáta. |
VISIBILITY | Príznaky viditeľnosti pre jednotlivé elementy. |
SPECULAR | Odrazová farba alebo intenzita. |
WEIGHT | Váhy miešania pre skinning. |
HOLE | Príznaky dier v polygónoch. |
Výčtový typ MappingMode
Určuje, s ktorým geometrickým primitívom je každá hodnota prvku vrchola spojená.
from aspose.threed.entities import MappingModeCONTROL_POINT | Jedna hodnota na riadiaci bod (vrchol). |
POLYGON_VERTEX | Jedna hodnota na roh polygonu (face-vertex). |
POLYGON | Jedna hodnota na polygon. |
EDGE | Jedna hodnota na hranu. |
ALL_SAME | Jedna hodnota sa vzťahuje na celú sieť. |
Výčtový typ ReferenceMode
Určuje, ako je indexované pole dát.
from aspose.threed.entities import ReferenceModeDIRECT | Dáta sa pristupuje sekvenčne bez samostatného poľa indexov. |
INDEX | Dáta sa pristupuje cez samostatné pole indexov. |
INDEX_TO_DIRECT | Pole indexov mapuje každý mapovací primitív na pozíciu v poli dát. |
Pripojte vrstvu normál k sieti (priamy 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")Pripojiť UV súradnice (mapovanie INDEX_TO_DIRECT):
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")