Files
node-metaverse/lib/classes/LLGLTFMaterialData.ts

200 lines
5.2 KiB
TypeScript
Raw Normal View History

2023-11-10 23:57:26 +00:00
export interface LLGLTFExtensionsAndExtras
{
2023-11-10 23:57:26 +00:00
extensions?: Record<string, unknown>
extras?: Record<string, unknown>
}
export interface LLGLTFTexture
{
index: number,
extensions?: Record<string, unknown>,
extras?: Record<string, unknown>,
texCoord?: number,
}
export type LLGLTFTextureInfo = LLGLTFTexture & LLGLTFExtensionsAndExtras;
2023-11-16 02:03:08 +00:00
export interface LLGLTFMaterialEntry
{
name?: string;
emissiveFactor?: number[];
alphaMode?: string;
alphaCutoff?: number;
doubleSided?: boolean;
pbrMetallicRoughness?: {
baseColorFactor?: number[];
baseColorTexture?: LLGLTFTextureInfo;
metallicRoughnessTexture?: LLGLTFTextureInfo;
metallicFactor?: number;
roughnessFactor?: number;
} & LLGLTFExtensionsAndExtras,
normalTexture?: {
index: number;
texCoord?: number;
scale?: number;
} & LLGLTFExtensionsAndExtras,
occlusionTexture?: {
index: number;
texCoord?: number;
strength?: number;
} & LLGLTFExtensionsAndExtras,
emissiveTexture?: {
extensions?: {
KHR_texture_transform?: {
offset: number[],
rotation: number,
scale: number[]
}
},
index: number
texCoord?: number;
}
}
2023-11-10 23:57:26 +00:00
export interface LLGLTFMaterialDataPart
{
asset?: {
version: string;
2023-11-10 23:57:26 +00:00
generator?: string;
minVersion?: string;
copyright?: string;
} & LLGLTFExtensionsAndExtras;
extensionsUsed?: string[];
extensionsRequired?: string[];
buffers?: ({
byteLength: number;
uri?: string;
type?: string;
name?: string;
} & LLGLTFExtensionsAndExtras)[],
bufferViews?: ({
buffer: number;
byteOffset?: number;
byteLength: number;
byteStride?: number;
target: number;
name?: string;
} & LLGLTFExtensionsAndExtras)[],
accessors?: ({
bufferView?: number;
byteOffset?: number;
normalized?: number;
componentType: number;
count: number;
type: string;
name?: string;
minValues?: number[];
maxValues?: number[];
sparse?: {
count: number;
bufferView: number;
indices: {
bufferView: number;
byteOffset?: number;
componentType?: number;
} & LLGLTFExtensionsAndExtras,
values: {
bufferView: number;
byteOffset?: number;
} & LLGLTFExtensionsAndExtras
} & LLGLTFExtensionsAndExtras
} & LLGLTFExtensionsAndExtras)[];
meshes?: ({
name?: string;
primitives?: ({
material?: number;
mode?: number;
indices?: number;
targets?: Record<string, number>[];
} & LLGLTFExtensionsAndExtras)[];
weights?: number[];
} & LLGLTFExtensionsAndExtras)[],
nodes?: ({
name?: string;
skin?: number;
camera?: number;
mesh?: number;
children?: number[];
weights?: number[];
emitter?: number;
light?: number;
} & (
{
rotation?: number[];
scale?: number[];
translaction?: number[]
} | {
matrix?: number[]
}
)) & LLGLTFExtensionsAndExtras[],
scenes?: ({
name?: string;
nodes?: number[];
} & LLGLTFExtensionsAndExtras)[];
scene?: number;
2023-11-16 02:03:08 +00:00
materials?: (LLGLTFMaterialEntry & LLGLTFExtensionsAndExtras)[];
2023-11-10 23:57:26 +00:00
images?: (({
bufferView: number;
mimeType: string;
width: number;
height: number;
} | {
uri: string;
}) & LLGLTFExtensionsAndExtras)[];
textures?: ({
sampler?: number;
source?: number;
name?: string;
} & LLGLTFExtensionsAndExtras)[];
animations?: ({
name?: string;
channels?: ({
sampler: number;
target?: {
node?: number;
path: string;
} & LLGLTFExtensionsAndExtras
} & LLGLTFExtensionsAndExtras)[]
samplers?: ({
input: number;
output: number;
interpolation?: string;
} & LLGLTFExtensionsAndExtras)[]
} & LLGLTFExtensionsAndExtras)[];
skins?: ({
name?: string;
joints?: number[];
skeleton?: number;
inverseBindMatrices: number;
} & LLGLTFExtensionsAndExtras)[];
samplers?: ({
name?: string;
minFilter?: number;
magFilter: number;
wrapS?: number;
wrapT?: number;
} & LLGLTFExtensionsAndExtras)[];
cameras?: (({
name?: string;
type: 'orthographic';
orthographic: {
xmag: number;
ymag: number;
zfar: number;
znear: number;
} & LLGLTFExtensionsAndExtras
} | {
name?: string;
type: 'perspective';
perspective: {
yfov: number;
znear: number;
aspectRatio?: number;
zfar?: number;
} & LLGLTFExtensionsAndExtras
}) & LLGLTFExtensionsAndExtras)[];
}
2023-11-10 23:57:26 +00:00
export type LLGLTFMaterialData = LLGLTFMaterialDataPart & LLGLTFExtensionsAndExtras;