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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypebacaTipe semantik lapisan ini (misalnya,., NORMAL, UV, VERTEX_COLOR).
namestrbaca/tulisNama opsional untuk lapisan ini.
mapping_modeMappingModebaca/tulisMengontrol primitif geometri mana yang terkait dengan setiap nilai data.
reference_modeReferenceModebaca/tulisMengontrol apakah nilai diakses secara langsung atau melalui array indeks.
indiceslist[int]bacaArray indeks yang digunakan ketika reference_mode adalah INDEX_TO_DIRECT.
datalist[FVector4]dibacaNilai data mentah disimpan sebagai FVector4 entri (tersedia pada VertexElementFVector subkelas).

Properties

PropertiesPropertiesProperties
set_data(data)NoneGanti array data. Menerima list[FVector2], list[FVector3], atau list[FVector4]; nilai dinormalisasi menjadi FVector4 secara internal.
set_indices(data)NoneGanti array indeks dengan daftar bilangan bulat.
clear()NoneHapus semua nilai data dan indeks dari lapisan.
copy_to(target)NoneSalin 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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingSaluran tekstur yang dilayani oleh lapisan UV ini. Defaultnya adalah TextureMapping.DIFFUSE.

Properti tambahan

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

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type ditetapkan menjadi VertexElementType.SMOOTHING_GROUP.


enumerasi VertexElementType

Mengidentifikasi peran semantik dari lapisan elemen vertex.

from aspose.threed.entities import VertexElementType
PropertiesProperties
NORMALVektor normal permukaan.
UVKoordinat UV tekstur.
VERTEX_COLORWarna RGBA per-vertex.
TANGENTVektor tangen untuk normal mapping.
BINORMALVektor binormal (bitangent).
SMOOTHING_GROUPID integer grup smoothing per-poligon.
MATERIALIndeks material per-poligon.
POLYGON_GROUPIndeks pengelompokan poligon.
VERTEX_CREASEBobot crease vertex subdivisi.
EDGE_CREASEBobot crease tepi subdivisi.
USER_DATAData yang ditentukan pengguna secara arbitrer.
VISIBILITYBendera visibilitas per elemen.
SPECULARWarna atau intensitas spekular.
WEIGHTBobot pencampuran untuk skinning.
HOLEBendera lubang poligon.

enumerasi MappingMode

Mengontrol primitif geometri yang terkait dengan setiap nilai elemen vertex.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTSatu nilai per titik kontrol (vertex).
POLYGON_VERTEXSatu nilai per sudut poligon (face-vertex).
POLYGONSatu nilai per poligon.
EDGESatu nilai per tepi.
ALL_SAMESatu nilai tunggal berlaku untuk seluruh mesh.

enumerasi ReferenceMode

Mengontrol bagaimana array data diindeks.

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

Lihat Juga

 Bahasa Indonesia