VertexElement — Aspose.3D Python API Reference

Pakiet: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement jest abstrakcyjną klasą bazową dla wszystkich warstw danych per‑wierzchołkowych, które mogą być dołączone do Geometry obiektu. Każda warstwa przechowuje tablicę wartości danych wraz z mapping_mode oraz reference_mode metadanymi opisującymi, jak dane mapują się na podstawową geometrię. Podklasy są wyspecjalizowane dla normalnych, współrzędnych UV, kolorów wierzchołków, stycznych, binormalnych oraz grup wygładzania.


ColladaSaveOptions

from aspose.threed.entities import VertexElement

ColladaSaveOptions

VertexElement

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
vertex_element_typeVertexElementTypeodczytSemantyczny typ tej warstwy (np., NORMAL, UV, VERTEX_COLOR).
namestrodczyt/zapisOpcjonalna nazwa tej warstwy.
mapping_modeMappingModeodczyt/zapisKontroluje, z którym prymitywem geometrii powiązana jest każda wartość danych.
reference_modeReferenceModeodczyt/zapisKontroluje, czy wartości są adresowane bezpośrednio, czy poprzez tablicę indeksów.
indiceslist[int]odczytTablica indeksów używana, gdy reference_mode jest INDEX_TO_DIRECT.
datalist[FVector4]odczytSurowe wartości danych przechowywane jako FVector4 wpisy (dostępne w VertexElementFVector podklasach).

ColladaSaveOptions

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
set_data(data)NoneZastąp tablicę danych. Akceptuje list[FVector2], list[FVector3], lub list[FVector4]; wartości są normalizowane do FVector4 wewnętrznie.
set_indices(data)NoneZastąp tablicę indeksów listą liczb całkowitych.
clear()NoneUsuń wszystkie wartości danych i indeksy z warstwy.
copy_to(target)NoneSkopiuj dane i indeksy do innego VertexElementFVector instancji.

VertexElementNormal

Przechowuje wektory normalne powierzchni. Dane normalne są zazwyczaj używane przez renderery do obliczeń oświetlenia.

from aspose.threed.entities import VertexElementNormal

ColladaSaveOptions

VertexElementVertexElementFVectorVertexElementNormal

ColladaSaveOptions

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

vertex_element_type jest ustalone na VertexElementType.NORMAL.


Returns: VertexElementUV

add.

from aspose.threed.entities import VertexElementUV

ColladaSaveOptions

VertexElementVertexElementFVectorVertexElementUV

ColladaSaveOptions

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
ColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
texture_mappingTextureMappingKanał tekstury, który obsługuje ta warstwa UV. Domyślnie TextureMapping.DIFFUSE.

removeProperty(property)

ColladaSaveOptionsColladaSaveOptionsColladaSaveOptionsColladaSaveOptions
texture_mappingTextureMappingodczytKanał tekstury, z którym powiązana jest ta warstwa UV.

add_data(data)

Dołącz dane współrzędnych UV. Akceptuje list[Vector2], list[Vector3], list[FVector2], list[FVector3], lub list[FVector4]. Wszystkie wartości są przechowywane wewnętrznie jako FVector4 z nieużywanymi składnikami ustawionymi na 0.0.


VertexElementVertexColor

Przechowuje wartości koloru RGBA dla każdego wierzchołka w zakresie 0–1.

from aspose.threed.entities import VertexElementVertexColor

ColladaSaveOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ColladaSaveOptions

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

vertex_element_type jest ustalone na VertexElementType.VERTEX_COLOR.


VertexElementTangent

Przechowuje wektory stycznych dla każdego wierzchołka lub rogu, używane przy renderowaniu map normalnych.

from aspose.threed.entities import VertexElementTangent

ColladaSaveOptions

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type jest ustalone na VertexElementType.TANGENT.


VertexElementBinormal

Przechowuje wektory binormalne (bitangens) na wierzchołek lub na róg, uzupełniając VertexElementTangent dla mapowania normalnego w przestrzeni stycznej.

from aspose.threed.entities import VertexElementBinormal

ColladaSaveOptions

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type jest ustalone na VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Przechowuje całkowite identyfikatory grup wygładzania na wielokąt. Ładowane z plików OBJ, które zawierają s deklaracje.

from aspose.threed.entities import VertexElementSmoothingGroup

ColladaSaveOptions

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type jest ustalone na VertexElementType.SMOOTHING_GROUP.


A3DObject, SceneObject, Entity — podstawowe klasy bazowe współdzielone przez wszystkie obiekty @aspose/3d

Określa semantyczną rolę warstwy elementu wierzchołka.

from aspose.threed.entities import VertexElementType
ColladaSaveOptionsColladaSaveOptions
NORMALWektory normalne powierzchni.
UVWspółrzędne UV tekstury.
VERTEX_COLORKolor RGBA na wierzchołku.
TANGENTWektory stycznych do mapowania normalnego.
BINORMALWektory binormalne (bitangent).
SMOOTHING_GROUPIdentyfikatory całkowite grup wygładzania dla każdego wielokąta.
MATERIALIndeks materiału dla każdego wielokąta.
POLYGON_GROUPIndeks grupowania wielokątów.
VERTEX_CREASEWagi załamań wierzchołków podziału.
EDGE_CREASEWagi załamań krawędzi podziału.
USER_DATAArbitralne dane definiowane przez użytkownika.
VISIBILITYFlagi widoczności dla każdego elementu.
SPECULARKolor lub intensywność odbicia.
WEIGHTWagi mieszania dla skinningu.
HOLEFlagi otworów w wielokątach.

enumeracja MappingMode

A3DObject, SceneObject, Entity — podstawowe klasy bazowe współdzielone przez wszystkie obiekty @aspose/3d.

from aspose.threed.entities import MappingMode
ColladaSaveOptionsColladaSaveOptions
CONTROL_POINTJedna wartość na punkt kontrolny (wierzchołek).
POLYGON_VERTEXJedna wartość na róg wielokąta (face-vertex).
POLYGONJedna wartość na wielokąt.
EDGEJedna wartość na krawędź.
ALL_SAMEJedna wartość ma zastosowanie do całej siatki.

Constructor

Pakiet: @aspose/3d (v24.12.0).

from aspose.threed.entities import ReferenceMode
ColladaSaveOptionsColladaSaveOptions
DIRECTDane są dostępne kolejno, bez osobnej tablicy indeksów.
INDEXDane są dostępne za pośrednictwem osobnej tablicy indeksów.
INDEX_TO_DIRECTTablica indeksów mapuje każdy prymityw mapowania na pozycję w tablicy danych.

ColladaSaveOptions

Dołącz warstwę normalną do siatki (mapowanie DIRECT):

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

Te trzy klasy stanowią podstawę hierarchii klas @aspose/3d. Każdy publiczny obiekt w bibliotece ostatecznie dziedziczy po A3DObject, który zapewnia system nazw i dynamicznych właściwości. SceneObject dodaje śledzenie przynależności do sceny. Entity jest bazą dla wszystkich obiektów, które mogą być dołączone do Node jako jego główna jednostka (siatki, kamery, światła itp.).:

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

Zobacz także

 Polski