VertexElement — Aspose.3D Python API Reference
Pakej: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement adalah kelas asas abstrak untuk semua lapisan data per-vertex yang boleh dilampirkan kepada satu Geometry objek. Setiap lapisan menyimpan satu tatasusunan nilai data bersama dengan mapping_mode dan reference_mode metadata yang menerangkan bagaimana data dipetakan ke atas geometri asas. Subkelas khusus untuk normal, koordinat UV, warna vertex, tangent, binormal, dan kumpulan pelicinan.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | baca | Jenis semantik lapisan ini (contoh,., NORMAL, UV, VERTEX_COLOR). |
name | str | baca/tulis | Nama pilihan untuk lapisan ini. |
mapping_mode | MappingMode | baca/tulis | Mengawal primitif geometri mana setiap nilai data dikaitkan. |
reference_mode | ReferenceMode | baca/tulis | Mengawal sama ada nilai diakses secara langsung atau melalui tatasusunan indeks. |
indices | list[int] | baca | Tatasusunan indeks yang digunakan apabila reference_mode adalah INDEX_TO_DIRECT. |
data | list[FVector4] | baca | Nilai data mentah disimpan sebagai FVector4 entri (tersedia pada VertexElementFVector subkelas). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Gantikan tatasusunan data. Menerima list[FVector2], list[FVector3], atau list[FVector4]; nilai dinormalkan kepada FVector4 secara dalaman. |
set_indices(data) | None | Gantikan tatasusunan indeks dengan senarai integer. |
clear() | None | Buang semua nilai data dan indeks daripada lapisan. |
copy_to(target) | None | Salin data dan indeks ke lain VertexElementFVector instans. |
VertexElementNormal
Menyimpan vektor normal permukaan. Data normal biasanya digunakan oleh renderer untuk pengiraan pencahayaan.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type ditetapkan kepada VertexElementType.NORMAL.
Mengembalikan: VertexElementUV
Menyimpan koordinat tekstur UV. Sesebuah mesh boleh membawa pelbagai lapisan UV untuk saluran tekstur yang berbeza.
from aspose.threed.entities import VertexElementUVProperties
VertexElement → VertexElementFVector → VertexElementUV
Properties
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Properties | Properties | Properties |
|---|---|---|
texture_mapping | TextureMapping | Saluran tekstur yang dilayani lapisan UV ini. Lalai kepada TextureMapping.DIFFUSE. |
Kembalikan Mesh baru di mana setiap poligon telah dibahagikan kepada segitiga menggunakan triangulasi kipas. Mesh asal tidak diubah. Berguna sebelum mengeksport ke format yang memerlukan geometri hanya segitiga (seperti STL atau beberapa pipeline glTF).
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | baca | Saluran tekstur yang dikaitkan dengan lapisan UV ini. |
add_data(data)
Tambah data koordinat UV. Menerima list[Vector2], list[Vector3], list[FVector2], list[FVector3], atau list[FVector4]. Semua nilai disimpan secara dalaman sebagai FVector4 dengan komponen yang tidak digunakan ditetapkan kepada 0.0.
VertexElementVertexColor
Menyimpan nilai warna RGBA per-vertex dalam julat 0–1.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type ditetapkan kepada VertexElementType.VERTEX_COLOR.
VertexElementTangent
Menyimpan vektor tangent per-vertex atau per-sudut, digunakan untuk rendering peta normal.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type ditetapkan kepada VertexElementType.TANGENT.
VertexElementBinormal
Menyimpan vektor binormal (bitangent) per-vertex atau per-corner, melengkapkan VertexElementTangent untuk tangent-space normal mapping.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type ditetapkan kepada VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Menyimpan per-polygon integer smoothing group IDs. Dimuatkan dari fail OBJ yang mengandungi s pengisytiharan.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type ditetapkan kepada VertexElementType.SMOOTHING_GROUP.
Enumerasi VertexElementType
Mengenal pasti peranan semantik lapisan elemen vertex.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Vektor normal permukaan. |
UV | Koordinat UV tekstur. |
VERTEX_COLOR | Warna RGBA per-vertex. |
TANGENT | Vektor tangen untuk pemetaan normal. |
BINORMAL | Vektor binormal (bitangent). |
SMOOTHING_GROUP | ID integer kumpulan pelicinan per-poligon. |
MATERIAL | Indeks bahan per-poligon. |
POLYGON_GROUP | Indeks pengelompokan poligon. |
VERTEX_CREASE | Berat lipatan simpul subdivisi. |
EDGE_CREASE | Berat lipatan tepi subdivisi. |
USER_DATA | Data yang ditakrifkan pengguna secara sewenang-wenangnya. |
VISIBILITY | Bendera kebolehlihatan per-elemen. |
SPECULAR | Warna atau intensiti spekular. |
WEIGHT | Berat gabungan untuk skinning. |
HOLE | Bendera lubang poligon. |
Enumerasi MappingMode
Mengawal primitif geometri mana setiap nilai elemen vertex dikaitkan.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Satu nilai bagi setiap titik kawalan (vertex). |
POLYGON_VERTEX | Satu nilai bagi setiap sudut poligon (face-vertex). |
POLYGON | Satu nilai bagi setiap poligon. |
EDGE | Satu nilai bagi setiap tepi. |
ALL_SAME | Satu nilai tunggal digunakan untuk seluruh mesh. |
Enumerasi ReferenceMode
Mengawal cara susunan data diindeks.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Data diakses secara berurutan tanpa array indeks berasingan. |
INDEX | Data diakses melalui array indeks berasingan. |
INDEX_TO_DIRECT | Array indeks memetakan setiap primitif pemetaan ke kedudukan dalam array data. |
Properties
Lampirkan lapisan normal ke mesh (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")Lampirkan koordinat UV (INDEX_TO_DIRECT mapping):
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")