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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypebacaJenis semantik lapisan ini (contoh,., NORMAL, UV, VERTEX_COLOR).
namestrbaca/tulisNama pilihan untuk lapisan ini.
mapping_modeMappingModebaca/tulisMengawal primitif geometri mana setiap nilai data dikaitkan.
reference_modeReferenceModebaca/tulisMengawal sama ada nilai diakses secara langsung atau melalui tatasusunan indeks.
indiceslist[int]bacaTatasusunan indeks yang digunakan apabila reference_mode adalah INDEX_TO_DIRECT.
datalist[FVector4]bacaNilai data mentah disimpan sebagai FVector4 entri (tersedia pada VertexElementFVector subkelas).

Properties

PropertiesPropertiesProperties
set_data(data)NoneGantikan tatasusunan data. Menerima list[FVector2], list[FVector3], atau list[FVector4]; nilai dinormalkan kepada FVector4 secara dalaman.
set_indices(data)NoneGantikan tatasusunan indeks dengan senarai integer.
clear()NoneBuang semua nilai data dan indeks daripada lapisan.
copy_to(target)NoneSalin 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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingSaluran 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).

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappingbacaSaluran 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 VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type ditetapkan kepada VertexElementType.SMOOTHING_GROUP.


Enumerasi VertexElementType

Mengenal pasti peranan semantik lapisan elemen vertex.

from aspose.threed.entities import VertexElementType
PropertiesProperties
NORMALVektor normal permukaan.
UVKoordinat UV tekstur.
VERTEX_COLORWarna RGBA per-vertex.
TANGENTVektor tangen untuk pemetaan normal.
BINORMALVektor binormal (bitangent).
SMOOTHING_GROUPID integer kumpulan pelicinan per-poligon.
MATERIALIndeks bahan per-poligon.
POLYGON_GROUPIndeks pengelompokan poligon.
VERTEX_CREASEBerat lipatan simpul subdivisi.
EDGE_CREASEBerat lipatan tepi subdivisi.
USER_DATAData yang ditakrifkan pengguna secara sewenang-wenangnya.
VISIBILITYBendera kebolehlihatan per-elemen.
SPECULARWarna atau intensiti spekular.
WEIGHTBerat gabungan untuk skinning.
HOLEBendera lubang poligon.

Enumerasi MappingMode

Mengawal primitif geometri mana setiap nilai elemen vertex dikaitkan.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTSatu nilai bagi setiap titik kawalan (vertex).
POLYGON_VERTEXSatu nilai bagi setiap sudut poligon (face-vertex).
POLYGONSatu nilai bagi setiap poligon.
EDGESatu nilai bagi setiap tepi.
ALL_SAMESatu nilai tunggal digunakan untuk seluruh mesh.

Enumerasi ReferenceMode

Mengawal cara susunan data diindeks.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTData diakses secara berurutan tanpa array indeks berasingan.
INDEXData diakses melalui array indeks berasingan.
INDEX_TO_DIRECTArray 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")

Lihat Juga

 Bahasa Melayu