VertexElement — Aspose.3D Python API Reference

Paketas: aspose.threed.entities (aspose-3d-foss 26.1.0)

VertexElement yra abstrakti bazinė klasė visoms per‑viršūnės duomenų sluoksniams, kuriuos galima prijungti prie Geometry objekto. Kiekvienas sluoksnis saugo duomenų verčių masyvą kartu su mapping_mode ir reference_mode metaduomenimis, kurie aprašo, kaip duomenys susiejami su pagrindine geometrija. Potipiai specializuojami normalėms, UV koordinatėms, viršūnių spalvoms, tangentinėms, binormalinėms ir glotninimo grupėms.


Methods

from aspose.threed.entities import VertexElement

Methods

VertexElement

Methods

MethodsMethodsMethodsMethods
vertex_element_typeVertexElementTypeReadSemantinis šio sluoksnio tipas (pvz., NORMAL, UV, VERTEX_COLOR).
namestrRead/WritePasirinkomas šio sluoksnio pavadinimas.
mapping_modeMappingModeRead/WriteValdo, kuri geometrinė primityva yra susieta su kiekviena duomenų verte.
reference_modeReferenceModeRead/WriteValdo, ar vertės yra adresuojamos tiesiogiai, ar per indeksų masyvą.
indiceslist[int]ReadIndeksų masyvas naudojamas, kai reference_mode yra INDEX_TO_DIRECT.
datalist[FVector4]skaitytiNeapdorotos duomenų reikšmės saugomos kaip FVector4 įrašai (prieinami VertexElementFVector pakaitinės klasės).

Methods

MethodsMethodsMethods
set_data(data)NonePakeiskite duomenų masyvą. Priima list[FVector2], list[FVector3], arba list[FVector4]; reikšmės normalizuojamos į FVector4 viduje.
set_indices(data)NonePakeiskite indeksų masyvą sveikųjų skaičių sąrašu.
clear()NonePašalinkite visų duomenų reikšmes ir indeksus iš sluoksnio.
copy_to(target)NoneKopijuokite duomenis ir indeksus į kitą VertexElementFVector objektą.

VertexElementNormal

Saugo paviršiaus normalės vektorius. Normalės duomenys paprastai naudojami rendererių apšvietimo skaičiavimams.

from aspose.threed.entities import VertexElementNormal

Methods

VertexElementVertexElementFVectorVertexElementNormal

Methods

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

vertex_element_type yra fiksuota į VertexElementType.NORMAL.


Returns: VertexElementUV

Saugo UV tekstūros koordinates. Tinklas gali turėti kelis UV sluoksnius skirtingiems tekstūros kanalams.

from aspose.threed.entities import VertexElementUV

Methods

VertexElementVertexElementFVectorVertexElementUV

Methods

VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)
MethodsMethodsMethods
texture_mappingTextureMappingTekstūros kanalas, kurį šis UV sluoksnis aptarnauja. Numatyta reikšmė – TextureMapping.DIFFUSE.

Papildoma savybė

MethodsMethodsMethodsMethods
texture_mappingTextureMappingskaitytiTekstūros kanalas, su kuriuo susijęs šis UV sluoksnis.

add_data(data)

Pridėkite UV koordinatų duomenis. Priima list[Vector2], list[Vector3], list[FVector2], list[FVector3], arba list[FVector4]. Visos reikšmės saugomos viduje kaip FVector4 su nenaudojamais komponentais nustatytais į 0.0.


VertexElementVertexColor

Saugo per-viršūnės RGBA spalvų reikšmes intervale 0–1.

from aspose.threed.entities import VertexElementVertexColor

Methods

VertexElementVertexElementFVectorVertexElementVertexColor

Methods

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

vertex_element_type yra nustatytas į VertexElementType.VERTEX_COLOR.


VertexElementTangent

Saugo per-viršūnės arba per-kampo tangentų vektorius, naudojamus normalų žemėlapių renderavimui.

from aspose.threed.entities import VertexElementTangent

Methods

VertexElementVertexElementFVectorVertexElementTangent

vertex_element_type yra nustatytas į VertexElementType.TANGENT.


VertexElementBinormal

Saugo kiekvienam viršūnei arba kampui priklausančius binormalius (bitangent) vektorius, papildančius VertexElementTangent skirta tangentinės erdvės normalų žemėlapio.

from aspose.threed.entities import VertexElementBinormal

Methods

VertexElementVertexElementFVectorVertexElementBinormal

vertex_element_type yra nustatyta į VertexElementType.BINORMAL.


VertexElementSmoothingGroup

Saugo kiekvieno daugiakampio sveikųjų skaičių glotninimo grupės ID. Įkelia iš OBJ failų, kurie turi s deklaracijas.

from aspose.threed.entities import VertexElementSmoothingGroup

Methods

VertexElementVertexElementIntsTemplateVertexElementSmoothingGroup

vertex_element_type yra nustatyta į VertexElementType.SMOOTHING_GROUP.


VertexElementType išvardinimas

Nustato semantinę viršūnės elemento sluoksnio rolę.

from aspose.threed.entities import VertexElementType
MethodsMethods
NORMALPaviršiaus normalų vektoriai.
UVTekstūros UV koordinatės.
VERTEX_COLORKiekvienos viršūnės RGBA spalva.
TANGENTTangentiniai vektoriai normalų žemėlapio kūrimui.
BINORMALBinormaliniai (bitangent) vektoriai.
SMOOTHING_GROUPKiekvieno daugiakampio glotninimo grupės sveikųjų skaičių ID.
MATERIALKiekvieno daugiakampio medžiagos indeksas.
POLYGON_GROUPDaugiakampio grupavimo indeksas.
VERTEX_CREASESkaldymo viršūnės krištų svoriai.
EDGE_CREASESkaldymo krašto krištų svoriai.
USER_DATABet kokie vartotojo apibrėžti duomenys.
VISIBILITYKiekvieno elemento matomumo žymės.
SPECULARVeidrodžio spalva arba intensyvumas.
WEIGHTMaišymo svoriai odos apdorojimui.
HOLEPoligono skylės žymės.

MappingMode išvardinimas

Valdo, su kuriuo geometrijos primityvu susiejama kiekviena viršūnės elemento reikšmė.

from aspose.threed.entities import MappingMode
MethodsMethods
CONTROL_POINTKiekvienam valdymo taškui (viršūnei) – viena reikšmė.
POLYGON_VERTEXKiekvienam daugiakampio kampui (veido-viršūnei) – viena reikšmė.
POLYGONKiekvienam daugiakampiui – viena reikšmė.
EDGEKiekvienam kraštui – viena reikšmė.
ALL_SAMEViena reikšmė taikoma visam tinkleliui.

ReferenceMode išvardinimas

Valdo, kaip indeksuojamas duomenų masyvas.

from aspose.threed.entities import ReferenceMode
MethodsMethods
DIRECTDuomenys pasiekiami nuosekliai be atskiro indeksų masyvo.
INDEXDuomenys pasiekiami per atskirą indeksų masyvą.
INDEX_TO_DIRECTIndeksų masyvas susieja kiekvieną žemėlapio primityvą su pozicija duomenų masyve.

Methods

Pridėti normalų sluoksnį prie tinklelio (DIRECT susiejimas):

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")

Pridėti UV koordinates (INDEX_TO_DIRECT susiejimas):

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")

Žr. taip pat

 Lietuvių