three.js 全景,three js 全景生成

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: