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 VertexElement

VertexElement

vertex_element_typeVertexElementTypečítanieSémantický typ tejto vrstvy (napr., NORMAL, UV, VERTEX_COLOR).
namestrčítanie/zápisVoliteľný názov pre túto vrstvu.
mapping_modeMappingModečítanie/zápisOvláda, ktorý geometrický primitív je priradený ku každej hodnote dát.
reference_modeReferenceModečítanie/zápisOvláda, či sú hodnoty adresované priamo alebo prostredníctvom poľa indexov.
indiceslist[int]čítaniePole indexov použité keď reference_mode je INDEX_TO_DIRECT.
datalist[FVector4]čítanieSurové dátové hodnoty uložené ako FVector4 položky (k dispozícii na VertexElementFVector podtriedy).

set_data(data)NoneNahradiť pole dát. Prijíma list[FVector2], list[FVector3], alebo list[FVector4]; hodnoty sú normalizované na FVector4 interne.
set_indices(data)NoneNahradiť pole indexov zoznamom celých čísel.
clear()NoneOdstrániť všetky hodnoty dát a indexy z vrstvy.
copy_to(target)NoneSkopí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 VertexElementNormal

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

VertexElementVertexElementFVectorVertexElementUV

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
texture_mappingTextureMappingTextúrový kanál, ktorý táto UV vrstva slúži. Predvolene je TextureMapping.DIFFUSE.

Ďalšia vlastnosť

texture_mappingTextureMappingčítanieTextú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 VertexElementVertexColor

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

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 VertexElementType
NORMALVektory normál povrchu.
UVUV súradnice textúry.
VERTEX_COLORRGBA farba na vrchole.
TANGENTTangentové vektory pre mapovanie normál.
BINORMALBinormálové (bitangent) vektory.
SMOOTHING_GROUPCeločíselné ID skupín vyhladzovania pre každý polygon.
MATERIALIndex materiálu pre každý polygon.
POLYGON_GROUPIndex zoskupenia polygonov.
VERTEX_CREASEVáhy záhybov vrcholov pri subdivízii.
EDGE_CREASEVáhy záhybov hrán pri subdivízii.
USER_DATAĽubovoľné používateľom definované dáta.
VISIBILITYPríznaky viditeľnosti pre jednotlivé elementy.
SPECULAROdrazová farba alebo intenzita.
WEIGHTVáhy miešania pre skinning.
HOLEPrí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 MappingMode
CONTROL_POINTJedna hodnota na riadiaci bod (vrchol).
POLYGON_VERTEXJedna hodnota na roh polygonu (face-vertex).
POLYGONJedna hodnota na polygon.
EDGEJedna hodnota na hranu.
ALL_SAMEJedna hodnota sa vzťahuje na celú sieť.

Výčtový typ ReferenceMode

Určuje, ako je indexované pole dát.

from aspose.threed.entities import ReferenceMode
DIRECTDáta sa pristupuje sekvenčne bez samostatného poľa indexov.
INDEXDáta sa pristupuje cez samostatné pole indexov.
INDEX_TO_DIRECTPole 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")

Pozri tiež

 Slovenčina