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 VertexElementMethods
VertexElement
Methods
| Methods | Methods | Methods | Methods |
|---|---|---|---|
vertex_element_type | VertexElementType | Read | Semantinis šio sluoksnio tipas (pvz., NORMAL, UV, VERTEX_COLOR). |
name | str | Read/Write | Pasirinkomas šio sluoksnio pavadinimas. |
mapping_mode | MappingMode | Read/Write | Valdo, kuri geometrinė primityva yra susieta su kiekviena duomenų verte. |
reference_mode | ReferenceMode | Read/Write | Valdo, ar vertės yra adresuojamos tiesiogiai, ar per indeksų masyvą. |
indices | list[int] | Read | Indeksų masyvas naudojamas, kai reference_mode yra INDEX_TO_DIRECT. |
data | list[FVector4] | skaityti | Neapdorotos duomenų reikšmės saugomos kaip FVector4 įrašai (prieinami VertexElementFVector pakaitinės klasės). |
Methods
| Methods | Methods | Methods |
|---|---|---|
set_data(data) | None | Pakeiskite duomenų masyvą. Priima list[FVector2], list[FVector3], arba list[FVector4]; reikšmės normalizuojamos į FVector4 viduje. |
set_indices(data) | None | Pakeiskite indeksų masyvą sveikųjų skaičių sąrašu. |
clear() | None | Pašalinkite visų duomenų reikšmes ir indeksus iš sluoksnio. |
copy_to(target) | None | Kopijuokite 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 VertexElementNormalMethods
VertexElement → VertexElementFVector → VertexElementNormal
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 VertexElementUVMethods
VertexElement → VertexElementFVector → VertexElementUV
Methods
VertexElementUV(texture_mapping=None, name="", mapping_mode=None, reference_mode=None)| Methods | Methods | Methods |
|---|---|---|
texture_mapping | TextureMapping | Tekstūros kanalas, kurį šis UV sluoksnis aptarnauja. Numatyta reikšmė – TextureMapping.DIFFUSE. |
Papildoma savybė
| Methods | Methods | Methods | Methods |
|---|---|---|---|
texture_mapping | TextureMapping | skaityti | Tekstū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 VertexElementVertexColorMethods
VertexElement → VertexElementFVector → VertexElementVertexColor
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 VertexElementTangentMethods
VertexElement → VertexElementFVector → VertexElementTangent
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 VertexElementBinormalMethods
VertexElement → VertexElementFVector → VertexElementBinormal
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 VertexElementSmoothingGroupMethods
VertexElement → VertexElementIntsTemplate → VertexElementSmoothingGroup
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| Methods | Methods |
|---|---|
NORMAL | Paviršiaus normalų vektoriai. |
UV | Tekstūros UV koordinatės. |
VERTEX_COLOR | Kiekvienos viršūnės RGBA spalva. |
TANGENT | Tangentiniai vektoriai normalų žemėlapio kūrimui. |
BINORMAL | Binormaliniai (bitangent) vektoriai. |
SMOOTHING_GROUP | Kiekvieno daugiakampio glotninimo grupės sveikųjų skaičių ID. |
MATERIAL | Kiekvieno daugiakampio medžiagos indeksas. |
POLYGON_GROUP | Daugiakampio grupavimo indeksas. |
VERTEX_CREASE | Skaldymo viršūnės krištų svoriai. |
EDGE_CREASE | Skaldymo krašto krištų svoriai. |
USER_DATA | Bet kokie vartotojo apibrėžti duomenys. |
VISIBILITY | Kiekvieno elemento matomumo žymės. |
SPECULAR | Veidrodžio spalva arba intensyvumas. |
WEIGHT | Maišymo svoriai odos apdorojimui. |
HOLE | Poligono 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| Methods | Methods |
|---|---|
CONTROL_POINT | Kiekvienam valdymo taškui (viršūnei) – viena reikšmė. |
POLYGON_VERTEX | Kiekvienam daugiakampio kampui (veido-viršūnei) – viena reikšmė. |
POLYGON | Kiekvienam daugiakampiui – viena reikšmė. |
EDGE | Kiekvienam kraštui – viena reikšmė. |
ALL_SAME | Viena reikšmė taikoma visam tinkleliui. |
ReferenceMode išvardinimas
Valdo, kaip indeksuojamas duomenų masyvas.
from aspose.threed.entities import ReferenceMode| Methods | Methods |
|---|---|
DIRECT | Duomenys pasiekiami nuosekliai be atskiro indeksų masyvo. |
INDEX | Duomenys pasiekiami per atskirą indeksų masyvą. |
INDEX_TO_DIRECT | Indeksų 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")