VertexElement — Aspose.3D Python API Reference

الحزمة: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement هي الفئة الأساسية المجردة لجميع طبقات بيانات كل رأس التي يمكن إرفاقها بـ Geometry كائن. تحتفظ كل طبقة بمصفوفة من قيم البيانات مع mapping_mode و reference_mode metadata التي تصف كيفية ربط البيانات بالهندسة الأساسية. الفئات الفرعية متخصصة للـnormals، UV coordinates، vertex colours، tangents، binormals، وsmoothing groups.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypeقراءةالنوع الدلالي لهذه الطبقة (مثالاً،., NORMAL, UV, VERTEX_COLOR).
namestrقراءة/كتابةاسم اختياري لهذه الطبقة.
mapping_modeMappingModeقراءة/كتابةيتحكم في الشكل الهندسي الأساسي الذي يرتبط به كل قيمة بيانات.
reference_modeReferenceModeقراءة/كتابةيتحكم فيما إذا كانت القيم تُعالج مباشرةً أو عبر مصفوفة الفهارس.
indiceslist[int]قراءةمصفوفة الفهارس تُستخدم عندما reference_mode هو INDEX_TO_DIRECT.
datalist[FVector4]قراءةقِيَم البيانات الخام مخزنة كـ FVector4 إدخالات (متاحة على VertexElementFVector الفئات الفرعية).

Methods

MethodsMethodsMethods
set_data(data)Noneاستبدل مصفوفة البيانات. يقبل list[FVector2], list[FVector3], أو list[FVector4]; القيم يتم تطبيعها إلى FVector4 داخليًا.
set_indices(data)Noneاستبدل مصفوفة الفهارس بقائمة من الأعداد الصحيحة.
clear()Noneأزل جميع قيم البيانات والفهارس من الطبقة.
copy_to(target)Noneانسخ البيانات والفهارس إلى VertexElementFVector مثيل.

VertexElementNormal

يخزن متجهات السطح العمودية. عادةً ما تُستخدم بيانات المتجهات العمودية من قبل المُعالجين لحساب الإضاءة.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

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

vertex_element_type مُثَبَّت على VertexElementType.NORMAL.


VertexElementUV

يخزن إحداثيات القوام UV. قد يحمل النموذج عدة طبقات UV لقنوات قوام مختلفة.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingقناة النسيج التي تخدمها طبقة UV هذه. الافتراضي هو TextureMapping.DIFFUSE.

خاصية إضافية

MethodsMethodsMethodsMethods
texture_mappingTextureMappingقراءةقناة النسيج التي ترتبط بها طبقة UV هذه.

add_data(data)

إلحاق بيانات إحداثيات UV. يقبل list[Vector2], list[Vector3], list[FVector2], list[FVector3], أو list[FVector4]. جميع القيم تُخزن داخليًا كـ FVector4 مع تعيين المكونات غير المستخدمة إلى 0.0.


VertexElementVertexColor

يخزن قيم ألوان RGBA لكل رأس في النطاق 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

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

vertex_element_type ثابت على VertexElementType.VERTEX_COLOR.


VertexElementTangent

يخزن متجهات الظل لكل رأس أو لكل ركن، تُستخدم في عرض خريطة العادي.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type ثابت على VertexElementType.TANGENT.


VertexElementBinormal

يخزن متجهات الباينورمال (البيتانجينت) لكل رأس أو لكل زاوية، مكملة VertexElementTangent لـ tangent-space normal mapping.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type مُثَبَّت على VertexElementType.BINORMAL.


VertexElementSmoothingGroup

يخزن معرفات مجموعة التنعيم الصحيحة لكل مضلع. يتم تحميلها من ملفات OBJ التي تحتوي على s الإعلانات.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type مُثَبَّت على VertexElementType.SMOOTHING_GROUP.


تعداد VertexElementType

يحدد الدور الدلالي لطبقة عنصر الرأس.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALمتجهات السطح العادية.
UVإحداثيات UV للملمس.
VERTEX_COLORلون RGBA لكل رأس.
TANGENTمتجهات المماس لـ normal mapping.
BINORMALمتجهات الباينورمال (bitangent).
SMOOTHING_GROUPمعرفات أعداد صحيحة لمجموعة التنعيم لكل مضلع.
MATERIALفهرس المادة لكل مضلع.
POLYGON_GROUPفهرس تجميع المضلعات.
VERTEX_CREASEأوزان طية رؤوس التقسيم.
EDGE_CREASEأوزان طية حواف التقسيم.
USER_DATAبيانات مخصصة من قبل المستخدم.
VISIBILITYأعلام الرؤية لكل عنصر.
SPECULARلون أو شدة الانعكاس اللامع.
WEIGHTأوزان الدمج لتقنية skinning.
HOLEأعلام الفتحات في المضلعات.

تعداد MappingMode

يتحكم في أي بدائية هندسية يرتبط كل قيمة لعنصر الرأس.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTقيمة واحدة لكل نقطة تحكم (قمة).
POLYGON_VERTEXقيمة واحدة لكل زاوية مضلع (قمة-وجه).
POLYGONقيمة واحدة لكل مضلع.
EDGEقيمة واحدة لكل حافة.
ALL_SAMEقيمة واحدة تنطبق على كامل الشبكة.

تعداد ReferenceMode

يتحكم في طريقة فهرسة مصفوفة البيانات.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTيتم الوصول إلى البيانات بشكل متسلسل دون مصفوفة فهارس منفصلة.
INDEXيتم الوصول إلى البيانات عبر مصفوفة فهارس منفصلة.
INDEX_TO_DIRECTمصفوفة الفهارس تُطابق كل بدائي تخطيط إلى موضع في مصفوفة البيانات.

Methods

إرفاق طبقة عادية إلى شبكة (تعيين DIRECT):

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 (تخطيط 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")

انظر أيضًا

 العربية