This commit is contained in:
@ -1 +1 @@
|
||||
VITE_PUBLIC = https://cdn.files.zguiy.com/studio/
|
||||
VITE_PUBLIC = ./
|
||||
@ -1,10 +1,12 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>SDK 全局挂载加载示例</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<canvas id="renderDom"></canvas>
|
||||
|
||||
@ -16,24 +18,32 @@
|
||||
container: 'renderDom',
|
||||
modelUrlList: ['./public/model/model.glb'],
|
||||
env: { hdrPath: '/hdr/my.env', intensity: 1.2, rotationY: 0.3 },
|
||||
onSuccess: () => console.log('SDK initialized (global)'),
|
||||
onError: (err) => console.error('SDK init error', err),
|
||||
};
|
||||
|
||||
function startSdk() {
|
||||
const kernel = window.faceSDK && window.faceSDK.kernel;
|
||||
if (!kernel) {
|
||||
console.error('SDK kernel not loaded');
|
||||
return;
|
||||
}
|
||||
kernel.init(config);
|
||||
}
|
||||
console.log(window.faceSDK , window.faceSDK.kernel);
|
||||
|
||||
const kernel = window.faceSDK && window.faceSDK.kernel;
|
||||
kernel.init(config);
|
||||
|
||||
|
||||
kernel.on('model:load:progress', (data) => {
|
||||
console.log('模型加载事件', data);
|
||||
});
|
||||
|
||||
|
||||
|
||||
kernel.on('model:loaded', (data) => {
|
||||
console.log('模型加载完成', data);
|
||||
});
|
||||
|
||||
|
||||
|
||||
kernel.on('model:click', (data) => {
|
||||
console.log('模型点击事件', data);
|
||||
});
|
||||
|
||||
|
||||
if (document.readyState === 'complete') {
|
||||
startSdk();
|
||||
} else {
|
||||
window.addEventListener('load', startSdk);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</html>
|
||||
@ -43,7 +43,7 @@
|
||||
// import { kernel } from 'https://sdk.zguiy.com/zt/assets/index.js';
|
||||
|
||||
const config = {
|
||||
container: 'renderDom',
|
||||
container: document.querySelector('#renderDom'),
|
||||
modelUrlList: ['/public/model/model.glb'],
|
||||
env: { envPath: '/public/hdr/hdr.env', intensity: 1.2, rotationY: 0.3 },
|
||||
};
|
||||
|
||||
@ -2,6 +2,7 @@ import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
|
||||
import { Vector3 } from '@babylonjs/core/Maths/math.vector';
|
||||
import { Tools } from '@babylonjs/core/Misc/tools';
|
||||
import { Monobehiver } from '../base/Monobehiver';
|
||||
import { AppConfig } from './AppConfig';
|
||||
|
||||
/**
|
||||
* 相机控制类- 负责创建和控制弧形旋转相机
|
||||
@ -17,7 +18,7 @@ export class AppCamera extends Monobehiver {
|
||||
/** 初始化相机 */
|
||||
Awake(): void {
|
||||
const scene = this.mainApp.appScene.object;
|
||||
const canvas = this.mainApp.appDom.renderDom;
|
||||
const canvas = AppConfig.container;
|
||||
if (!scene || !canvas) return;
|
||||
|
||||
// 创建弧形旋转相机:水平角70度,垂直角80度,距离5,目标点(0,1,0)
|
||||
|
||||
@ -6,7 +6,7 @@ type ErrorCallback = ((error?: unknown) => void) | null | undefined;
|
||||
* 共享运行时配置对象
|
||||
*/
|
||||
export const AppConfig = {
|
||||
container: 'renderDom',
|
||||
container: document.querySelector('#renderDom') as HTMLCanvasElement,
|
||||
modelUrlList: [] as string[],
|
||||
env: {
|
||||
envPath: '/hdr/sanGiuseppeBridge.env',
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { Engine } from '@babylonjs/core/Engines/engine';
|
||||
import { Monobehiver } from '../base/Monobehiver';
|
||||
import { AppConfig } from './AppConfig';
|
||||
|
||||
/**
|
||||
* 渲染引擎管理类 - 负责创建和管理3D渲染引擎
|
||||
@ -15,7 +16,7 @@ export class AppEngin extends Monobehiver {
|
||||
}
|
||||
|
||||
Awake(): void {
|
||||
this.canvas = this.mainApp.appDom.renderDom;
|
||||
this.canvas = AppConfig.container;
|
||||
if (!this.canvas) {
|
||||
throw new Error('Render canvas not found');
|
||||
}
|
||||
|
||||
@ -44,7 +44,7 @@ export class MainApp {
|
||||
* @param config 配置对象
|
||||
*/
|
||||
loadAConfig(config: any): void {
|
||||
AppConfig.container = config.container || 'renderDom';
|
||||
AppConfig.container = config.container ;
|
||||
AppConfig.modelUrlList = config.modelUrlList || [];
|
||||
AppConfig.env = config.env;
|
||||
}
|
||||
|
||||
15
src/main.ts
15
src/main.ts
@ -37,23 +37,10 @@ const kernel = {
|
||||
init: async function (params: InitParams): Promise<void> {
|
||||
if (!params) { console.error('params is required'); return; }
|
||||
|
||||
if (params.apiConfig) {
|
||||
await configurator.init(params.apiConfig);
|
||||
if (params.apiConfig.name) {
|
||||
const userInfo = await auth.login(params.apiConfig.name);
|
||||
if (!userInfo) {
|
||||
console.error('failed to fetch user');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mainApp = new MainApp();
|
||||
mainApp.loadAConfig({
|
||||
container: params.container || 'renderDom',
|
||||
container: params.container || document.querySelector(params.container),
|
||||
modelUrlList: params.modelUrlList || [],
|
||||
success: params.onSuccess ?? null,
|
||||
error: params.onError ?? null,
|
||||
env: params.env
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user