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_mode và reference_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 VertexElementVertexElement
vertex_element_type | VertexElementType | đọc | Kiểu ngữ nghĩa của lớp này (ví dụ,., NORMAL, UV, VERTEX_COLOR). |
name | str | đọc/ghi | Tên tùy chọn cho lớp này. |
mapping_mode | MappingMode | đọc/ghi | Kiểm soát primitive hình học nào mà mỗi giá trị dữ liệu được liên kết. |
reference_mode | ReferenceMode | đọc/ghi | Kiể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. |
indices | list[int] | đọc | Mảng chỉ mục được sử dụng khi reference_mode là INDEX_TO_DIRECT. |
data | list[FVector4] | đọc | Giá 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) | None | Thay 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) | None | Thay thế mảng chỉ mục bằng một danh sách các số nguyên. |
clear() | None | Xóa tất cả các giá trị dữ liệu và chỉ mục khỏi lớp. |
copy_to(target) | None | Sao 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 VertexElementNormalVertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVVertexElement → VertexElementFVector → VertexElementUV
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)texture_mapping | TextureMapping | Kênh texture mà lớp UV này phục vụ. Mặc định là TextureMapping.DIFFUSE. |
Thuộc tính bổ sung
texture_mapping | TextureMapping | đọc | Kê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 VertexElementVertexColorVertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentVertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalVertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupVertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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 VertexElementTypeNORMAL | Các vectơ pháp tuyến bề mặt. |
UV | Các tọa độ UV của texture. |
VERTEX_COLOR | Màu RGBA cho mỗi đỉnh. |
TANGENT | Các vectơ tiếp tuyến cho normal mapping. |
BINORMAL | Các vectơ binormal (bitangent). |
SMOOTHING_GROUP | Các ID nhóm làm mịn dạng số nguyên cho mỗi đa giác. |
MATERIAL | Chỉ mục vật liệu cho mỗi đa giác. |
POLYGON_GROUP | Chỉ mục nhóm đa giác. |
VERTEX_CREASE | Trọng số nếp gấp đỉnh trong phân chia. |
EDGE_CREASE | Trọng số nếp gấp cạnh trong phân chia. |
USER_DATA | Dữ liệu tùy ý do người dùng định nghĩa. |
VISIBILITY | Cờ hiển thị cho mỗi phần tử. |
SPECULAR | Màu phản chiếu hoặc cường độ. |
WEIGHT | Trọng số pha trộn cho skinning. |
HOLE | Cờ 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 MappingModeCONTROL_POINT | Một giá trị cho mỗi điểm điều khiển (đỉnh). |
POLYGON_VERTEX | Một giá trị cho mỗi góc đa giác (face-vertex). |
POLYGON | Một giá trị cho mỗi đa giác. |
EDGE | Một giá trị cho mỗi cạnh. |
ALL_SAME | Mộ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 ReferenceModeDIRECT | Dữ liệu được truy cập tuần tự mà không có một mảng indices riêng. |
INDEX | Dữ liệu được truy cập qua một mảng indices riêng. |
INDEX_TO_DIRECT | Mộ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")