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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypeανάγνωσηΣημασιολογικός τύπος αυτού του επιπέδου (π.χ., NORMAL, UV, VERTEX_COLOR).
namestrανάγνωση/εγγραφήΠροαιρετικό όνομα για αυτό το επίπεδο.
mapping_modeMappingModeανάγνωση/εγγραφήΕλέγχει ποιο γεωμετρικό πρωτότυπο συνδέεται με κάθε τιμή δεδομένων.
reference_modeReferenceModeανάγνωση/εγγραφήΕλέγχει αν οι τιμές προσπελαύνονται άμεσα ή μέσω ενός πίνακα δεικτών.
indiceslist[int]ανάγνωσηΠίνακας δεικτών που χρησιμοποιείται όταν reference_mode είναι INDEX_TO_DIRECT.
datalist[FVector4]διαβάζετεΑκατέργαστες τιμές δεδομένων αποθηκευμένες ως FVector4 καταχωρήσεις (διαθέσιμες στο VertexElementFVector υποκατηγορίες).

Properties

PropertiesPropertiesProperties
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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

Properties

VertexElementNormal(name="", mapping_mode=None, reference_mode=None)

vertex_element_type είναι σταθερό σε VertexElementType.NORMAL.


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

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

from aspose.threed.entities import VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingΤο κανάλι υφής που εξυπηρετεί αυτό το στρώμα UV. Προεπιλογή είναι TextureMapping.DIFFUSE.

A3DObjectMaterialLambertMaterial

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappingανάγνωσηΤο κανάλι υφής με το οποίο σχετίζεται αυτό το στρώμα 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 VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

Properties

VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)

vertex_element_type είναι ορισμένο σε VertexElementType.VERTEX_COLOR.


VertexElementTangent

Αποθηκεύει διανύσματα εφαπτομένης ανά κορυφή ή ανά γωνία, που χρησιμοποιούνται για την απόδοση χάρτη κανονικών.

from aspose.threed.entities import VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type είναι ορισμένο σε VertexElementType.TANGENT.


VertexElementBinormal

Αποθηκεύει διανύσματα binormal (bitangent) per-vertex ή per-corner, συμπληρώνοντας VertexElementTangent για χαρτογράφηση κανονικών σε χώρο εφαπτομένης.

from aspose.threed.entities import VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type είναι σταθερό σε VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Αποθηκεύει ακέραια IDs ομάδων εξομάλυνσης ανά πολύγωνο. Φορτώνεται από αρχεία OBJ που περιέχουν s δηλώσεις.

from aspose.threed.entities import VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type είναι σταθερό σε VertexElementType.SMOOTHING_GROUP.


Απαρίθμηση VertexElementType

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

from aspose.threed.entities import VertexElementType
PropertiesProperties
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
PropertiesProperties
CONTROL_POINTΜία τιμή ανά σημείο ελέγχου (κορυφή).
POLYGON_VERTEXΜία τιμή ανά γωνία πολυγώνου (πρόσωπο-κορυφή).
POLYGONΜία τιμή ανά πολύγωνο.
EDGEΜία τιμή ανά άκρη.
ALL_SAMEΜία μόνο τιμή εφαρμόζεται σε ολόκληρο το πλέγμα.

Απαρίθμηση ReferenceMode

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

from aspose.threed.entities import ReferenceMode
PropertiesProperties
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")

Δείτε επίσης

 Ελληνικά