VertexElement — Aspose.3D Python API Reference
Πακέτο: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement είναι η αφηρημένη βασική κλάση για όλα τα επίπεδα δεδομένων ανά κορυφή που μπορούν να προσαρτηθούν σε ένα Geometry αντικείμενο. Κάθε επίπεδο κρατά έναν πίνακα τιμών δεδομένων μαζί με mapping_mode και reference_mode μεταδεδομένα που περιγράφουν πώς τα δεδομένα απεικονίζονται στην υποκείμενη γεωμετρία. Οι υποκλάσεις είναι εξειδικευμένες για normals, UV coordinates, vertex colours, tangents, binormals, και smoothing groups.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | ανάγνωση | Σημασιολογικός τύπος αυτού του επιπέδου (π.χ., NORMAL, UV, VERTEX_COLOR). |
name | str | ανάγνωση/εγγραφή | Προαιρετικό όνομα για αυτό το επίπεδο. |
mapping_mode | MappingMode | ανάγνωση/εγγραφή | Ελέγχει ποιο γεωμετρικό πρωτότυπο συνδέεται με κάθε τιμή δεδομένων. |
reference_mode | ReferenceMode | ανάγνωση/εγγραφή | Ελέγχει αν οι τιμές προσπελαύνονται άμεσα ή μέσω ενός πίνακα δεικτών. |
indices | list[int] | ανάγνωση | Πίνακας δεικτών που χρησιμοποιείται όταν reference_mode είναι INDEX_TO_DIRECT. |
data | list[FVector4] | διαβάζετε | Ακατέργαστες τιμές δεδομένων αποθηκευμένες ως FVector4 καταχωρήσεις (διαθέσιμες στο VertexElementFVector υποκατηγορίες). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Αντικαταστήστε τον πίνακα δεδομένων. Δέχεται list[FVector2], list[FVector3], ή list[FVector4]; οι τιμές κανονικοποιούνται σε FVector4 εσωτερικά. |
set_indices(data) | None | Αντικαταστήστε τον πίνακα δεικτών με μια λίστα ακεραίων. |
clear() | None | Αφαιρέστε όλες τις τιμές δεδομένων και τους δείκτες από το στρώμα. |
copy_to(target) | None | Αντιγράψτε τα δεδομένα και τους δείκτες σε ένα άλλο VertexElementFVector αντίγραφο. |
VertexElementNormal
Αποθηκεύει διανύσματα κανονικών επιφάνειας. Τα δεδομένα κανονικών χρησιμοποιούνται συνήθως από τους renderers για υπολογισμούς φωτισμού.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type είναι σταθερό σε VertexElementType.NORMAL.
Επιστρέφει: VertexElementUV
Αποθηκεύει συντεταγμένες υφής UV. Ένα πλέγμα μπορεί να περιέχει πολλαπλά επίπεδα UV για διαφορετικά κανάλια υφής.
from aspose.threed.entities import VertexElementUVProperties
VertexElement → VertexElementFVector → VertexElementUV
Properties
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Properties | Properties | Properties |
|---|---|---|
texture_mapping | TextureMapping | Το κανάλι υφής που εξυπηρετεί αυτό το στρώμα UV. Προεπιλογή είναι TextureMapping.DIFFUSE. |
A3DObject → Material → LambertMaterial
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | ανάγνωση | Το κανάλι υφής με το οποίο σχετίζεται αυτό το στρώμα UV. |
add_data(data)
Προσθέστε δεδομένα συντεταγμένων UV. Δέχεται list[Vector2], list[Vector3], list[FVector2], list[FVector3], ή list[FVector4]. Όλες οι τιμές αποθηκεύονται εσωτερικά ως FVector4 με τα αχρησιμοποίητα συστατικά ορισμένα σε 0.0.
VertexElementVertexColor
Αποθηκεύει τιμές χρώματος RGBA ανά κορυφή στο εύρος 0–1.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type είναι ορισμένο σε VertexElementType.VERTEX_COLOR.
VertexElementTangent
Αποθηκεύει διανύσματα εφαπτομένης ανά κορυφή ή ανά γωνία, που χρησιμοποιούνται για την απόδοση χάρτη κανονικών.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type είναι ορισμένο σε VertexElementType.TANGENT.
VertexElementBinormal
Αποθηκεύει διανύσματα binormal (bitangent) per-vertex ή per-corner, συμπληρώνοντας VertexElementTangent για χαρτογράφηση κανονικών σε χώρο εφαπτομένης.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type είναι σταθερό σε VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Αποθηκεύει ακέραια IDs ομάδων εξομάλυνσης ανά πολύγωνο. Φορτώνεται από αρχεία OBJ που περιέχουν s δηλώσεις.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type είναι σταθερό σε VertexElementType.SMOOTHING_GROUP.
Απαρίθμηση VertexElementType
Καθορίζει τον σημασιολογικό ρόλο ενός επιπέδου στοιχείου κορυφής.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Διανύσματα κανονικών επιφάνειας. |
UV | Συντεταγμένες UV υφής. |
VERTEX_COLOR | Χρώμα RGBA ανά κορυφή. |
TANGENT | Διανύσματα εφαπτομένης για χαρτογράφηση κανονικών. |
BINORMAL | Διανύσματα διπλής εφαπτομένης (bitangent). |
SMOOTHING_GROUP | Ακέραια IDs ομάδων εξομάλυνσης ανά πολύγωνο. |
MATERIAL | Δείκτης υλικού ανά πολύγωνο. |
POLYGON_GROUP | Δείκτης ομαδοποίησης πολυγώνων. |
VERTEX_CREASE | Βάρη ραγισμάτων κορυφής υποδιαίρεσης. |
EDGE_CREASE | Βάρη ραγισμάτων άκρου υποδιαίρεσης. |
USER_DATA | Αυθαίρετα δεδομένα ορισμένα από τον χρήστη. |
VISIBILITY | Σημαίες ορατότητας ανά στοιχείο. |
SPECULAR | Κατοπτρικό χρώμα ή ένταση. |
WEIGHT | Βάρη ανάμειξης για skinning. |
HOLE | Σημαίες οπών πολυγώνου. |
Απαρίθμηση MappingMode
Ελέγχει ποιο γεωμετρικό πρωτότυπο συνδέεται με κάθε τιμή στοιχείου κορυφής.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Μία τιμή ανά σημείο ελέγχου (κορυφή). |
POLYGON_VERTEX | Μία τιμή ανά γωνία πολυγώνου (πρόσωπο-κορυφή). |
POLYGON | Μία τιμή ανά πολύγωνο. |
EDGE | Μία τιμή ανά άκρη. |
ALL_SAME | Μία μόνο τιμή εφαρμόζεται σε ολόκληρο το πλέγμα. |
Απαρίθμηση ReferenceMode
Ελέγχει πώς γίνεται η ευρετηρίαση του πίνακα δεδομένων.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Τα δεδομένα προσπελάζονται διαδοχικά χωρίς ξεχωριστό πίνακα δεικτών. |
INDEX | Τα δεδομένα προσπελάζονται μέσω ξεχωριστού πίνακα δεικτών. |
INDEX_TO_DIRECT | Ένας πίνακας δεικτών αντιστοιχίζει κάθε πρωτότυπο αντιστοίχισης σε θέση στον πίνακα δεδομένων. |
Properties
Επισύναψη στρώσης κανονικής σε ένα πλέγμα (χαρτογράφηση DIRECT):
from aspose.threed import Scene
from aspose.threed.entities import Mesh, VertexElementType, MappingMode, ReferenceMode, VertexElementNormal
from aspose.threed.utilities import Vector4, FVector4
mesh = Mesh()
mesh.control_points.append(Vector4(0.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(1.0, 0.0, 0.0, 1.0))
mesh.control_points.append(Vector4(0.5, 1.0, 0.0, 1.0))
mesh.create_polygon(0, 1, 2)
normals: VertexElementNormal = mesh.create_element(
VertexElementType.NORMAL,
MappingMode.CONTROL_POINT,
ReferenceMode.DIRECT,
)
normals.set_data([
FVector4(0.0, 0.0, 1.0, 0.0),
FVector4(0.0, 0.0, 1.0, 0.0),
FVector4(0.0, 0.0, 1.0, 0.0),
])
scene = Scene()
scene.root_node.create_child_node("tri", mesh)
scene.save("triangle_normals.glb")Επισύναψη συντεταγμένων UV (χαρτογράφηση INDEX_TO_DIRECT):
from aspose.threed import Scene
from aspose.threed.entities import Mesh, TextureMapping, MappingMode, ReferenceMode
from aspose.threed.utilities import Vector4, FVector4
mesh = Mesh()
for x, z in [(0, 0), (1, 0), (1, 1), (0, 1)]:
mesh.control_points.append(Vector4(float(x), 0.0, float(z), 1.0))
mesh.create_polygon(0, 1, 2, 3)
uv = mesh.create_element_uv(
TextureMapping.DIFFUSE,
MappingMode.POLYGON_VERTEX,
ReferenceMode.INDEX_TO_DIRECT,
)
uv.set_data([
FVector4(0.0, 0.0, 0.0, 0.0),
FVector4(1.0, 0.0, 0.0, 0.0),
FVector4(1.0, 1.0, 0.0, 0.0),
FVector4(0.0, 1.0, 0.0, 0.0),
])
uv.set_indices([0, 1, 2, 3])
scene = Scene()
scene.root_node.create_child_node("quad", mesh)
scene.save("quad_uv.glb")