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 VertexElement

Properties

VertexElement

Properties

PropertiesPropertiesPropertiesProperties
vertex_element_typeVertexElementTypelasītSemantiskais tips šim slānim (piemēram,., NORMAL, UV, VERTEX_COLOR).
namestrlasīt/rakstītPēc izvēles nosaukums šim slānim.
mapping_modeMappingModelasīt/rakstītNosaka, ar kuru ģeometrijas primitīvu ir saistīta katra datu vērtība.
reference_modeReferenceModelasīt/rakstītNosaka, vai vērtības tiek adresētas tieši vai caur indeksu masīvu.
indiceslist[int]lasītIndeksu masīvs tiek izmantots, kad reference_mode ir INDEX_TO_DIRECT.
datalist[FVector4]lasītNeapstrādātas datu vērtības saglabātas kā FVector4 ieraksti (pieejami uz VertexElementFVector apakšklases).

Properties

PropertiesPropertiesProperties
set_data(data)NoneAizstā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)NoneAizstājiet indeksu masīvu ar veselu skaitļu sarakstu.
clear()NoneNoņemiet visus datu vērtības un indeksus no slāņa.
copy_to(target)NoneKopē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 VertexElementNormal

Properties

VertexElementVertexElementFVectorVertexElementNormal

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 VertexElementUV

Properties

VertexElementVertexElementFVectorVertexElementUV

Properties

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
PropertiesPropertiesProperties
texture_mappingTextureMappingTekstū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.

PropertiesPropertiesPropertiesProperties
texture_mappingTextureMappinglasītTekstū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 VertexElementVertexColor

Properties

VertexElementVertexElementFVectorVertexElementVertexColor

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 VertexElementTangent

Properties

VertexElementVertexElementFVectorVertexElementTangent

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 VertexElementBinormal

Properties

VertexElementVertexElementFVectorVertexElementBinormal

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 VertexElementSmoothingGroup

Properties

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

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
PropertiesProperties
NORMALVirsmu normālvectori.
UVTekstūras UV koordinātas.
VERTEX_COLORKatram virsotnei RGBA krāsa.
TANGENTTangentvektori normālo kartēšanai.
BINORMALBinormālie (bitangent) vektori.
SMOOTHING_GROUPKatram poligonam gludināšanas grupas veselu skaitļu ID.
MATERIALKatram poligonam materiāla indekss.
POLYGON_GROUPPoligona grupēšanas indekss.
VERTEX_CREASEApakšdalījuma virsotnes saliekuma svari.
EDGE_CREASEApakšdalījuma malas saliekuma svari.
USER_DATAPatvaļīgi lietotāja definēti dati.
VISIBILITYKatras elementa redzamības karogi.
SPECULARSpoguļgaismas krāsa vai intensitāte.
WEIGHTSapludināšanas svarus skinēšanai.
HOLEPoligona 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
PropertiesProperties
CONTROL_POINTViena vērtība katram vadības punktam (virsotnei).
POLYGON_VERTEXViena vērtība katram daudzstūra stūrim (sejas-virsotnei).
POLYGONViena vērtība katram daudzstūrim.
EDGEViena vērtība katrai malai.
ALL_SAMEViena 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
PropertiesProperties
DIRECTDatiem tiek piekļūts secīgi, bez atsevišķa indeksu masīva.
INDEXDatiem tiek piekļūts caur atsevišķu indeksu masīvu.
INDEX_TO_DIRECTIndeksu 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")

Skatīt arī

 Latviešu