VertexElement — Aspose.3D Python API Reference

Пакет: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement е абстрактен базов клас за всички слоеве от данни за всеки връх, които могат да бъдат прикрепени към Geometry обект. Всеки слой съдържа масив от стойности на данни заедно с mapping_mode и reference_mode метаданни, които описват как данните се съпоставят с подлежащата геометрия. Подкласовете са специализирани за нормали, UV координати, цветове на върховете, тангенти, бинормали и групи за изглаждане.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypeчетенеСемантичен тип на този слой (например,., NORMAL, UV, VERTEX_COLOR).
namestrчетене/писанеОпционално име за този слой.
mapping_modeMappingModeчетене/писанеКонтролира кой геометричен примитив е свързан с всяка стойност на данните.
reference_modeReferenceModeчетене/писанеКонтролира дали стойностите се адресират директно или чрез масив от индекси.
indiceslist[int]четенеМасив от индекси, използван когато reference_mode е INDEX_TO_DIRECT.
datalist[FVector4]прочетеноСурови данни, съхранени като FVector4 записи (достъпни на VertexElementFVector подкласове).

Methods

MethodsMethodsMethods
set_data(data)NoneЗаменете масива с данни. Приема list[FVector2], list[FVector3], или list[FVector4]; стойностите се нормализират до FVector4 вътрешно.
set_indices(data)NoneЗаменете масива от индекси със списък от цели числа.
clear()NoneПремахнете всички стойности на данни и индекси от слоя.
copy_to(target)NoneКопирайте данните и индексите към друг VertexElementFVector екземпляр.

VertexElementNormal

Съхранява векторите на повърхностните нормали. Данните за нормалите обикновено се използват от рендерерите за изчисления на осветлението.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

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

vertex_element_type е фиксирано на VertexElementType.NORMAL.


VertexElementUV

Съхранява UV текстурните координати. Мрежата може да съдържа множество UV слоеве за различни текстурни канали.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingТекстурният канал, който обслужва този UV слой. По подразбиране е TextureMapping.DIFFUSE.

Допълнително свойство

MethodsMethodsMethodsMethods
texture_mappingTextureMappingчетенеТекстурният канал, с който е свързан този UV слой.

add_data(data)

Добавяне на UV координатни данни. Приема list[Vector2], list[Vector3], list[FVector2], list[FVector3], или list[FVector4]. Всички стойности се съхраняват вътрешно като FVector4 като неизползваните компоненти се задават на 0.0.


VertexElementVertexColor

Съхранява RGBA стойности за цвят на всеки връх в диапазона 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

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

vertex_element_type е фиксирано на VertexElementType.VERTEX_COLOR.


VertexElementTangent

Съхранява тангентните вектори за всеки връх или ъгъл, използвани за рендериране на нормални карти.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type е фиксирано на VertexElementType.TANGENT.


VertexElementBinormal

Съхранява векторите на бинормал (битангенс) за всеки връх или ъгъл, допълвайки VertexElementTangent за нормално картографиране в тангенциалното пространство.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type е фиксирано на VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Съхранява цели числа за групи на изглаждане за всеки полигон. Зарежда се от OBJ файлове, които съдържат s декларации.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type е фиксирано на VertexElementType.SMOOTHING_GROUP.


Перечисление VertexElementType

Идентифицира семантичната роля на слой от елемент на връх.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALВектори на нормалите на повърхността.
UVUV координати на текстурата.
VERTEX_COLORRGBA цвят за всеки връх.
TANGENTТангенциални вектори за нормално картографиране.
BINORMALБинормални (битангенциални) вектори.
SMOOTHING_GROUPЦелочислени ID‑та на групите за изглаждане за всеки полигон.
MATERIALИндекс на материал за всеки полигон.
POLYGON_GROUPИндекс за групиране на полигони.
VERTEX_CREASEТежести на гънка за върхове при подразделяне.
EDGE_CREASEТежести на гънка за ръбове при подразделяне.
USER_DATAПроизволни потребителски дефинирани данни.
VISIBILITYФлагове за видимост по елемент.
SPECULARСпекуларен цвят или интензитет.
WEIGHTТежести за смесване за skinning.
HOLEФлагове за дупки в полигон.

Перечисление MappingMode

Контролира към коя геометрична примитивна единица е свързана стойността на елемента на връх.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTЕдна стойност за всяка контролна точка (върх).
POLYGON_VERTEXЕдна стойност за всеки ъгъл на полигон (face-vertex).
POLYGONЕдна стойност за всеки полигон.
EDGEЕдна стойност за всеки ръб.
ALL_SAMEЕдна стойност се прилага за цялата мрежа.

Перечисление ReferenceMode

Контролира начина, по който се индексира масивът от данни.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTДанните се достъпват последователно без отделен масив с индекси.
INDEXДанните се достъпват чрез отделен масив с индекси.
INDEX_TO_DIRECTМасивът с индекси съпоставя всеки примитив за картографиране към позиция в масива с данни.

Methods

Прикрепете нормален слой към мрежа (DIRECT 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")

Прикрепете UV координати (картографиране 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")

Вижте също

 Български