VertexElement

VertexElement — Aspose.3D FOSS for Java

แพคเกจ: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement เป็นคลาสฐานเชิงนามธรรมสำหรับชั้นข้อมูลต่อจุด (หรือต่อหลายเหลี่ยม, ต่อขอบ) ที่แนบกับ a Mesh.แต่ละคลาสย่อยจะเก็บลักษณะทางเรขาคณิตประเภทเฉพาะ – เวกเตอร์ปกติ, พิกัด UV, สีของจุด, หรือกลุ่มการทำให้เรียบ.


Overview

Overview

OverviewOverviewOverviewOverviewOverview
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
);

Overview

OverviewOverviewOverviewOverview
dataList<Vector4>getData()เวกเตอร์ปกติ. ส่วน w คอมโพเนนต์ไม่ได้ใช้ (โดยทั่วไป 0.0).

คืนค่า: VertexElementUV

เก็บคู่พิกัดพื้นผิว (Vector2) ต่อจุดหรือที่มุมของโพลิกอน. Mesh อาจมีหลาย UV layers สำหรับ texture channels ที่แตกต่างกัน.


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

Overview

OverviewOverviewOverviewOverview
dataList<Vector2>getData()คู่พิกัด UV.

VertexElementVertexColor

จัดเก็บข้อมูล RGBA colour ต่อจุดหรือต่อมุมเป็น Vector4 (r, g, b, a อยู่ในช่วง 0–1).

Overview

OverviewOverviewOverviewOverview
dataList<Vector4>getData()ค่า colour RGBA.

การนับจำนวน VertexElementType

ระบุบทบาทเชิงความหมายของชั้น vertex element.

import com.aspose.threed.*;
OverviewOverview
NORMALเวกเตอร์ปกติของพื้นผิว.
UVพิกัด UV ของเทกเจอร์.
VERTEX_COLORcolour RGBA ต่อเวอร์เท็กซ์.
TANGENTเวกเตอร์แทนเจนท์สำหรับ normal mapping.
BINORMALเวกเตอร์บิไนมอล (bitangent).
MATERIALดัชนีวัสดุต่อโพลิกอน.
POLYGON_GROUPดัชนีการจัดกลุ่มโพลิกอน.
VERTEX_CREASEน้ำหนักรอยพับของเวอร์เท็กซ์ใน Subdivision.
EDGE_CREASEน้ำหนักรอยพับของขอบใน Subdivision.
USER_DATAข้อมูลที่ผู้ใช้กำหนดเอง.
VISIBILITYแฟล็กการมองเห็นต่อองค์ประกอบ.
SPECULARcolour specular หรือความเข้ม.
WEIGHTน้ำหนักผสมสำหรับ skinning.
HOLEแฟล็กรูของโพลิกอน.

การนับจำนวน MappingMode

ควบคุมว่า primitive ของเรขาคณิตใดที่ค่าของ vertex element แต่ละค่าจะเชื่อมโยงด้วย.

OverviewOverview
CONTROL_POINTหนึ่งค่าต่อจุดควบคุม (vertex).
POLYGON_VERTEXหนึ่งค่าต่อมุมของโพลิกอน (face-vertex).
POLYGONหนึ่งค่าต่อโพลิกอน.

การนับจำนวน ReferenceMode

ควบคุมวิธีการทำดัชนีของอาเรย์ข้อมูล vertex element.

OverviewOverview
DIRECTข้อมูลถูกเข้าถึงแบบต่อเนื่องโดยไม่มีอาร์เรย์ดัชนีแยกต่างหาก.
INDEXข้อมูลถูกเข้าถึงผ่านอาร์เรย์ดัชนีแยกต่างหาก.
INDEX_TO_DIRECTอาร์เรย์ดัชนีจะทำการแมปแต่ละ mapping primitive ไปยังตำแหน่งในอาร์เรย์ข้อมูล.

Overview

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());
        }
    }
}

ดูเพิ่มเติม

 ภาษาไทย