VertexElement

VertexElement — Aspose.3D FOSS for Java

Πακέτο: com.aspose.threed (aspose-3d-foss 26.1.0)

VertexElement είναι η αφηρημένη βασική κλάση για επίπεδα δεδομένων ανά-κορυφή (ή ανά-πολύγωνο, ανά-άκρη) που συνδέονται με ένα Mesh.Κάθε υποκλάση αποθηκεύει ένα συγκεκριμένο είδος γεωμετρικού χαρακτηριστικού — κανονικές, συντεταγμένες UV, χρώματα κορυφών ή ομάδες εξομάλυνσης.


Example

Example

ExampleExampleExampleExampleExample
vertexElementTypeVertexElementTypegetVertexElementType()Σημασιολογικός τύπος αυτού του στοιχείου (μόνο για ανάγνωση).
mappingModeMappingModegetMappingMode()setMappingMode(MappingMode)Ελέγχει σε ποιο primitive αντιστοιχεί κάθε τιμή.
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
);

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Διάνυσματα κανονικής. Το w συστατικό είναι αχρησιμοποίητο (συνήθως 0.0).

Επιστρέφει: VertexElementUV

Αποθηκεύει ζεύγη συντεταγμένων υφής (Vector2) ανά κορυφή ή ανά γωνία πολυγώνου. Ένα πλέγμα μπορεί να περιέχει πολλαπλά επίπεδα UV για διαφορετικά κανάλια υφής.


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

Example

ExampleExampleExampleExample
dataList<Vector2>getData()Ζεύγη συντεταγμένων UV.

VertexElementVertexColor

Αποθηκεύει δεδομένα χρώματος RGBA ανά κορυφή ή ανά γωνία ως Vector4 (r, g, b, a στο εύρος 0–1).

Example

ExampleExampleExampleExample
dataList<Vector4>getData()Τιμές χρώματος RGBA.

Απαρίθμηση VertexElementType

Καθορίζει τον σημασιολογικό ρόλο ενός επιπέδου στοιχείου κορυφής.

import com.aspose.threed.*;
ExampleExample
NORMALΔιανύσματα κανονικών επιφάνειας.
UVΣυντεταγμένες UV υφής.
VERTEX_COLORΧρώμα RGBA ανά κορυφή.
TANGENTΔιανύσματα εφαπτομένης για χαρτογράφηση κανονικών.
BINORMALΔιανύσματα διπλής εφαπτομένης (bitangent).
MATERIALΔείκτης υλικού ανά πολύγωνο.
POLYGON_GROUPΔείκτης ομαδοποίησης πολυγώνων.
VERTEX_CREASEΒάρη ραφής κορυφής υποδιαίρεσης.
EDGE_CREASEΒάρη ραφής ακμής υποδιαίρεσης.
USER_DATAΑυθαίρετα δεδομένα ορισμένα από τον χρήστη.
VISIBILITYΣημαίες ορατότητας ανά στοιχείο.
SPECULARΧρώμα ή ένταση αντανακλαστικού.
WEIGHTΒάρη ανάμειξης για skinning.
HOLEΣημαίες οπών πολυγώνου.

Απαρίθμηση MappingMode

Ελέγχει ποιο γεωμετρικό πρωτότυπο συνδέεται με κάθε τιμή στοιχείου κορυφής.

ExampleExample
CONTROL_POINTΜία τιμή ανά σημείο ελέγχου (κορυφή).
POLYGON_VERTEXΜία τιμή ανά γωνία πολυγώνου (πρόσωπο-κορυφή).
POLYGONΜία τιμή ανά πολύγωνο.

Απαρίθμηση ReferenceMode

Ελέγχει πώς γίνεται η ευρετηρίαση του πίνακα δεδομένων στοιχείου κορυφής.

ExampleExample
DIRECTΤα δεδομένα προσπελάζονται διαδοχικά χωρίς ξεχωριστό πίνακα δεικτών.
INDEXΤα δεδομένα προσπελάζονται μέσω ξεχωριστού πίνακα δεικτών.
INDEX_TO_DIRECTΈνας πίνακας δεικτών αντιστοιχίζει κάθε πρωτότυπο αντιστοίχισης σε μια θέση στον πίνακα δεδομένων.

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

Δείτε επίσης

 Ελληνικά