VertexElement — Aspose.3D Python API Reference

패키지: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement 는 객체에 연결될 수 있는 모든 정점당 데이터 레이어의 추상 기본 클래스입니다. Geometry 객체. 각 레이어는 데이터 값 배열을 다음과 함께 보유합니다. mapping_modereference_mode 데이터가 기본 기하학에 어떻게 매핑되는지를 설명하는 메타데이터. 서브클래스는 노멀, UV 좌표, 정점 색상, 탄젠트, 바이노멀 및 스무딩 그룹에 특화됩니다.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypeRead이 레이어의 의미 유형 (예:., NORMAL, UV, VERTEX_COLOR).
namestrRead/Write이 레이어에 대한 선택적 이름.
mapping_modeMappingModeRead/Write각 데이터 값이 연결되는 기하학 프리미티브를 제어합니다.
reference_modeReferenceModeRead/Write값이 직접 주소 지정되는지 인덱스 배열을 통해 주소 지정되는지를 제어합니다.
indiceslist[int]Read인덱스 배열은 다음과 같이 사용됩니다. reference_modeINDEX_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

per-vertex 또는 per-corner 바이노멀(비탄젠트) 벡터를 저장하고, 보완합니다 VertexElementTangent 탄젠트 공간 노멀 매핑용.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type 고정값은 VertexElementType.BINORMAL.


VertexElementSmoothingGroup

다각형당 정수 스무딩 그룹 ID를 저장합니다. 다음을 포함하는 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표면 노멀 벡터.
UV텍스처 UV 좌표.
VERTEX_COLOR정점당 RGBA 색상.
TANGENT노멀 매핑용 탄젠트 벡터.
BINORMAL바이노멀(비탄젠트) 벡터.
SMOOTHING_GROUP다각형당 스무딩 그룹 정수 ID.
MATERIAL다각형당 재질 인덱스.
POLYGON_GROUP다각형 그룹화 인덱스.
VERTEX_CREASE서브디비전 정점 크리즈 가중치.
EDGE_CREASE서브디비전 엣지 크리즈 가중치.
USER_DATA임의의 사용자 정의 데이터.
VISIBILITY요소별 가시성 플래그.
SPECULAR반사 색상 또는 강도.
WEIGHT스키닝을 위한 블렌드 가중치.
HOLE폴리곤 구멍 플래그.

MappingMode 열거형

각 버텍스 요소 값이 연결되는 기하 프리미티브를 제어합니다.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINT제어점(버텍스)당 하나의 값.
POLYGON_VERTEX폴리곤 코너(페이스-버텍스)당 하나의 값.
POLYGON폴리곤당 하나의 값.
EDGE에지당 하나의 값.
ALL_SAME단일 값이 전체 메시에 적용됩니다.

ReferenceMode 열거형

데이터 배열이 인덱싱되는 방식을 제어합니다.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECT데이터는 별도의 인덱스 배열 없이 순차적으로 접근됩니다.
INDEX데이터는 별도의 인덱스 배열을 통해 접근됩니다.
INDEX_TO_DIRECT인덱스 배열은 각 매핑 프리미티브를 데이터 배열의 위치에 매핑합니다.

Methods

메시에 노멀 레이어를 연결합니다 (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")

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

참고

 한국어