VertexElement

VertexElement — Aspose.3D FOSS for Java

Пакет: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement є абстрактним базовим класом для шарів даних, прив’язаних до кожної вершини (або кожного полігону, кожного ребра) Mesh.Кожен підклас зберігає певний тип геометричного атрибуту — нормалі, UV‑координати, кольори вершин або групи згладжування.


Overview

Overview

OverviewOverviewOverviewOverviewOverview
vertexElementTypeVertexElementTypegetVertexElementType()Семантичний тип цього елементу (тільки для читання).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Керує тим, до якої примітиви відображається кожне значення.
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) на вершину або на кут полігона. Сітка може містити кілька UV-шарів для різних каналів текстур.


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

Overview

OverviewOverviewOverviewOverview
dataList<Vector2>getData()Пари UV‑координат.

VertexElementVertexColor

Зберігає дані кольору RGBA на вершину або на кут у вигляді Vector4 (r, g, b, a у діапазоні 0–1).

Overview

OverviewOverviewOverviewOverview
dataList<Vector4>getData()Значення кольору RGBA.

Перерахування VertexElementType

Визначає семантичну роль шару елементу вершини.

import com.aspose.threed.*;
OverviewOverview
NORMALВектори нормалі поверхні.
UVUV‑координати текстури.
VERTEX_COLORКолір RGBA на вершину.
TANGENTТангенціальні вектори для нормального мапінгу.
BINORMALБінормальні (бітангенціальні) вектори.
MATERIALІндекс матеріалу для кожного полігона.
POLYGON_GROUPІндекс групування полігонів.
VERTEX_CREASEВаги складок вершини підрозділу.
EDGE_CREASEВаги складок ребра підрозділу.
USER_DATAДовільні дані, визначені користувачем.
VISIBILITYПрапори видимості для кожного елементу.
SPECULARСпекулярний колір або інтенсивність.
WEIGHTВаги змішування для скинінгу.
HOLEПрапори отворів полігонів.

Перерахування MappingMode

Керує тим, з яким геометричним примітивом пов’язане кожне значення елементу вершини.

OverviewOverview
CONTROL_POINTОдне значення на контрольну точку (вершину).
POLYGON_VERTEXОдне значення на кут полігона (вершина грані).
POLYGONОдне значення на полігон.

Перерахування ReferenceMode

Керує способом індексування масиву даних елементу вершини.

OverviewOverview
DIRECTДані доступаються послідовно без окремого масиву індексів.
INDEXДані доступаються через окремий масив індексів.
INDEX_TO_DIRECTМасив індексів відображає кожен примітив відображення на позицію в масиві даних.

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

Див. також

 Українська