360全景交互式三维模型panolens.js 实现
本文主要介绍在全景图中进行三维模型交互式操作,主要步骤如下:1,加载核心js代码库<script src="js/three.min.js"></script><script src="js/panolens.min.js"></script><script src="js/ColladaLoader.js"></script>
·
本文主要介绍在全景图中进行三维模型交互式操作,主要步骤如下:
1,加载核心js代码库
<script src="js/three.min.js"></script>
<script src="js/panolens.min.js"></script>
<script src="js/ColladaLoader.js"></script>
2,创建全景容器
<div id="chair-container" class="container" style="display:none">
3,加载全景图及三维模型
加载全景照片
path = 'img/cube/';
format = '.jpg';
panorama = new PANOLENS.CubePanorama( [
path + 'px' + format, path + 'nx' + format,
path + 'py' + format, path + 'ny' + format,
path + 'pz' + format, path + 'nz' + format
] );
viewer = new PANOLENS.Viewer();
viewer.add( panorama );
加载三维模型
loader = new THREE.ColladaLoader();
loader.load( './model/room/room.dae', function ( collada ) {
dae = collada.scene;
dae.scale.multiplyScalar( 15 );
dae.position.set( -60, -20, 370 );
dae.rotation.set( -Math.PI/2, 0, -1.9 );
dae.traverse( child => {
if ( child.material instanceof THREE.Material ) {
const map = child.material.map;
child.material = new THREE.MeshPhysicalMaterial({map, reflectivity: 0, metalness: 0});
}
} );
// Get chair model
dae.children.map( function( object ) {
if ( object.name === 'Chair-Desk' &&
object.material.name === 'Textile - Slate Blue' ) {
chairModels.push( object );
}
} )
panorama.add( dae );
} );
4,实现三维模型交互体验
添加监听事件
panorama.addEventListener( 'click', function( event ){
if ( event.intersects.length > 0 ) {
intersect = event.intersects[ 0 ].object;
if ( !(intersect instanceof PANOLENS.Infospot) && intersect.material ) {
if ( !intersect.previousMaterial ) {
intersect.previousMaterial = intersect.material.clone();
intersect.material = new THREE.MeshNormalMaterial();
} else {
intersect.material = intersect.previousMaterial;
intersect.previousMaterial.dispose();
intersect.previousMaterial = undefined;
}
}
}
} );

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)