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 VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | čtení | Sémantický typ této vrstvy (např., NORMAL, UV, VERTEX_COLOR). |
name | str | čtení/zápis | Volitelný název pro tuto vrstvu. |
mapping_mode | MappingMode | čtení/zápis | Řídí, ke kterému geometrickému primitivu je každá hodnota dat přiřazena. |
reference_mode | ReferenceMode | čtení/zápis | Řídí, zda jsou hodnoty adresovány přímo nebo prostřednictvím pole indexů. |
indices | list[int] | čtení | Pole indexů používané, když reference_mode je INDEX_TO_DIRECT. |
data | list[FVector4] | číst | Surové datové hodnoty uložené jako FVector4 záznamy (k dispozici na VertexElementFVector podtřídy). |
Methods
| Methods | Methods | Methods |
|---|---|---|
set_data(data) | None | Nahraďte pole dat. Přijímá list[FVector2], list[FVector3], nebo list[FVector4]; hodnoty jsou normalizovány na FVector4 interně. |
set_indices(data) | None | Nahraďte pole indexů seznamem celých čísel. |
clear() | None | Odstraňte všechny hodnoty dat a indexy z vrstvy. |
copy_to(target) | None | Zkopí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 VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVMethods
VertexElement → VertexElementFVector → VertexElementUV
Methods
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Methods | Methods | Methods |
|---|---|---|
texture_mapping | TextureMapping | Texturový kanál, který tato UV vrstva obsluhuje. Výchozí hodnota je TextureMapping.DIFFUSE. |
Další vlastnost
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | číst | Texturový 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 VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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| Methods | Methods |
|---|---|
NORMAL | Vektory normál povrchu. |
UV | UV souřadnice textury. |
VERTEX_COLOR | Barva RGBA na vrcholu. |
TANGENT | Tangenciální vektory pro normal mapping. |
BINORMAL | Binormální (bitangenciální) vektory. |
SMOOTHING_GROUP | Celočíselná ID skupin vyhlazování pro každý polygon. |
MATERIAL | Index materiálu pro každý polygon. |
POLYGON_GROUP | Index seskupení polygonů. |
VERTEX_CREASE | Váhy záhybů vrcholů při subdivision. |
EDGE_CREASE | Váhy záhybů hran při subdivision. |
USER_DATA | Libovolná uživatelem definovaná data. |
VISIBILITY | Příznaky viditelnosti pro jednotlivé prvky. |
SPECULAR | Speculární barva nebo intenzita. |
WEIGHT | Váhy blendování pro skinning. |
HOLE | Pří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| Methods | Methods |
|---|---|
CONTROL_POINT | Jedna hodnota na kontrolní 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 se vztahuje na celou síť. |
Výčet ReferenceMode
Určuje, jak je indexováno datové pole.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
DIRECT | Data jsou přístupována sekvenčně bez samostatného pole indexů. |
INDEX | Data jsou přístupována přes samostatné pole indexů. |
INDEX_TO_DIRECT | Pole 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")