VertexElement — Aspose.3D FOSS for Java
Пакет: com.aspose.threed (aspose-3d-foss 26.1.0)
VertexElement є абстрактним базовим класом для шарів даних, прив’язаних до кожної вершини (або кожного полігону, кожного ребра) Mesh.Кожен підклас зберігає певний тип геометричного атрибуту — нормалі, UV‑координати, кольори вершин або групи згладжування.
Overview
Overview
| Overview | Overview | Overview | Overview | Overview |
|---|---|---|---|---|
vertexElementType | VertexElementType | getVertexElementType() | – | Семантичний тип цього елементу (тільки для читання). |
mappingMode | MappingMode | getMappingMode() | setMappingMode(MappingMode) | Керує тим, до якої примітиви відображається кожне значення. |
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) на вершину або на кут полігона. Сітка може містити кілька UV-шарів для різних каналів текстур.
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 на вершину або на кут у вигляді Vector4 (r, g, b, a у діапазоні 0–1).
Overview
| Overview | Overview | Overview | Overview |
|---|---|---|---|
data | List<Vector4> | getData() | Значення кольору RGBA. |
Перерахування VertexElementType
Визначає семантичну роль шару елементу вершини.
import com.aspose.threed.*;| Overview | Overview |
|---|---|
NORMAL | Вектори нормалі поверхні. |
UV | UV‑координати текстури. |
VERTEX_COLOR | Колір RGBA на вершину. |
TANGENT | Тангенціальні вектори для нормального мапінгу. |
BINORMAL | Бінормальні (бітангенціальні) вектори. |
MATERIAL | Індекс матеріалу для кожного полігона. |
POLYGON_GROUP | Індекс групування полігонів. |
VERTEX_CREASE | Ваги складок вершини підрозділу. |
EDGE_CREASE | Ваги складок ребра підрозділу. |
USER_DATA | Довільні дані, визначені користувачем. |
VISIBILITY | Прапори видимості для кожного елементу. |
SPECULAR | Спекулярний колір або інтенсивність. |
WEIGHT | Ваги змішування для скинінгу. |
HOLE | Прапори отворів полігонів. |
Перерахування MappingMode
Керує тим, з яким геометричним примітивом пов’язане кожне значення елементу вершини.
| Overview | Overview |
|---|---|
CONTROL_POINT | Одне значення на контрольну точку (вершину). |
POLYGON_VERTEX | Одне значення на кут полігона (вершина грані). |
POLYGON | Одне значення на полігон. |
Перерахування ReferenceMode
Керує способом індексування масиву даних елементу вершини.
| Overview | Overview |
|---|---|
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());
}
}
}