three.js 全景,three js 全景生成
这篇文章主要给大家介绍了关于某视频剪辑软件中利用三。射流研究…实现全景图的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
粗暴一点,直接上代码:
第一步:
通过指令下载三。射流研究…
新公共管理安装三个S
第二步:
在组件中引用
从"三"中导入*作为三
第三步:
超文本标记语言部分
div id=容器/div
射流研究…部分
脚本
从"三"中导入*作为三;
定义变量相机;
定义变量渲染器;
定义变量场景;
导出默认值{
名称:全景,
data() {
返回{
bigImg: require(./././././图片/项目案例/001.jpg ),//全景图图片路径
}
},
已安装(){
//调用全景图函数
这个. nextTick(()={
这个。init();
这个。animate();
})
},
方法:{
//全景图配置函数-
init() {
var容器=文档。getelementbyid(“容器”);
//创建渲染器
渲染器=新三WebGLRenderer();
渲染器。setpixelrratio(窗口。devicepixelrratio);
//设置画布的宽高
渲染器。setsize(窗口。窗户内部宽度。内高);
//判断容器中子元素的长度
让childs=container。子节点;
如果(容器。子节点。长度0){
集装箱。删除childs(childs[0]);
集装箱。appendchild(渲染器。DOM元素);
}否则{
集装箱。appendchild(渲染器。DOM元素);
}
//容器。appendchild(渲染器。DOM元素);
//创建场景
场景=新三。场景();
//创建相机
相机=新三PerspectiveCamera(90,窗口。内部宽度/窗口。内高,0.1,100);
camera.position.set(0,0,0);
定义变量材质=新三MeshBasicMaterial();//材质
定义变量纹理=新三TextureLoader().加载(这个。bigimg);
material.map=纹理
var skyBox=新三。网格(
新三。球形缓冲几何(100,100,100),
材料
);
skyBox.geometry.scale(1,1,-1);
场景。添加(天空盒子);
窗户。addevent侦听器( resize ,this.onWindowResize,false);
var bMouseDown=false
var x=-1;
var y=-1;
//添加鼠标事件
集装箱。onmousedown=function(event){
事件。防止默认();//取消默认事件
x=event.clientX
y=事件.客户
bMouseDown=true
}
集装箱。onmouseup=函数(事件){
事件。防止默认();
bMouseDown=false
}
集装箱。onmousemove=function(event){
事件。防止默认();
if (bMouseDown) {
天空盒子。旋转。y=-0.005 *(事件。clientx-x);
天空盒子。旋转。x=-0.005 *(事件。客户-y);
if (skyBox.rotation.x Math .PI/2) {
sky box . rotation . x=Math ./2。
}
if (skyBox.rotation.x -Math .PI/2) {
sky box . rotation . x=-Math ./2。
}
x=event.clientX
y=事件.客户
}
}
集装箱。onmousewheel=function(event){
事件。防止默认();
if (event.wheelDelta!=0) {
camera.fov=event.wheelDelta 0?1 : -1;
if (camera.fov 150) {
相机视野=150
}
else if (camera.fov 30) {
相机视场=30
}
相机。updateprojectionmatrix();
}
}
},
onWindowResize() {
//窗口缩放的时候,保证场景也跟着一起缩放
相机。纵横比=窗口。内部宽度/窗口。内部高度;
相机。updateprojectionmatrix();
renderer . setsize(window . inner width,window . inner height);
},
animate() {
requestAnimationFrame(this . animate);
renderer.render(场景、相机);
}
},
}
/脚本
关于在vue中用three.js实现全景的这篇文章到此为止。关于在vue中用three.js实现全景的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。