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 VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | Read | 이 레이어의 의미 유형 (예:., NORMAL, UV, VERTEX_COLOR). |
name | str | Read/Write | 이 레이어에 대한 선택적 이름. |
mapping_mode | MappingMode | Read/Write | 각 데이터 값이 연결되는 기하학 프리미티브를 제어합니다. |
reference_mode | ReferenceMode | Read/Write | 값이 직접 주소 지정되는지 인덱스 배열을 통해 주소 지정되는지를 제어합니다. |
indices | list[int] | Read | 인덱스 배열은 다음과 같이 사용됩니다. reference_mode 은 INDEX_TO_DIRECT. |
data | list[FVector4] | 읽다 | 원시 데이터 값이 저장되는 FVector4 항목(사용 가능 VertexElementFVector 하위 클래스). |
Methods
| Methods | Methods | Methods |
|---|---|---|
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 VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
Methods
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type 은(는) 다음으로 고정됩니다 VertexElementType.NORMAL.
반환값: VertexElementUV
UV 텍스처 좌표를 저장합니다. 메시는 서로 다른 텍스처 채널을 위해 여러 개의 UV 레이어를 가질 수 있습니다.
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 | 이 UV 레이어가 제공하는 텍스처 채널입니다. 기본값은 TextureMapping.DIFFUSE. |
추가 속성
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | 읽기 | 이 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 VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
Methods
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type 고정됩니다 VertexElementType.VERTEX_COLOR.
VertexElementTangent
정점당 또는 코너당 탄젠트 벡터를 저장하며, 이는 노멀 맵 렌더링에 사용됩니다.
from aspose.threed.entities import VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type 고정됩니다 VertexElementType.TANGENT.
VertexElementBinormal
per-vertex 또는 per-corner 바이노멀(비탄젠트) 벡터를 저장하고, 보완합니다 VertexElementTangent 탄젠트 공간 노멀 매핑용.
from aspose.threed.entities import VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type 고정값은 VertexElementType.BINORMAL.
VertexElementSmoothingGroup
다각형당 정수 스무딩 그룹 ID를 저장합니다. 다음을 포함하는 OBJ 파일에서 로드됩니다 s 선언들.
from aspose.threed.entities import VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type 고정값은 VertexElementType.SMOOTHING_GROUP.
VertexElementType 열거형
버텍스 요소 레이어의 의미적 역할을 식별합니다.
from aspose.threed.entities import VertexElementType| Methods | Methods |
|---|---|
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| Methods | Methods |
|---|---|
CONTROL_POINT | 제어점(버텍스)당 하나의 값. |
POLYGON_VERTEX | 폴리곤 코너(페이스-버텍스)당 하나의 값. |
POLYGON | 폴리곤당 하나의 값. |
EDGE | 에지당 하나의 값. |
ALL_SAME | 단일 값이 전체 메시에 적용됩니다. |
ReferenceMode 열거형
데이터 배열이 인덱싱되는 방식을 제어합니다.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
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")