1
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
yinsx
2026-01-05 16:40:08 +08:00
parent 260c7e706c
commit 99da97fcb4
8 changed files with 35 additions and 36 deletions

View File

@ -1 +1 @@
VITE_PUBLIC = https://cdn.files.zguiy.com/studio/
VITE_PUBLIC = ./

View File

@ -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>

View File

@ -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 },
};

View File

@ -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)

View File

@ -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',

View File

@ -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');
}

View File

@ -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;
}

View File

@ -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
});