U ovom slučaju, u skladu s člankom 21. stavkom 1. točkom (a) ovog članka.
Sljedeći članak: @aspose/3d (v24.12.0)
VertexElement je apstraktna osnovna klasa za per-vertex atribute kanala priključena na Geometry.Svaki kanal sadrži tipku podataka i mappingMode / referenceMode Metapodatke koji kontroliraju kako se podaci odnose na primitivne geometrije. Podklase su: VertexElementNormal, VertexElementUV, i VertexElementVertexColor.
import { VertexElement, VertexElementNormal, VertexElementUV, VertexElementVertexColor } from '@aspose/3d';VertexElement (abstraktna baza)
export abstract class VertexElement implements IIndexedVertexElementIzgraditelj
constructor(
elementType: VertexElementType,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Standardno mappingMode je: MappingMode.CONTROL_POINT; podrazumijevano referenceMode je: ReferenceMode.DIRECT.
Oznake i značajke
| Održavanje imovine | Iznos: | Prihvat | Opisivanje |
|---|---|---|---|
vertexElementType | VertexElementType | Čitaj. | Semantički tip ovog sloja. |
name | string | Čitanje/pisanje | Opcionalna oznaka za ovaj sloj. |
mappingMode | MappingMode | Čitanje/pisanje | Kontroli s kojim primitivnim geometrijskim elementom je povezana svaka vrijednost. |
referenceMode | ReferenceMode | Čitanje/pisanje | Kontrolira se da li su vrijednosti adresirane izravno ili putem indeksa. |
indices | number[] | Čitaj. | Indeksni niz za: IndexToDirect referentni način. |
Metoda za primjenu
setIndices(data)
NOT IMPLEMENTED. Na bazi.
VertexElementklasa, ova metoda bacaError('set_indices is not implemented')U vrijeme pokretanja. podklaseVertexElementFVectori u članku 1.VertexElementIntsTemplateprovesti radne provedbe.
Zamjenite indeksni niz.
setIndices(data: number[]): voidclear()
NOT IMPLEMENTED. Na bazi.
VertexElementklasa, ova metoda bacaError('clear is not implemented')U vrijeme pokretanja. podklaseVertexElementFVectori u članku 1.VertexElementIntsTemplateprovesti radne provedbe.
Uklonite sve podatke i indekse iz sloja.
clear(): voidVertexElementNormal
Normalne podatke zahtijeva većina renderera za ispravno osvijetljenje.
export class VertexElementNormal extends VertexElementFVectorNasljeđivanje
VertexElement → VertexElementFVector → VertexElementNormal
Izgraditelj
new VertexElementNormal(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType je fiksiran na: VertexElementType.NORMAL.
Sljedeći članakVerdžElementUV
U mreži mogu biti više UV slojeva za različite teksture. textureMapping svojstvo identificira svrhu kanala.
export class VertexElementUV extends VertexElementFVectorNasljeđivanje
VertexElement → VertexElementFVector → VertexElementUV
Izgraditelj
new VertexElementUV(
textureMapping: TextureMapping | null = null,
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)Neispunjavanje obveza u pogledu: TextureMapping.DIFFUSE kad je to bilo? textureMapping je: null.
Dodatna imovina
| Održavanje imovine | Iznos: | Prihvat | Opisivanje |
|---|---|---|---|
textureMapping | TextureMapping | Čitaj. | Kanal teksture s kojim je povezan ovaj UV sloj. |
data | FVector4[] | Čitaj. | UV vrijednosti izložene kao: FVector4 Uputina (z i w su: 0). |
uvData | FVector2[] | Čitaj. | UV vrijednosti kao: FVector2 Uputina (samo x, y). |
addData(data)
Pridružite UV vrijednosti. FVector2[], FVector3[],ili FVector4[].
addData(data: FVector2[] | FVector3[] | FVector4[]): voidVertexElementVertexColor
Složila je vrijednosti boje RGBA po vrhu. Komponente su u opsegu 01.
export class VertexElementVertexColor extends VertexElementFVectorNasljeđivanje
VertexElement → VertexElementFVector → VertexElementVertexColor
Izgraditelj
new VertexElementVertexColor(
name: string = '',
mappingMode: MappingMode | null = null,
referenceMode: ReferenceMode | null = null,
)vertexElementType je fiksiran na: VertexElementType.VERTEX_COLOR.
Primjeri:
Dodavanje normalnih na trokutnu mrežu:
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');Dodaj UV koordinate:
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');