VertexElement

VertexElement — Aspose.3D FOSS for Java

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

VertexElement کلاس پایهٔ انتزاعی برای لایه‌های دادهٔ مربوط به هر راس (یا هر چندضلعی، هر لبه) است که به یک Mesh.هر زیرکلاس یک نوع خاص از ویژگی‌های هندسی را ذخیره می‌کند — نرمال‌ها، مختصات UV، رنگ‌های راس، یا گروه‌های صاف‌سازی.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()نوع معنایی این عنصر (فقط‑خواندنی).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)تعیین می‌کند که هر مقدار به کدام primitive نگاشت شود.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)نحوهٔ ایندکس‌گذاری مقادیر را کنترل می‌کند.
indicesList<Integer>getIndices()آرایهٔ ایندکس (استفاده می‌شود وقتی حالت مرجع است INDEX_TO_DIRECT).
nameStringgetName()setName(String)نام اختیاری این لایهٔ عنصر راس.

VertexElementNormal

یک بردار نرمال برای هر راس یا هر گوشهٔ چندضلعی ذخیره می‌کند، بسته به getMappingMode(). مقادیر داده هستند Vector4 نمونه‌ها با w استفاده نشده.

import com.aspose.threed.*;

VertexElement normals = mesh.createElement(
    VertexElementType.NORMAL,
    MappingMode.CONTROL_POINT,
    ReferenceMode.DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector4>getData()بردارهای نرمال. این w مؤلفه استفاده نشده است (معمولاً 0.0).

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

جفت‌های مختصات بافت را ذخیره می‌کند (Vector2) به ازای هر راس یا گوشه چندضلعی. یک مش می‌تواند لایه‌های UV متعددی برای کانال‌های بافت مختلف داشته باشد.


VertexElementUV uv = mesh.createElementUV(
    TextureMapping.DIFFUSE,
    MappingMode.POLYGON_VERTEX,
    ReferenceMode.INDEX_TO_DIRECT
);

Example

ExampleExampleExampleExample
dataList<Vector2>getData()جفت‌های مختصات UV.

VertexElementVertexColor

داده‌های رنگ RGBA را به ازای هر راس یا هر گوشه به صورت ذخیره می‌کند Vector4 (r, g, b, a در بازه ۰ تا ۱).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()مقادیر رنگ RGBA.

شمارش VertexElementType

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

import com.aspose.threed.*;
ExampleExample
NORMALبردارهای نرمال سطح.
UVمختصات UV بافت.
VERTEX_COLORرنگ RGBA به ازای هر راس.
TANGENTبردارهای تانژانت برای نگاشت نرمال.
BINORMALبردارهای بینورمال (بیتانژانت).
MATERIALشاخص ماده به ازای هر چندضلعی.
POLYGON_GROUPشاخص گروه‌بندی چندضلعی‌ها.
VERTEX_CREASEوزن‌های چین‌خورده راس در تقسیم‌بندی.
EDGE_CREASEوزن‌های چین‌خورده لبه در تقسیم‌بندی.
USER_DATAداده‌های دلخواه تعریف‌شده توسط کاربر.
VISIBILITYپرچم‌های نمایش برای هر عنصر.
SPECULARرنگ یا شدت بازتابی.
WEIGHTوزن‌های ترکیب برای اسکینینگ.
HOLEپرچم‌های حفره در چندضلعی.

شمارش MappingMode

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

ExampleExample
CONTROL_POINTیک مقدار برای هر نقطه کنترل (رأس).
POLYGON_VERTEXیک مقدار برای هر گوشهٔ چندضلعی (وجه‑رأس).
POLYGONیک مقدار برای هر چندضلعی.

شمارش ReferenceMode

نحوهٔ ایندکس‌گذاری آرایهٔ دادهٔ عنصر راس را کنترل می‌کند.

ExampleExample
DIRECTداده‌ها به‌صورت متوالی دسترسی می‌شوند بدون آرایهٔ ایندکس جداگانه.
INDEXداده‌ها از طریق آرایهٔ ایندکس جداگانه دسترسی می‌شوند.
INDEX_TO_DIRECTیک آرایهٔ ایندیس‌ها هر پرمیٹیو نگاشت را به موقعیتی در آرایهٔ داده‌ها نگاشت می‌کند.

Example

import com.aspose.threed.Scene;
import com.aspose.threed.*;

Scene scene = Scene.fromFile("model.obj");

for (Node node : scene.getRootNode().getChildNodes()) {
    if (node.getEntity() instanceof Mesh) {
        Mesh mesh = (Mesh) node.getEntity();
        for (VertexElement ve : mesh.getVertexElements()) {
            System.out.println("  Element: " + ve.getVertexElementType()
                + " mapping=" + ve.getMappingMode()
                + " ref=" + ve.getReferenceMode());
        }
    }
}

موارد مرتبط

 فارسی