@babylonjs/loaders
Version:
For usage documentation please visit https://doc.babylonjs.com/features/featuresDeepDive/importers/loadingFileTypes/.
85 lines (84 loc) • 2.16 kB
TypeScript
import type { Scene } from "@babylonjs/core/scene.js";
import type { IParsedSplat } from "./splatDefs.js";
/**
* Definition of a SOG data file
*/
export interface SOGDataFile {
/**
* index 0 is number of splats index 1 is number of components per splat (3 for vec3, 4 for vec4, etc.)
*/
shape: number[];
/**
* type of components
*/
dtype: string;
/**
* min range of data
*/
mins?: number | number[];
/**
* max range of data
*/
maxs?: number | number[];
/**
* palette for indexed data (quantized)
*/
codebook?: number[];
/**
* type of encoding
*/
encoding?: string;
/**
* number of bits for quantization (if any)
*/
quantization?: number;
/**
* webp file names
*/
files: string[];
/**
* SH band count (if applicable)
*/
bands?: number;
}
/**
* Definition of the root SOG data file
*/
export interface SOGRootData {
/**
* version of the SOG format
*/
version?: number;
/**
* mean positions of the splats
*/
means: SOGDataFile;
/**
* scales of the splats
*/
scales: SOGDataFile;
/**
* quaternions of the splats
*/
quats: SOGDataFile;
/**
* SH0 coefficients of the splats (base color)
*/
sh0: SOGDataFile;
/**
* Optional higher order SH coefficients of the splats (lighting information)
*/
shN?: SOGDataFile;
/**
* number of splats (optional, can be inferred from means.shape[0])
*/
count?: number;
}
/**
* Parse SOG data from either a SOGRootData object (with webp files loaded from rootUrl) or from a Map of filenames to Uint8Array file data (including meta.json)
* @param dataOrFiles Either the SOGRootData or a Map of filenames to Uint8Array file data (including meta.json)
* @param rootUrl Base URL to load webp files from (if dataOrFiles is SOGRootData)
* @param scene The Babylon.js scene
* @returns Parsed data
*/
export declare function ParseSogMeta(dataOrFiles: SOGRootData | Map<string, Uint8Array>, rootUrl: string, scene: Scene): Promise<IParsedSplat>;