# SDK API 参考 下列 API 均可在全局挂载或 ESM 模式下使用。示例统一使用 `kernel` 作为实例,若为全局构建请替换为 `window.faceSDK.kernel`。 ## 相机 Camera ```ts // 设置视角 kernel.camera.set({ position: [2.5, 1.6, 3.2], target: [0, 0.8, 0], fov: 45, near: 0.1, far: 200, }) // 平滑过渡 kernel.camera.animateTo( { position: [1.2, 1, 2.4], target: [0, 0.8, 0], fov: 50 }, { duration: 0.8, easing: 'easeOutCubic', onFinish: () => console.log('camera done') } ) ``` ## 灯光 Lights ```ts // 主方向光 kernel.lights.update('key', { intensity: 1.5, color: '#ffffff', direction: [0.3, -1, 0.25], castShadow: true, }) // 环境光 / 辅光 kernel.lights.update('fill', { intensity: 0.6, color: '#dfe8ff' }) kernel.lights.update('ambient', { intensity: 0.25 }) ``` ## 环境贴图 Environment ```ts await kernel.environment.setHDRI('/envs/showroom_2k.hdr', { exposure: 1.1, rotation: [0, 45, 0], // yaw/pitch/roll blur: 0.2, }) ``` ## 热点 Hotspot ```ts const hotspots = [ { id: 'engine', position: [0.8, 0.6, -0.2], icon: 'info', label: '发动机舱', event: 'show-engine' }, { id: 'door', position: [1.1, 0.9, 0.4], icon: 'action', label: '开启车门', event: 'toggle-door' }, ] kernel.hotspot.render(hotspots) kernel.hotspot.on('click', ({ id, payload }) => { console.log('hotspot click', id, payload) }) kernel.hotspot.on('hover', ({ id, hovering }) => { console.log('hotspot hover', id, hovering) }) ``` ## 模型 Model ```ts // 加载 await kernel.model.load({ id: 'car', url: '/models/car.glb', draco: true }) // 销毁 await kernel.model.destroy('car') // 替换 await kernel.model.replace('car', { url: '/models/car-white.glb' }) // 事件 kernel.model.on('loaded', (data) => console.log('loaded', data)) kernel.model.on('replaced', (data) => console.log('replaced', data)) kernel.model.on('destroyed', (data) => console.log('destroyed', data)) ``` ## 材质 Material ```ts // 应用预设 kernel.material.apply({ target: 'body', material: 'paint/blue' }) // 批量切换 kernel.material.batch([ { target: 'wheel', material: 'rim/chrome' }, { target: 'glass', material: 'glass/clear' }, ]) // 还原 kernel.material.reset('body') ``` ## 事件总线与调试 ```ts // 订阅/取消 kernel.on('hotspot:click', (evt) => console.log(evt)) kernel.off('hotspot:click', handler) // 开启调试日志 kernel.debug(true) ```