109 lines
2.6 KiB
HTML
109 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>3D Model Showcase SDK - TS</title><style>
|
||
* {
|
||
margin: 0;
|
||
padding: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
body {
|
||
font-family: Arial, sans-serif;
|
||
overflow: hidden;
|
||
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
|
||
}
|
||
|
||
#app {
|
||
width: 100vw;
|
||
height: 100vh;
|
||
position: relative;
|
||
}
|
||
|
||
#renderDom {
|
||
width: 100%;
|
||
height: 100%;
|
||
display: block;
|
||
}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
<div id="app">
|
||
<canvas id="renderDom"></canvas>
|
||
</div>
|
||
|
||
<script type="module">
|
||
import { kernel } from './src/main.ts';
|
||
|
||
// import { kernel } from 'https://sdk.zguiy.com/zt/assets/index.js';
|
||
|
||
const config = {
|
||
container: document.querySelector('#renderDom'),
|
||
modelUrlList: ['https://sdk.zguiy.com/resurces/model/model.glb'],
|
||
env: { envPath: 'https://sdk.zguiy.com/resurces/hdr/hdr.env', intensity: 1.2, rotationY: 0.3, background: false },
|
||
};
|
||
|
||
kernel.init(config);
|
||
|
||
|
||
|
||
kernel.on('model:load:progress', (data) => {
|
||
console.log('模型加载事件', data);
|
||
});
|
||
|
||
|
||
|
||
kernel.on('model:loaded', (data) => {
|
||
console.log('模型加载完成', data);
|
||
|
||
|
||
|
||
|
||
});
|
||
|
||
kernel.on('all:ready', (data) => {
|
||
console.log('所有模块加载完,', data);
|
||
kernel.material.apply({
|
||
target: 'Material__2',
|
||
attribute: 'alpha',
|
||
value: 0.5,
|
||
});
|
||
|
||
});
|
||
|
||
|
||
|
||
kernel.on('model:click', (data) => {
|
||
console.log('模型点击事件', data);
|
||
|
||
// 切换卷帘门开关
|
||
kernel.door.toggle({ upY: 28, downY: 0, speed: 12 });
|
||
|
||
// Y轴剖切,只作用于卷帘门网格,保留下方,剖掉上方
|
||
const clipHeight = 28; // 调整这个值找到合适的剖切高度
|
||
console.log('设置剖切:', clipHeight);
|
||
kernel.clipping.setY(clipHeight, true, ['Box005.001', 'Box006.001']);
|
||
|
||
// 验证剖切是否生效
|
||
setTimeout(() => {
|
||
const scene = kernel.mainApp?.appScene?.object;
|
||
console.log('Scene:', scene);
|
||
console.log('Scene clipPlane:', scene?.clipPlane);
|
||
console.log('Scene meshes count:', scene?.meshes?.length);
|
||
}, 100);
|
||
});
|
||
|
||
|
||
|
||
</script>
|
||
</body>
|
||
|
||
</html>
|
||
|
||
|
||
|