VertexElement — Aspose.3D Python API Reference

Paket: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement bir nesneye eklenebilen tüm per-vertex veri katmanları için soyut temel sınıftır Geometry nesnedir. Her katman, veri değerleri dizisini ve mapping_mode ve reference_mode verinin temel geometriye nasıl eşlendiğini tanımlayan meta veriler. Alt sınıflar normal vektörler, UV koordinatları, vertex renkleri, teğetler, binormalar ve yumuşatma grupları için özelleştirilmiştir.


from aspose.threed.entities import VertexElement

VertexElement

vertex_element_typeVertexElementTypeokumaBu katmanın anlamsal türü (örneğin,., NORMAL, UV, VERTEX_COLOR).
namestrokuma/yazmaBu katman için isteğe bağlı ad.
mapping_modeMappingModeokuma/yazmaHer veri değerinin hangi geometri ilkel öğesiyle ilişkilendirileceğini kontrol eder.
reference_modeReferenceModeokuma/yazmaDeğerlerin doğrudan mı yoksa bir indeks dizisi aracılığıyla mı adreslendiğini kontrol eder.
indiceslist[int]okumaKullanıldığında indeks dizisi. reference_mode dır INDEX_TO_DIRECT.
datalist[FVector4]okurHam veri değerleri olarak saklanır FVector4 girişler (mevcut VertexElementFVector alt sınıflar).

set_data(data)NoneVeri dizisini değiştir. Şunları kabul eder list[FVector2], list[FVector3], ya da list[FVector4]; değerler şuna normalleştirilir FVector4 içeride.
set_indices(data)NoneDizin dizisini tamsayıların bir listesiyle değiştir.
clear()NoneKatmandaki tüm veri değerlerini ve dizinleri kaldır.
copy_to(target)NoneVerileri ve dizinleri başka bir VertexElementFVector örneğe.

VertexElementNormal

Yüzey normal vektörlerini depolar. Normal verileri genellikle ışık hesaplamaları için renderlayıcılar tarafından kullanılır.

from aspose.threed.entities import VertexElementNormal

VertexElementVertexElementFVectorVertexElementNormal

VertexElementNormal(name="", mapping_mode=None, reference_mode=None)

vertex_element_type şuna sabitlenmiştir VertexElementType.NORMAL.


VertexElementUV

UV doku koordinatlarını depolar. Bir ağ, farklı doku kanalları için birden fazla UV katmanı taşıyabilir.

from aspose.threed.entities import VertexElementUV

VertexElementVertexElementFVectorVertexElementUV

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
texture_mappingTextureMappingBu UV katmanının hizmet ettiği doku kanalı. Varsayılanı TextureMapping.DIFFUSE.

Ek özellik

texture_mappingTextureMappingokuBu UV katmanının ilişkili olduğu doku kanalı.

add_data(data)

UV koordinat verisini ekle. Şunları kabul eder list[Vector2], list[Vector3], list[FVector2], list[FVector3], ya da list[FVector4]. Tüm değerler içerde şu şekilde depolanır FVector4 kullanılmayan bileşenler ayarlanmış olarak 0.0.


VertexElementVertexColor

0–1 aralığında per-vertex RGBA renk değerlerini depolar.

from aspose.threed.entities import VertexElementVertexColor

VertexElementVertexElementFVectorVertexElementVertexColor

VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)

vertex_element_type olarak sabitlenir VertexElementType.VERTEX_COLOR.


VertexElementTangent

Normal harita render’ı için kullanılan, per-vertex veya per-corner teğet vektörlerini depolar.

from aspose.threed.entities import VertexElementTangent

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type olarak sabitlenir VertexElementType.TANGENT.


VertexElementBinormal

Per-vertex veya per-corner binormal (bitangent) vektörlerini depolar, tamamlayıcı olarak VertexElementTangent tanjant-uzayı normal haritalama için.

from aspose.threed.entities import VertexElementBinormal

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type şu değere sabitlenir VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Poligon başına tamsayı pürüzsüzleştirme grubu kimliklerini depolar. Şu içeren OBJ dosyalarından yüklenir s bildirimler.

from aspose.threed.entities import VertexElementSmoothingGroup

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type şu değere sabitlenir VertexElementType.SMOOTHING_GROUP.


VertexElementType enumerasyonu

Bir vertex öğesi katmanının anlamsal rolünü tanımlar.

from aspose.threed.entities import VertexElementType
NORMALYüzey normal vektörleri.
UVDoku UV koordinatları.
VERTEX_COLORKöşe başına RGBA rengi.
TANGENTNormal haritalama için tanjant vektörleri.
BINORMALBinormal (bitangent) vektörleri.
SMOOTHING_GROUPPoligon başına pürüzsüzleştirme grubu tamsayı kimlikleri.
MATERIALPoligon başına malzeme indeksi.
POLYGON_GROUPPoligon gruplama indeksi.
VERTEX_CREASEAlt bölme köşe kırışma ağırlıkları.
EDGE_CREASEAlt bölme kenar kırışma ağırlıkları.
USER_DATAİsteğe bağlı kullanıcı tanımlı veri.
VISIBILITYÖge başına görünürlük bayrakları.
SPECULARParlak renk veya yoğunluk.
WEIGHTSkinning için karıştırma ağırlıkları.
HOLEPoligon delik bayrakları.

MappingMode enumerasyonu

Her bir vertex öğesi değerinin hangi geometri primi ile ilişkilendirileceğini kontrol eder.

from aspose.threed.entities import MappingMode
CONTROL_POINTKontrol noktası (köşe) başına bir değer.
POLYGON_VERTEXPoligon köşesi (yüzey‑köşe) başına bir değer.
POLYGONPoligon başına bir değer.
EDGEKenar başına bir değer.
ALL_SAMETek bir değer tüm örgüye uygulanır.

ReferenceMode enumerasyonu

Veri dizisinin nasıl indeksleneceğini kontrol eder.

from aspose.threed.entities import ReferenceMode
DIRECTVeri, ayrı bir indeks dizisi olmadan sıralı olarak erişilir.
INDEXVeri, ayrı bir indeks dizisi aracılığıyla erişilir.
INDEX_TO_DIRECTBir indeks dizisi, her eşleme primitive’ini veri dizisindeki bir konuma eşler.

Bir mesh’e normal katmanı ekle (DIRECT eşleme):

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")

UV koordinatlarını ekle (INDEX_TO_DIRECT eşlemesi):

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")

Ayrıca Bakınız

 Türkçe