VertexElement — Aspose.3D Python API Reference
Paket: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement adalah kelas dasar abstrak untuk semua lapisan data per-vertex yang dapat dilampirkan ke sebuah Geometry objek. Setiap lapisan menyimpan array nilai data bersama dengan mapping_mode dan reference_mode metadata yang menjelaskan bagaimana data dipetakan ke geometri dasar. Subkelas khusus untuk normal, koordinat UV, warna vertex, tangent, binormal, dan grup smoothing.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | baca | Tipe semantik lapisan ini (misalnya,., NORMAL, UV, VERTEX_COLOR). |
name | str | baca/tulis | Nama opsional untuk lapisan ini. |
mapping_mode | MappingMode | baca/tulis | Mengontrol primitif geometri mana yang terkait dengan setiap nilai data. |
reference_mode | ReferenceMode | baca/tulis | Mengontrol apakah nilai diakses secara langsung atau melalui array indeks. |
indices | list[int] | baca | Array indeks yang digunakan ketika reference_mode adalah INDEX_TO_DIRECT. |
data | list[FVector4] | dibaca | Nilai data mentah disimpan sebagai FVector4 entri (tersedia pada VertexElementFVector subkelas). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Ganti array data. Menerima list[FVector2], list[FVector3], atau list[FVector4]; nilai dinormalisasi menjadi FVector4 secara internal. |
set_indices(data) | None | Ganti array indeks dengan daftar bilangan bulat. |
clear() | None | Hapus semua nilai data dan indeks dari lapisan. |
copy_to(target) | None | Salin data dan indeks ke VertexElementFVector instansi lain. |
VertexElementNormal
Menyimpan vektor normal permukaan. Data normal biasanya digunakan oleh renderer untuk perhitungan pencahayaan.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type ditetapkan ke VertexElementType.NORMAL.
Mengembalikan: VertexElementUV
Menyimpan koordinat tekstur UV. Sebuah mesh dapat memiliki beberapa lapisan UV untuk saluran tekstur yang berbeda.
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 oleh lapisan UV ini. Defaultnya adalah TextureMapping.DIFFUSE. |
Properti tambahan
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | baca | Saluran tekstur yang terkait dengan lapisan UV ini. |
add_data(data)
Tambahkan data koordinat UV. Menerima list[Vector2], list[Vector3], list[FVector2], list[FVector3], atau list[FVector4]. Semua nilai disimpan secara internal sebagai FVector4 dengan komponen yang tidak terpakai diatur ke 0.0.
VertexElementVertexColor
Lihat Juga.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type ditetapkan ke VertexElementType.VERTEX_COLOR.
VertexElementTangent
Menyimpan vektor tangent per‑vertex atau per‑corner, yang digunakan untuk rendering normal map.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type ditetapkan ke VertexElementType.TANGENT.
VertexElementBinormal
Menyimpan vektor binormal (bitangent) per-vertex atau per-sudut, melengkapi VertexElementTangent untuk tangent-space normal mapping.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type ditetapkan menjadi VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Menyimpan ID grup penghalusan integer per-poligon. Dimuat dari file OBJ yang berisi s deklarasi.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type ditetapkan menjadi VertexElementType.SMOOTHING_GROUP.
enumerasi VertexElementType
Mengidentifikasi peran semantik dari 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 normal mapping. |
BINORMAL | Vektor binormal (bitangent). |
SMOOTHING_GROUP | ID integer grup smoothing per-poligon. |
MATERIAL | Indeks material per-poligon. |
POLYGON_GROUP | Indeks pengelompokan poligon. |
VERTEX_CREASE | Bobot crease vertex subdivisi. |
EDGE_CREASE | Bobot crease tepi subdivisi. |
USER_DATA | Data yang ditentukan pengguna secara arbitrer. |
VISIBILITY | Bendera visibilitas per elemen. |
SPECULAR | Warna atau intensitas spekular. |
WEIGHT | Bobot pencampuran untuk skinning. |
HOLE | Bendera lubang poligon. |
enumerasi MappingMode
Mengontrol primitif geometri yang terkait dengan setiap nilai elemen vertex.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Satu nilai per titik kontrol (vertex). |
POLYGON_VERTEX | Satu nilai per sudut poligon (face-vertex). |
POLYGON | Satu nilai per poligon. |
EDGE | Satu nilai per tepi. |
ALL_SAME | Satu nilai tunggal berlaku untuk seluruh mesh. |
enumerasi ReferenceMode
Mengontrol bagaimana array data diindeks.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Data diakses secara berurutan tanpa array indeks terpisah. |
INDEX | Data diakses melalui array indeks terpisah. |
INDEX_TO_DIRECT | Array indeks memetakan setiap primitif pemetaan ke posisi 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 (pemetaan 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")