VertexElement — Aspose.3D Python API Reference

بسته: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement کلاس پایهٔ انتزاعی برای تمام لایه‌های دادهٔ per-vertex است که می‌توانند به یک Geometry شیء متصل شوند. هر لایه آرایه‌ای از مقادیر داده را همراه با mapping_mode و reference_mode متادیتاهایی که توصیف می‌کنند داده‌ها چگونه بر روی هندسهٔ زیرین نگاشت می‌شوند. زیرکلاس‌ها برای نرمال‌ها، مختصات UV، رنگ‌های رأس، تانژنت‌ها، باینورمال‌ها و گروه‌های صاف‌سازی تخصصی شده‌اند.


Properties

from aspose.threed.entities import VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypeخواندننوع معنایی این لایه (مثلاً., NORMAL, UV, VERTEX_COLOR).
namestrخواندن/نوشتننام اختیاری برای این لایه.
mapping_modeMappingModeخواندن/نوشتنکنترل می‌کند که هر مقدار داده‌ای با کدام عنصر اولیهٔ هندسی مرتبط باشد.
reference_modeReferenceModeخواندن/نوشتنکنترل می‌کند که آیا مقادیر به‌صورت مستقیم یا از طریق آرایهٔ ایندکس‌ها مورد دسترسی قرار گیرند.
indiceslist[int]خواندنآرایهٔ ایندکس که هنگام reference_mode است INDEX_TO_DIRECT.
datalist[FVector4]خواندنمقادیر دادهٔ خام ذخیره شده به‌عنوان FVector4 ورودی‌ها (در دسترس در VertexElementFVector زیرکلاس‌ها).

Properties

PropertiesPropertiesProperties
set_data(data)Noneآرایه داده را جایگزین کنید. می‌پذیرد list[FVector2], list[FVector3],، یا list[FVector4]; مقادیر به FVector4 به‌صورت داخلی.
set_indices(data)Noneآرایهٔ شاخص‌ها را با فهرستی از اعداد صحیح جایگزین کنید.
clear()Noneتمام مقادیر داده و شاخص‌ها را از لایه حذف کنید.
copy_to(target)Noneداده‌ها و شاخص‌ها را به یک مورد دیگر کپی کنید. VertexElementFVector نمونه.

VertexElementNormal

مرجع API برای ChartType، Chart، ChartCollection، NSeries، ChartSeries، ChartAxis، ChartErrorBars و ChartView3D در aspose-cells-foss.

from aspose.threed.entities import VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

Properties

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

vertex_element_type به‌صورت ثابت. VertexElementType.NORMAL.


باز می‌گرداند: VertexElementUV

aspose-cells-foss از درج نمودارها در برگه‌های کاری پشتیبانی می‌کند. نمودارها از طریق ws.charts، یک ChartCollection که به هر Worksheet متصل است، مدیریت می‌شوند. داده‌های سری از طریق chart.n_series، یک مجموعه NSeries، اضافه می‌شوند.

from aspose.threed.entities import VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingکانال بافتی که این لایه UV به آن خدمت می‌کند. به‌صورت پیش‌فرض TextureMapping.DIFFUSE.

ویژگی اضافی

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappingخواندنکانال بافتی که این لایه UV با آن مرتبط است.

add_data(data)

داده‌های مختصات UV را اضافه کنید. پذیرش list[Vector2], list[Vector3], list[FVector2], list[FVector3], یا list[FVector4]. تمام مقادیر به‌صورت داخلی به عنوان FVector4 با مؤلفه‌های استفاده‌نشده تنظیم شده به 0.0.


VertexElementVertexColor

مقادیر رنگ RGBA برای هر راس را در بازهٔ ۰ تا ۱ ذخیره می‌کند.

from aspose.threed.entities import VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

Properties

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

vertex_element_type به‌صورت ثابت برابر VertexElementType.VERTEX_COLOR.


VertexElementTangent

بردارهای تانژنت برای هر راس یا هر گوشه را ذخیره می‌کند که برای رندر نقشهٔ نرمال استفاده می‌شوند.

from aspose.threed.entities import VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type به‌صورت ثابت برابر VertexElementType.TANGENT.


VertexElementBinormal

بردارهای باینورمال (بیتانژنت) per-vertex یا per-corner را ذخیره می‌کند، تکمیل‌کننده VertexElementTangent برای tangent-space normal mapping.

from aspose.threed.entities import VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type به مقدار ثابت تنظیم شده است VertexElementType.BINORMAL.


VertexElementSmoothingGroup

شناسه‌های عدد صحیح گروه‌های صاف‌سازی برای هر چندضلعی را ذخیره می‌کند. از فایل‌های OBJ که شامل s اعلان‌ها.

from aspose.threed.entities import VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type به مقدار ثابت تنظیم شده است VertexElementType.SMOOTHING_GROUP.


شمارش VertexElementType

نقش معنایی لایهٔ عنصر راس را شناسایی می‌کند.

from aspose.threed.entities import VertexElementType
PropertiesProperties
NORMALبردارهای نرمال سطح.
UVمختصات UV بافت.
VERTEX_COLORرنگ RGBA به ازای هر راس.
TANGENTبردارهای تانژانت برای normal mapping.
BINORMALبردارهای Binormal (bitangent).
SMOOTHING_GROUPشناسه‌های عدد صحیح گروه صاف‌سازی به ازای هر چندضلعی.
MATERIALشاخص ماده برای هر چندضلعی.
POLYGON_GROUPشاخص گروه‌بندی چندضلعی.
VERTEX_CREASEوزن‌های چین‌خورده راس‌های تقسیم‌بندی.
EDGE_CREASEوزن‌های چین‌خورده لبه‌های تقسیم‌بندی.
USER_DATAداده‌های دلخواه تعریف‌شده توسط کاربر.
VISIBILITYپرچم‌های نمایش برای هر عنصر.
SPECULARرنگ یا شدت بازتابی.
WEIGHTوزن‌های ترکیبی برای اسکینینگ.
HOLEپرچم‌های سوراخ چندضلعی.

شمارش MappingMode

کنترل می‌کند که هر مقدار عنصر راس با کدام primitive هندسی مرتبط باشد.

from aspose.threed.entities import MappingMode
PropertiesProperties
CONTROL_POINTیک مقدار برای هر نقطه کنترل (vertex).
POLYGON_VERTEXیک مقدار برای هر گوشه چندضلعی (face-vertex).
POLYGONیک مقدار برای هر چندضلعی.
EDGEیک مقدار برای هر لبه.
ALL_SAMEیک مقدار واحد برای کل مش اعمال می‌شود.

شمارش ReferenceMode

کنترل می‌کند که آرایهٔ داده‌ها چگونه ایندکس شود.

from aspose.threed.entities import ReferenceMode
PropertiesProperties
DIRECTداده‌ها به‌صورت متوالی بدون آرایهٔ indices جداگانه دسترسی می‌یابند.
INDEXداده‌ها از طریق یک آرایهٔ indices جداگانه دسترسی می‌یابند.
INDEX_TO_DIRECTیک آرایهٔ indices هر primitive نقشه‌برداری را به موقعیتی در آرایهٔ داده‌ها نگاشت می‌کند.

Properties

یک لایهٔ نرمال را به مش متصل کنید (نگاشت 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")

همچنین ببینید

 فارسی