VertexElement — Aspose.3D Python API Reference
Pakotne: aspose.threed.entities (aspose-3d-foss 26.1.0)
VertexElement ir abstrakta pamata klase visiem uz virsotnes balstītiem datu slāņiem, kurus var pievienot Geometry objektam. Katrs slānis satur datu vērtību masīvu kopā ar mapping_mode un reference_mode metadatiem, kas apraksta, kā dati tiek kartēti uz pamatgeometrijas. Apakšklases ir specializētas normālēm, UV koordinātēm, virsotņu krāsām, tangensēm, binormālēm un gludināšanas grupām.
Properties
from aspose.threed.entities import VertexElementProperties
VertexElement
Properties
| Properties | Properties | Properties | Properties |
|---|---|---|---|
vertex_element_type | VertexElementType | lasīt | Semantiskais tips šim slānim (piemēram,., NORMAL, UV, VERTEX_COLOR). |
name | str | lasīt/rakstīt | Pēc izvēles nosaukums šim slānim. |
mapping_mode | MappingMode | lasīt/rakstīt | Nosaka, ar kuru ģeometrijas primitīvu ir saistīta katra datu vērtība. |
reference_mode | ReferenceMode | lasīt/rakstīt | Nosaka, vai vērtības tiek adresētas tieši vai caur indeksu masīvu. |
indices | list[int] | lasīt | Indeksu masīvs tiek izmantots, kad reference_mode ir INDEX_TO_DIRECT. |
data | list[FVector4] | lasīt | Neapstrādātas datu vērtības saglabātas kā FVector4 ieraksti (pieejami uz VertexElementFVector apakšklases). |
Properties
| Properties | Properties | Properties |
|---|---|---|
set_data(data) | None | Aizstājiet datu masīvu. Pieņem list[FVector2], list[FVector3], vai list[FVector4]; vērtības tiek normalizētas uz FVector4 iekšēji. |
set_indices(data) | None | Aizstājiet indeksu masīvu ar veselu skaitļu sarakstu. |
clear() | None | Noņemiet visus datu vērtības un indeksus no slāņa. |
copy_to(target) | None | Kopējiet datus un indeksus uz citu VertexElementFVector instanci. |
VertexElementNormal
Saglabā virsmas normāļu vektorus. Normāļu dati parasti tiek izmantoti renderētājiem apgaismojuma aprēķinos.
from aspose.threed.entities import VertexElementNormalProperties
VertexElement → VertexElementFVector → VertexElementNormal
Properties
VertexElementNormal(name="", mapping_mode=None, reference_mode=None)vertex_element_type ir fiksēts uz VertexElementType.NORMAL.
Atgriež: VertexElementUV
Saglabā UV tekstūras koordinātas. Mesh var saturēt vairākus UV slāņus dažādiem tekstūru kanāliem.
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 | Tekstūras kanāls, ko šis UV slānis apkalpo. Noklusējuma vērtība ir TextureMapping.DIFFUSE. |
Šīs klases manto pamata īpašības no LoadOptions / SaveOptions attiecīgi. Papildu formāta specifiskas īpašības pašreizējai FOSS versijai nav dokumentētas.
| Properties | Properties | Properties | Properties |
|---|---|---|---|
texture_mapping | TextureMapping | lasīt | Tekstūras kanāls, ar ko šis UV slānis ir saistīts. |
add_data(data)
Pievienojiet UV koordinātu datus. Pieņem list[Vector2], list[Vector3], list[FVector2], list[FVector3], vai list[FVector4]. Visas vērtības tiek glabātas iekšēji kā FVector4 ar neizmantotām komponentēm iestatītām uz 0.0.
VertexElementVertexColor
Saglabā uz virsotnes balstītas RGBA krāsu vērtības diapazonā 0–1.
from aspose.threed.entities import VertexElementVertexColorProperties
VertexElement → VertexElementFVector → VertexElementVertexColor
Properties
VertexElementVertexColor(name="", mapping_mode=None, reference_mode=None)vertex_element_type ir fiksēts uz VertexElementType.VERTEX_COLOR.
VertexElementTangent
Saglabā uz virsotnes vai uz stūra tangentu vektorus, kas tiek izmantoti normālu kartes renderēšanai.
from aspose.threed.entities import VertexElementTangentProperties
VertexElement → VertexElementFVector → VertexElementTangent
vertex_element_type ir fiksēts uz VertexElementType.TANGENT.
VertexElementBinormal
Saglabā per-vertex vai per-corner binormālos (bitangent) vektorus, papildinot VertexElementTangent tangent-virsmas normālo kartēšanai.
from aspose.threed.entities import VertexElementBinormalProperties
VertexElement → VertexElementFVector → VertexElementBinormal
vertex_element_type ir fiksēts uz VertexElementType.BINORMAL.
VertexElementSmoothingGroup
Saglabā katram daudzstūrim veselu skaitli, kas norāda gludināšanas grupas ID. Ielādēts no OBJ failiem, kas satur s deklarācijas.
from aspose.threed.entities import VertexElementSmoothingGroupProperties
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
vertex_element_type ir fiksēts uz VertexElementType.SMOOTHING_GROUP.
VertexElementType enumerācija
Identificē virsotnes elementa slāņa semantisko lomu.
from aspose.threed.entities import VertexElementType| Properties | Properties |
|---|---|
NORMAL | Virsmu normālvectori. |
UV | Tekstūras UV koordinātas. |
VERTEX_COLOR | Katram virsotnei RGBA krāsa. |
TANGENT | Tangentvektori normālo kartēšanai. |
BINORMAL | Binormālie (bitangent) vektori. |
SMOOTHING_GROUP | Katram poligonam gludināšanas grupas veselu skaitļu ID. |
MATERIAL | Katram poligonam materiāla indekss. |
POLYGON_GROUP | Poligona grupēšanas indekss. |
VERTEX_CREASE | Apakšdalījuma virsotnes saliekuma svari. |
EDGE_CREASE | Apakšdalījuma malas saliekuma svari. |
USER_DATA | Patvaļīgi lietotāja definēti dati. |
VISIBILITY | Katras elementa redzamības karogi. |
SPECULAR | Spoguļgaismas krāsa vai intensitāte. |
WEIGHT | Sapludināšanas svarus skinēšanai. |
HOLE | Poligona caurumu karogi. |
MappingMode enumerācija
Ģeometriskie nobīdes (geometricTranslation, geometricScaling, geometricRotation uz Transform) tiek piemērotas mezgla pašai ģeometrijai, bet netiek pārmantotas bērniem; GlobalTransform neiekļauj ģeometriskās nobīdes.
from aspose.threed.entities import MappingMode| Properties | Properties |
|---|---|
CONTROL_POINT | Viena vērtība katram vadības punktam (virsotnei). |
POLYGON_VERTEX | Viena vērtība katram daudzstūra stūrim (sejas-virsotnei). |
POLYGON | Viena vērtība katram daudzstūrim. |
EDGE | Viena vērtība katrai malai. |
ALL_SAME | Viena vērtība attiecas uz visu tīklu. |
ReferenceMode enumerācija
Kontrolē, kā datu masīvs tiek indeksēts.
from aspose.threed.entities import ReferenceMode| Properties | Properties |
|---|---|
DIRECT | Datiem tiek piekļūts secīgi, bez atsevišķa indeksu masīva. |
INDEX | Datiem tiek piekļūts caur atsevišķu indeksu masīvu. |
INDEX_TO_DIRECT | Indeksu masīvs kartē katru kartēšanas primitīvu uz pozīciju datu masīvā. |
Properties
Pievieno normālu slāni tīklam (DIRECT kartēšana):
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")Pievieno UV koordinātas (INDEX_TO_DIRECT kartēšana):
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")