VertexElement — Aspose.3D TypeScript API Reference

Balík: @aspose/3d (v24.12.0)

VertexElement je abstraktná základná trieda pre kanály atribútov na vrchole pripojené k Geometry.Každý kanál obsahuje typované pole dát a mappingMode / referenceMode metadáta, ktoré riadia, ako sa dáta vzťahujú k geometrickým primitívam. Podtriedy sú: VertexElementNormal, VertexElementUV, a VertexElementVertexColor.

import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';

ImageRenderOptions

export abstract class VertexElement implements IIndexedVertexElement

ImageRenderOptions

constructor(
  elementType: VertexElementType,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

ImageRenderOptions mappingMode je MappingMode.CONTROL_POINT; predvolené referenceMode je ReferenceMode.DIRECT.

ImageRenderOptions

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
vertexElementTypeVertexElementTypečítanieSémantický typ tejto vrstvy.
namestringčítanie/zápisVoliteľný popisok pre túto vrstvu.
mappingModeMappingModečítanie/zápisRiadi, s ktorým geometrickým primitívom je každá hodnota spojená.
referenceModeReferenceModečítanie/zápisOvláda, či sú hodnoty adresované priamo alebo prostredníctvom indexového poľa.
indicesnumber[]čítanieIndexové pole pre IndexToDirect referenčný režim.

ImageRenderOptions

setIndices(data)

NOT IMPLEMENTED. V základnej VertexElement triede, táto metóda vyhadzuje Error('set_indices is not implemented') v čase behu. Podtriedy VertexElementFVector a VertexElementIntsTemplate poskytujú funkčné implementácie.

Nahradiť pole indexov.

setIndices(data: number[]): void

clear()

NOT IMPLEMENTED. V základnej VertexElement triede, táto metóda vyhadzuje Error('clear is not implemented') v čase behu. Podtriedy VertexElementFVector a VertexElementIntsTemplate poskytujú funkčné implementácie.

Odstrániť všetky dáta a indexy z vrstvy.

clear(): void

VertexElementNormal

Ukladá vektory povrchových normálov. Dáta o normálach sú vyžadované väčšinou renderovacích motorov pre správne osvetlenie.

export class VertexElementNormal extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementNormal

ImageRenderOptions

new VertexElementNormal(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType je nastavené na VertexElementType.NORMAL.


VertexElementUV

Ukladá 2D textúrové súradnice. Mriežka môže obsahovať viacero UV vrstiev pre rôzne textúrové kanály. Tá textureMapping vlastnosť určuje účel kanála.

export class VertexElementUV extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementUV

ImageRenderOptions

new VertexElementUV(
  textureMapping: TextureMapping | null = null,
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

Predvolené je TextureMapping.DIFFUSE keď textureMapping je null.

Dodatočná vlastnosť

ImageRenderOptionsImageRenderOptionsImageRenderOptionsImageRenderOptions
textureMappingTextureMappingčítanieKanál textúry, s ktorým je táto UV vrstva spojená.
dataFVector4[]čítanieUV hodnoty vystavené ako FVector4 záznamy (z a w sú 0).
uvDataFVector2[]čítanéUV hodnoty ako FVector2 záznamy (iba x, y).

addData(data)

Pridať UV hodnoty. Prijíma FVector2[], FVector3[], alebo FVector4[].

addData(data: FVector2[] | FVector3[] | FVector4[]): void

VertexElementVertexColor

Ukladá hodnoty farby RGBA pre každý vrchol. Zložky sú v rozsahu 0–1.

export class VertexElementVertexColor extends VertexElementFVector

ImageRenderOptions

VertexElementVertexElementFVectorVertexElementVertexColor

ImageRenderOptions

new VertexElementVertexColor(
  name: string = '',
  mappingMode: MappingMode | null = null,
  referenceMode: ReferenceMode | null = null,
)

vertexElementType je nastavené na VertexElementType.VERTEX_COLOR.


ImageRenderOptions

Pridať normály do trojuholníkovej siete:

import { Scene, Mesh, Vector4, VertexElementType, MappingMode, ReferenceMode, FVector4 } from '@aspose/3d';

const mesh = new Mesh();
mesh.controlPoints.push(new Vector4(0, 0, 0, 1));
mesh.controlPoints.push(new Vector4(1, 0, 0, 1));
mesh.controlPoints.push(new Vector4(0.5, 1, 0, 1));
mesh.createPolygon(0, 1, 2);

const normals = mesh.createElement(
  VertexElementType.NORMAL,
  MappingMode.CONTROL_POINT,
  ReferenceMode.DIRECT,
);
normals.setData([
  new FVector4(0, 0, 1, 0),
  new FVector4(0, 0, 1, 0),
  new FVector4(0, 0, 1, 0),
]);

const scene = new Scene();
scene.rootNode.createChildNode('tri', mesh);
scene.save('triangle_normals.glb');

Pridať UV súradnice:

import { Scene, Mesh, Vector4, TextureMapping, MappingMode, ReferenceMode, FVector2 } from '@aspose/3d';

const mesh = new Mesh();
for (const [x, z] of [[0,0],[1,0],[1,1],[0,1]]) {
  mesh.controlPoints.push(new Vector4(x, 0, z, 1));
}
mesh.createPolygon(0, 1, 2, 3);

const uv = mesh.createElementUV(TextureMapping.DIFFUSE, MappingMode.CONTROL_POINT, ReferenceMode.DIRECT);
uv.addData([
  new FVector2(0, 0),
  new FVector2(1, 0),
  new FVector2(1, 1),
  new FVector2(0, 1),
]);

const scene = new Scene();
scene.rootNode.createChildNode('quad', mesh);
scene.save('quad_uv.glb');

Pozri tiež

 Slovenčina