当前位置: 首页 > news >正文

three.js实战模拟VR全景视图

文章中使用到的案例图片都来源于:Humus - Textures
里面有很多免费的资源,可以直接下载,每个资源里面都提供6个不同方位的图片,我们通过threejs稍微处理一下,就能实现以下3D效果的场景了。
在这里插入图片描述

<template><div id="view-3D"></div>
</template><script setup>
import {  onMounted } from "vue";
import * as THREE from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'onMounted(() => {init()renderScene()
})
// 定义场景
const scene = new THREE.Scene()
// 创建一个能看场景的相机
const camare = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
// 定义渲染器
const renderer = new THREE.WebGLRenderer()
// 轨道控制器
let orbitControls
const init = () => {// 给场景设置纹理贴图const texture = new THREE.CubeTextureLoader().setPath('/assets/').load(['posx.jpg','negx.jpg','posy.jpg','negy.jpg','posz.jpg','negz.jpg'])scene.background = texture// 设置相机的位置camare.position.set(0, 0, 300)// 设置相机看的方向camare.lookAt(scene.position)// 设置要渲染的场景大小renderer.setSize(window.innerWidth, window.innerHeight)// 把相机添加到场景中scene.add(camare)// 在页面元素上画出元素document.getElementById('view-3D').appendChild(renderer.domElement)// 创建轨道控制器,使鼠标前后左右上下方位移动orbitControls = new OrbitControls(camare, renderer.domElement)
}
const renderScene = () => {// 创建动画刷新机制  请求再次执行渲染函数render,渲染下一帧requestAnimationFrame(renderScene)// 更新控制器orbitControls.update()// 最后一步渲染场景renderer.render(scene, camare)
}
</script>
http://www.lryc.cn/news/265623.html

相关文章:

  • 聊聊Spring Boot配置文件:优先级顺序、bootstrap.yml与application.yml区别详解
  • Milvus向量数据库基础用法及注意细节
  • 虚拟机多开怎么设置不同IP?虚拟机设置独立IP的技巧
  • 使用Docker-镜像命令
  • 4.3 C++对象模型和this指针
  • 计算机网络——计算机网络的概述(一)
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)ChannelMap 模块的实现
  • 微信小程序实现一个音乐播放器的功能
  • 算法基础之表达整数的奇怪方式
  • WEB 3D技术 three.js 设置图像随窗口大小变化而变化
  • 实战案例:缓存不一致问题的解决(redis+本地缓存caffine)
  • 【开源CDP】市场增长未来的探索,开源CDP带来的技术崛起与变革
  • 第11章 GUI Page423~424 步骤六 支持文字,使用菜单,对话框输入文字
  • 【Qt】Qt Creator 警告: Unused parameter ‘xxx‘
  • 「Vue3面试系列」Vue3.0性能提升主要是通过哪几方面体现的?
  • 网络结构模式
  • IIC及OLED实验
  • day6 力扣公共前缀--go实现---对字符串的一些思考
  • 27.Java程序设计-基于Springboot的在线考试系统小程序设计与实现
  • Redis可视化工具Redis Desktop Manager mac功能特色
  • 【C++】揭开运算符重载的神秘面纱
  • 竞赛保研 基于LSTM的天气预测 - 时间序列预测
  • 前端常用的开发工具
  • 鸿蒙开发语言介绍--ArkTS
  • 关于“Python”的核心知识点整理大全36
  • 安装nodejs,配置环境变量并将npm设置淘宝镜像源
  • 12.18构建哈夫曼树(优先队列),图的存储方式,一些细节(auto,pair用法,结构体指针)
  • 《Python》面试常问:深拷贝、浅拷贝、赋值之间的关系(附可变与不可变)【用图文讲清楚!】
  • 使用PE信息查看工具和Dependency Walker工具排查因为库版本不对导致程序启动报错问题
  • Python编程题目答疑「Python一对一辅导考试真题解析」