VertexElement — Aspose.3D Python API Reference

Gói: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement là lớp cơ sở trừu tượng cho tất cả các lớp dữ liệu per-vertex có thể được gắn vào một Geometry đối tượng. Mỗi lớp giữ một mảng các giá trị dữ liệu cùng với mapping_modereference_mode metadata mô tả cách dữ liệu được ánh xạ lên hình học nền. Các lớp con được chuyên biệt cho normals, UV coordinates, vertex colours, tangents, binormals, và smoothing groups.


from aspose.threed.entities import VertexElement

VertexElement

vertex_element_typeVertexElementTypeđọcKiểu ngữ nghĩa của lớp này (ví dụ,., NORMAL, UV, VERTEX_COLOR).
namestrđọc/ghiTên tùy chọn cho lớp này.
mapping_modeMappingModeđọc/ghiKiểm soát primitive hình học nào mà mỗi giá trị dữ liệu được liên kết.
reference_modeReferenceModeđọc/ghiKiểm soát liệu các giá trị có được truy cập trực tiếp hay thông qua một mảng chỉ mục.
indiceslist[int]đọcMảng chỉ mục được sử dụng khi reference_modeINDEX_TO_DIRECT.
datalist[FVector4]đọcGiá trị dữ liệu thô được lưu dưới dạng FVector4 mục nhập (có sẵn trên VertexElementFVector các lớp con).

set_data(data)NoneThay thế mảng dữ liệu. Chấp nhận list[FVector2], list[FVector3], hoặc list[FVector4]; các giá trị được chuẩn hoá thành FVector4 nội bộ.
set_indices(data)NoneThay thế mảng chỉ mục bằng một danh sách các số nguyên.
clear()NoneXóa tất cả các giá trị dữ liệu và chỉ mục khỏi lớp.
copy_to(target)NoneSao chép dữ liệu và chỉ mục sang một VertexElementFVector đối tượng.

VertexElementNormal

Lưu trữ các vector pháp tuyến bề mặt. Dữ liệu pháp tuyến thường được các bộ render sử dụng cho các phép tính ánh sáng.

from aspose.threed.entities import VertexElementNormal

VertexElementVertexElementFVectorVertexElementNormal

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

vertex_element_type được cố định thành VertexElementType.NORMAL.


VertexElementUV

Lưu trữ các tọa độ texture UV. Một lưới (mesh) có thể chứa nhiều lớp UV cho các kênh texture khác nhau.

from aspose.threed.entities import VertexElementUV

VertexElementVertexElementFVectorVertexElementUV

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
texture_mappingTextureMappingKênh texture mà lớp UV này phục vụ. Mặc định là TextureMapping.DIFFUSE.

Thuộc tính bổ sung

texture_mappingTextureMappingđọcKênh texture mà lớp UV này được liên kết.

add_data(data)

Thêm dữ liệu tọa độ UV. Chấp nhận list[Vector2], list[Vector3], list[FVector2], list[FVector3], hoặc list[FVector4]. Tất cả các giá trị được lưu trữ nội bộ dưới dạng FVector4 với các thành phần không sử dụng được đặt thành 0.0.


VertexElementVertexColor

Lưu trữ các giá trị màu RGBA theo đỉnh trong khoảng 0–1.

from aspose.threed.entities import VertexElementVertexColor

VertexElementVertexElementFVectorVertexElementVertexColor

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

vertex_element_type được cố định thành VertexElementType.VERTEX_COLOR.


VertexElementTangent

Lưu trữ các vector tiếp tuyến cho mỗi đỉnh hoặc mỗi góc, được dùng cho việc render bản đồ pháp tuyến.

from aspose.threed.entities import VertexElementTangent

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type được cố định thành VertexElementType.TANGENT.


VertexElementBinormal

Lưu trữ các vector binormal (bitangent) cho mỗi đỉnh hoặc mỗi góc, bổ sung VertexElementTangent cho normal mapping không gian tiếp tuyến.

from aspose.threed.entities import VertexElementBinormal

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type được cố định thành VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Lưu trữ các ID nhóm làm mịn dạng số nguyên cho mỗi đa giác. Được tải từ các tệp OBJ có chứa s các khai báo.

from aspose.threed.entities import VertexElementSmoothingGroup

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type được cố định thành VertexElementType.SMOOTHING_GROUP.


Liệt kê VertexElementType

Xác định vai trò ngữ nghĩa của lớp phần tử đỉnh.

from aspose.threed.entities import VertexElementType
NORMALCác vectơ pháp tuyến bề mặt.
UVCác tọa độ UV của texture.
VERTEX_COLORMàu RGBA cho mỗi đỉnh.
TANGENTCác vectơ tiếp tuyến cho normal mapping.
BINORMALCác vectơ binormal (bitangent).
SMOOTHING_GROUPCác ID nhóm làm mịn dạng số nguyên cho mỗi đa giác.
MATERIALChỉ mục vật liệu cho mỗi đa giác.
POLYGON_GROUPChỉ mục nhóm đa giác.
VERTEX_CREASETrọng số nếp gấp đỉnh trong phân chia.
EDGE_CREASETrọng số nếp gấp cạnh trong phân chia.
USER_DATADữ liệu tùy ý do người dùng định nghĩa.
VISIBILITYCờ hiển thị cho mỗi phần tử.
SPECULARMàu phản chiếu hoặc cường độ.
WEIGHTTrọng số pha trộn cho skinning.
HOLECờ lỗ đa giác.

Liệt kê MappingMode

Kiểm soát primitive hình học nào mà mỗi giá trị phần tử đỉnh được gắn với.

from aspose.threed.entities import MappingMode
CONTROL_POINTMột giá trị cho mỗi điểm điều khiển (đỉnh).
POLYGON_VERTEXMột giá trị cho mỗi góc đa giác (face-vertex).
POLYGONMột giá trị cho mỗi đa giác.
EDGEMột giá trị cho mỗi cạnh.
ALL_SAMEMột giá trị duy nhất áp dụng cho toàn bộ mesh.

Liệt kê ReferenceMode

Kiểm soát cách mảng dữ liệu được đánh chỉ mục.

from aspose.threed.entities import ReferenceMode
DIRECTDữ liệu được truy cập tuần tự mà không có một mảng indices riêng.
INDEXDữ liệu được truy cập qua một mảng indices riêng.
INDEX_TO_DIRECTMột mảng indices ánh xạ mỗi mapping primitive tới một vị trí trong mảng dữ liệu.

Gắn một lớp pháp tuyến vào lưới (ánh xạ 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")

Gắn tọa độ UV (ánh xạ 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")

Xem thêm

 Tiếng Việt