VertexElement

VertexElement — Aspose.3D FOSS for Java

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

VertexElement este clasa de bază abstractă pentru straturi de date per-vertex (sau per-polygon, per-edge) atașate la un Mesh.Fiecare subclasă stochează un tip specific de atribut geometric – normale, coordonate UV, culori de vârf sau grupuri de netezire.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Tip semantic al acestui element (doar citire).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Controlează la care primitivă se mapă fiecare valoare.
referenceModeReferenceModegetReferenceMode()setReferenceMode(ReferenceMode)Controlează modul în care valorile sunt indexate.
indicesList<Integer>getIndices()Tablă de indici (utilizată când modul de referință este INDEX_TO_DIRECT).
nameStringgetName()setName(String)Nume opțional al acestui strat de element de vârf.

VertexElementNormal

Stochează un vector normal per vârf sau per colț de poligon, în funcție de getMappingMode(). Valorile de date sunt Vector4 instanțe cu w neutilizat.

import com.aspose.threed.*;

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

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Vectori normali. The w componenta este neutilizată (de obicei 0.0).

Returnează: VertexElementUV

Stochează perechi de coordonate de textură (Vector2) pe vertex sau pe colț de poligon. O plasă poate conține mai multe straturi UV pentru diferite canale de textură.


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

Example

ExampleExampleExampleExample
dataList<Vector2>getData()Perechi de coordonate UV.

VertexElementVertexColor

Stochează date de culoare RGBA per-vertex sau per-colț ca Vector4 (r, g, b, a în intervalul 0–1).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Valori de culoare RGBA.

Enumerarea VertexElementType

Identifică rolul semantic al unui strat de element vertex.

import com.aspose.threed.*;
ExampleExample
NORMALVectori normali de suprafață.
UVCoordonate UV ale texturii.
VERTEX_COLORCuloare RGBA pe fiecare vârf.
TANGENTVectori tangent pentru maparea normală.
BINORMALVectori binormali (bitangente).
MATERIALIndex de material pe fiecare poligon.
POLYGON_GROUPIndex de grupare a poligoanelor.
VERTEX_CREASEGreutăți de plișcă ale vârfurilor la subdiviziune.
EDGE_CREASEGreutăți de plișcă ale muchiilor la subdiviziune.
USER_DATADate arbitrare definite de utilizator.
VISIBILITYFlaguri de vizibilitate pe fiecare element.
SPECULARCuloare sau intensitate speculară.
WEIGHTGreutăți de amestec pentru skinning.
HOLEIndicatori de găuri în poligon.

Enumerarea MappingMode

Controlează cu ce primitivă geometrică este asociată fiecare valoare a elementului vertex.

ExampleExample
CONTROL_POINTO valoare pentru fiecare punct de control (vârf).
POLYGON_VERTEXO valoare pentru fiecare colț de poligon (față-vârf).
POLYGONO valoare pentru fiecare poligon.

Enumerarea ReferenceMode

Controlează modul în care este indexat taboul de date al elementului vertex.

ExampleExample
DIRECTDatele sunt accesate secvențial fără un array separat de indici.
INDEXDatele sunt accesate printr-un array separat de indici.
INDEX_TO_DIRECTUn array de indici mapează fiecare primitiv de mapare la o poziție în array-ul de date.

Example

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

Vezi și

 Română