VertexElement — Aspose.3D Python API Reference

Balíček: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement je abstraktní základní třída pro všechny vrstvy dat na vrchol, které lze připojit k Geometry objektu. Každá vrstva obsahuje pole hodnot dat spolu s mapping_mode a reference_mode metadata, která popisují, jak jsou data mapována na podkladovou geometrii. Podtřídy jsou specializovány pro normály, UV souřadnice, barvy vrcholů, tangenty, binormály a skupiny vyhlazování.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypečteníSémantický typ této vrstvy (např., NORMAL, UV, VERTEX_COLOR).
namestrčtení/zápisVolitelný název pro tuto vrstvu.
mapping_modeMappingModečtení/zápisŘídí, ke kterému geometrickému primitivu je každá hodnota dat přiřazena.
reference_modeReferenceModečtení/zápisŘídí, zda jsou hodnoty adresovány přímo nebo prostřednictvím pole indexů.
indiceslist[int]čteníPole indexů používané, když reference_mode je INDEX_TO_DIRECT.
datalist[FVector4]čístSurové datové hodnoty uložené jako FVector4 záznamy (k dispozici na VertexElementFVector podtřídy).

Methods

MethodsMethodsMethods
set_data(data)NoneNahraďte pole dat. Přijímá list[FVector2], list[FVector3], nebo list[FVector4]; hodnoty jsou normalizovány na FVector4 interně.
set_indices(data)NoneNahraďte pole indexů seznamem celých čísel.
clear()NoneOdstraňte všechny hodnoty dat a indexy z vrstvy.
copy_to(target)NoneZkopírujte data a indexy do jiné VertexElementFVector instance.

VertexElementNormal

Ukládá vektory normál povrchu. Data o normálách jsou typicky používána renderery pro výpočty osvětlení.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

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

vertex_element_type je pevně nastaveno na VertexElementType.NORMAL.


VertexElementUV

Ukládá UV texturové souřadnice. Síť může nést více UV vrstev pro různé texturové kanály.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingTexturový kanál, který tato UV vrstva obsluhuje. Výchozí hodnota je TextureMapping.DIFFUSE.

Další vlastnost

MethodsMethodsMethodsMethods
texture_mappingTextureMappingčístTexturový kanál, ke kterému je tato UV vrstva přiřazena.

add_data(data)

Přidejte data UV souřadnic. Přijímá list[Vector2], list[Vector3], list[FVector2], list[FVector3], nebo list[FVector4]. Všechny hodnoty jsou interně uloženy jako FVector4 s nevyužitými komponentami nastavenými na 0.0.


VertexElementVertexColor

Ukládá RGBA hodnoty barvy na úrovni vrcholu v rozsahu 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

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

vertex_element_type je nastaveno na VertexElementType.VERTEX_COLOR.


VertexElementTangent

Ukládá vektory tangentu pro každý vrchol nebo každý roh, používané při vykreslování normálových map.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type je nastaveno na VertexElementType.TANGENT.


VertexElementBinormal

Ukládá binormální (bitangent) vektory per-vertex nebo per-corner, doplňující VertexElementTangent pro tangent-space normal mapping.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type je nastaveno na VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Ukládá celočíselná ID skupin vyhlazování pro každý polygon. Načítá se z OBJ souborů, které obsahují s deklarace.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type je nastaveno na VertexElementType.SMOOTHING_GROUP.


Výčet VertexElementType

Identifikuje sémantickou roli vrstvy elementu vrcholu.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALVektory normál povrchu.
UVUV souřadnice textury.
VERTEX_COLORBarva RGBA na vrcholu.
TANGENTTangenciální vektory pro normal mapping.
BINORMALBinormální (bitangenciální) vektory.
SMOOTHING_GROUPCeločíselná ID skupin vyhlazování pro každý polygon.
MATERIALIndex materiálu pro každý polygon.
POLYGON_GROUPIndex seskupení polygonů.
VERTEX_CREASEVáhy záhybů vrcholů při subdivision.
EDGE_CREASEVáhy záhybů hran při subdivision.
USER_DATALibovolná uživatelem definovaná data.
VISIBILITYPříznaky viditelnosti pro jednotlivé prvky.
SPECULARSpeculární barva nebo intenzita.
WEIGHTVáhy blendování pro skinning.
HOLEPříznaky děr polygonu.

Výčet MappingMode

Určuje, ke kterému geometrickému primitivu je přiřazena hodnota elementu vrcholu.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTJedna hodnota na kontrolní bod (vrchol).
POLYGON_VERTEXJedna hodnota na roh polygonu (face-vertex).
POLYGONJedna hodnota na polygon.
EDGEJedna hodnota na hranu.
ALL_SAMEJedna hodnota se vztahuje na celou síť.

Výčet ReferenceMode

Určuje, jak je indexováno datové pole.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTData jsou přístupována sekvenčně bez samostatného pole indexů.
INDEXData jsou přístupována přes samostatné pole indexů.
INDEX_TO_DIRECTPole indexů mapuje každý primitivní prvek mapování na pozici v poli dat.

Methods

Připojit vrstvu normál k síti (PŘÍMÉ mapování):

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

Připojit UV souřadnice (mapování 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")

Viz také

 Čeština