VertexElement

VertexElement — Aspose.3D FOSS for Java

Pakiet: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement jest abstrakcyjną klasą bazową dla warstw danych per-vertex (lub per-polygon, per-edge) dołączonych do a Mesh.Każda podklasa przechowuje określony rodzaj atrybutu geometrycznego – normalne, współrzędne UV, kolory wierzchołków lub grupy wygładzania.


Enumerations

Enumerations

EnumerationsEnumerationsEnumerationsEnumerationsEnumerations
vertexElementTypeVertexElementTypegetVertexElementType()Semantyczny typ tego elementu (tylko do odczytu).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Kontroluje, do którego prymitywu mapuje się każda wartość.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Kontroluje sposób indeksowania wartości.
indicesList<Integer>getIndices()Tablica indeksów (używana, gdy tryb referencji jest INDEX_TO_DIRECT).
nameStringgetName()setName(String)Opcjonalna nazwa tej warstwy elementu wierzchołka.

VertexElementNormal

Przechowuje jeden wektor normalny na wierzchołek lub na róg wielokąta, w zależności od getMappingMode(). Wartości danych są Vector4 instancje z w nieużywane.

import com.aspose.threed.*;

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

Enumerations

EnumerationsEnumerationsEnumerationsEnumerations
dataList<Vector4>getData()Wektory normalne. Ten w składnik jest nieużywany (zazwyczaj 0.0).

Returns: VertexElementUV

Przechowuje pary współrzędnych tekstury (Vector2) na wierzchołek lub na róg wielokąta. Siatka może zawierać wiele warstw UV dla różnych kanałów tekstur.


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

Enumerations

EnumerationsEnumerationsEnumerationsEnumerations
dataList<Vector2>getData()Pary współrzędnych UV.

VertexElementVertexColor

Przechowuje dane koloru RGBA na wierzchołek lub na róg jako Vector4 (r, g, b, a w zakresie 0–1).

Enumerations

EnumerationsEnumerationsEnumerationsEnumerations
dataList<Vector4>getData()Wartości koloru RGBA.

Wyliczenie VertexElementType

Określa semantyczną rolę warstwy elementu wierzchołka.

import com.aspose.threed.*;
EnumerationsEnumerations
NORMALWektory normalne powierzchni.
UVWspółrzędne UV tekstury.
VERTEX_COLORKolor RGBA na wierzchołek.
TANGENTWektory styczne do mapowania normalnych.
BINORMALWektory binormalne (bitangent).
MATERIALIndeks materiału per-polygon.
POLYGON_GROUPIndeks grupowania wielokątów.
VERTEX_CREASEWagi załamań wierzchołków podziału.
EDGE_CREASEWagi załamań krawędzi podziału.
USER_DATADowolne dane definiowane przez użytkownika.
VISIBILITYFlagi widoczności per-element.
SPECULARKolor lub intensywność odbicia.
WEIGHTWagi mieszania dla skinowania.
HOLEFlagi otworów wielokąta.

Wyliczenie MappingMode

Kontroluje, z którym prymitywem geometrycznym powiązana jest każda wartość elementu wierzchołka.

EnumerationsEnumerations
CONTROL_POINTJedna wartość na punkt kontrolny (wierzchołek).
POLYGON_VERTEXJedna wartość na róg wielokąta (face-vertex).
POLYGONJedna wartość na wielokąt.

Wyliczenie ReferenceMode

Kontroluje sposób indeksowania tablicy danych elementu wierzchołka.

EnumerationsEnumerations
DIRECTDane są dostępne kolejno, bez osobnej tablicy indeksów.
INDEXDane są dostępne za pośrednictwem osobnej tablicy indeksów.
INDEX_TO_DIRECTTablica indeksów mapuje każdy prymityw mapowania na pozycję w tablicy danych.

Enumerations

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

Zobacz także

 Polski