VertexElement — Aspose.3D FOSS for Java
แพคเกจ: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement เป็นคลาสฐานเชิงนามธรรมสำหรับชั้นข้อมูลต่อจุด (หรือต่อหลายเหลี่ยม, ต่อขอบ) ที่แนบกับ a Mesh.แต่ละคลาสย่อยจะเก็บลักษณะทางเรขาคณิตประเภทเฉพาะ – เวกเตอร์ปกติ, พิกัด UV, สีของจุด, หรือกลุ่มการทำให้เรียบ.
Overview
Overview
| Overview | Overview | Overview | Overview | Overview |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | ประเภทเชิงความหมายขององค์ประกอบนี้ (อ่านอย่างเดียว). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | ควบคุมว่าแต่ละค่าแมปไปยัง primitive ใด. |
referenceMode | ReferenceMode | getReferenceMode() | setReferenceMode(ReferenceMode) | ควบคุมวิธีการทำดัชนีของค่า. |
indices | List<Integer> | getIndices() | – | อาร์เรย์ดัชนี (ใช้เมื่อโหมดอ้างอิงคือ INDEX_TO_DIRECT). |
name | String | getName() | setName(String) | ชื่อทางเลือกของชั้นองค์ประกอบจุดนี้. |
VertexElementNormal
เก็บเวกเตอร์ปกติหนึ่งตัวต่อจุดหรือต่อมุมของหลายเหลี่ยม ขึ้นอยู่กับ getMappingMode(). ค่าข้อมูลคือ Vector4 อินสแตนซ์ที่มี w ไม่ได้ใช้.
import com.aspose.threed.*;
VertexElement normals = mesh.createElement(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT
);Overview
| Overview | Overview | Overview | Overview |
|---|---|---|---|
data | List<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
| Overview | Overview | Overview | Overview |
|---|---|---|---|
data | List<Vector2> | getData() | คู่พิกัด UV. |
VertexElementVertexColor
จัดเก็บข้อมูล RGBA colour ต่อจุดหรือต่อมุมเป็น Vector4 (r, g, b, a อยู่ในช่วง 0–1).
Overview
| Overview | Overview | Overview | Overview |
|---|---|---|---|
data | List<Vector4> | getData() | ค่า colour RGBA. |
การนับจำนวน VertexElementType
ระบุบทบาทเชิงความหมายของชั้น vertex element.
import com.aspose.threed.*;| Overview | Overview |
|---|---|
NORMAL | เวกเตอร์ปกติของพื้นผิว. |
UV | พิกัด UV ของเทกเจอร์. |
VERTEX_COLOR | colour RGBA ต่อเวอร์เท็กซ์. |
TANGENT | เวกเตอร์แทนเจนท์สำหรับ normal mapping. |
BINORMAL | เวกเตอร์บิไนมอล (bitangent). |
MATERIAL | ดัชนีวัสดุต่อโพลิกอน. |
POLYGON_GROUP | ดัชนีการจัดกลุ่มโพลิกอน. |
VERTEX_CREASE | น้ำหนักรอยพับของเวอร์เท็กซ์ใน Subdivision. |
EDGE_CREASE | น้ำหนักรอยพับของขอบใน Subdivision. |
USER_DATA | ข้อมูลที่ผู้ใช้กำหนดเอง. |
VISIBILITY | แฟล็กการมองเห็นต่อองค์ประกอบ. |
SPECULAR | colour specular หรือความเข้ม. |
WEIGHT | น้ำหนักผสมสำหรับ skinning. |
HOLE | แฟล็กรูของโพลิกอน. |
การนับจำนวน MappingMode
ควบคุมว่า primitive ของเรขาคณิตใดที่ค่าของ vertex element แต่ละค่าจะเชื่อมโยงด้วย.
| Overview | Overview |
|---|---|
CONTROL_POINT | หนึ่งค่าต่อจุดควบคุม (vertex). |
POLYGON_VERTEX | หนึ่งค่าต่อมุมของโพลิกอน (face-vertex). |
POLYGON | หนึ่งค่าต่อโพลิกอน. |
การนับจำนวน ReferenceMode
ควบคุมวิธีการทำดัชนีของอาเรย์ข้อมูล vertex element.
| Overview | Overview |
|---|---|
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());
}
}
}