当前位置: 首页 > 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>

相关文章:

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

文章中使用到的案例图片都来源于&#xff1a;Humus - Textures 里面有很多免费的资源&#xff0c;可以直接下载&#xff0c;每个资源里面都提供6个不同方位的图片&#xff0c;我们通过threejs稍微处理一下&#xff0c;就能实现以下3D效果的场景了。 <template><div …...

聊聊Spring Boot配置文件:优先级顺序、bootstrap.yml与application.yml区别详解

Spring Boot 配置文件 优先级顺序 在Spring Boot中&#xff0c;配置文件的优先级顺序是&#xff1a;bootstrap.yml > application.yml > application-{profile}.yml&#xff0c;其中 {profile} 表示不同的环境配置&#xff0c;如 dev、test、prod 等。当存在相同名称的…...

Milvus向量数据库基础用法及注意细节

1、Milvus数据类型与python对应的数据类型 Milvus Python DataType.INT64 numpy.int64 DataType.INT32 numpy.int32 DataType.INT16 numpy.int16 DataType.BOOL Boolean DataType.FLOAT numpy.float32 DataType.DOUBLE numpy.double DataType.ARRAY list DataT…...

虚拟机多开怎么设置不同IP?虚拟机设置独立IP的技巧

随着虚拟化技术的不断发展&#xff0c;虚拟机已经成为了许多人的必备工具。在虚拟机中&#xff0c;我们可以轻松地创建多个虚拟机&#xff0c;并在每个虚拟机中设置不同的IP地址。下面&#xff0c;我们将介绍如何在虚拟机中设置独立IP地址的方法。 一、虚拟机多开设置不同IP的方…...

使用Docker-镜像命令

镜像名称一般分两部分组成:[repository]:[tag] 在没有指定tag时&#xff0c;默认是latest&#xff0c;代表最新版本的镜像 目录 案例一&#xff1a;从DockerHub中拉取一个nginx镜像并查看 1.1. 首先去镜像仓库搜索nginx镜像&#xff0c;比如DockerHub ​编辑 1.2.操作拉取n…...

4.3 C++对象模型和this指针

4.3 C对象模型和this指针 4.3.1 成员变量和成员函数分开存储 在C中&#xff0c;类内的成员变量和成员函数分开存储 只有非静态成员变量才属于类的对象上 #include <iostream>class Person { public:Person() {mA 0;} //非静态成员变量占对象空间int mA;//静态成员变量…...

计算机网络——计算机网络的概述(一)

前言&#xff1a; 面对马上的期末考试&#xff0c;也为了以后找工作&#xff0c;需要掌握更多的知识&#xff0c;而且我们现实生活中也已经离不开计算机&#xff0c;更离不开计算机网络&#xff0c;今天开始我们就对计算机网络的知识进行一个简单的学习与记录。 目录 一、什么…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)ChannelMap 模块的实现

&#xff08;三&#xff09;ChannelMap 模块的实现 这个模块其实就是为Channel来服务的&#xff0c;前面讲了Channel这个结构体里边它封装了文件描述符。假如说我们得到了某一个文件描述符&#xff0c;需要基于这个文件描述符进行它对应的事件处理&#xff0c;那怎么办呢&…...

微信小程序实现一个音乐播放器的功能

微信小程序实现一个音乐播放器的功能 要求代码实现wxml 文件wxss 文件js文件 解析 要求 1.页面包含一个音乐列表&#xff0c;点击列表中的音乐可以播放对应的音乐。 2.播放中的音乐在列表中有标识&#xff0c;并且可以暂停或继续播放。 3.显示当前音乐的播放进度和总时长&#…...

算法基础之表达整数的奇怪方式

表达整数的奇怪方式 中国剩余定理: 求M 所有m之积 然后Mi M / mi x 如下图 满足要求 扩展中国剩余定理 找到x **使得x mod mi ai**成立 对于每两个式子 都可以推出①式 即 用扩展欧几里得算法 可以算出k1,-k2和m2–m1 判无解 : 若**(m2–m1) % d ! 0** 说明该等式无解 …...

WEB 3D技术 three.js 设置图像随窗口大小变化而变化

本文 我们来讲讲我们图层适应窗口变化的效果 可能这样说有点笼统 那么 自适应应该大家更熟悉 就是 当我们窗口发生变化说 做一些界面调整比例 例如 我们这样一个i项目界面 我们打开 F12 明显有一部分被挡住了 那么 我们可以刷新 这样是正常了 但是 我们将F12关掉 给F12的…...

实战案例:缓存不一致问题的解决(redis+本地缓存caffine)

一.问题引入 目前在写项目的时候&#xff0c;在B端查看文章&#xff0c;A端修改文章。为了增加效率&#xff0c;以及防止堆内存溢出&#xff0c;在B端选择本地缓存文章的方案。但是目前出现了A端对文章修改之后&#xff0c;B端读的还是旧数据&#xff0c;出现了缓存不一致的问…...

【开源CDP】市场增长未来的探索,开源CDP带来的技术崛起与变革

数字化趋势之下&#xff0c;数据成了企业竞争的核心资源&#xff0c;不管是公域还是私域&#xff0c;网络俨然成了品牌打响市场的一线战场&#xff0c;然而&#xff0c;在这场数字战役里&#xff0c;许多企业不得不面临一个共同问题&#xff1a;数据零散、分散、平台众多、无法…...

第11章 GUI Page423~424 步骤六 支持文字,使用菜单,对话框输入文字

运行效果&#xff1a; 点击OK&#xff0c;然后再窗口上按住左键&#xff0c;拖动鼠标 关键代码&#xff1a; 新增头文件和成员&#xff0c;新增私有成员_text 成员初始化 为菜单项MenuItemText添加响应函数 新增创建TextItem()的代码...

【Qt】Qt Creator 警告: Unused parameter ‘xxx‘

1. 问题 Qt开发中&#xff0c;有些函数参数没有使用&#xff0c;会报Unused parameter xxx警告&#xff0c;这个警告不影响代码正常运行。 2. 屏蔽这个警告的方法 2.1 方法1 函数中添加 Q_UNUSED(arg); TestClass::TestClass(QObject *parent) {Q_UNUSED(parent); }2.2 方…...

「Vue3面试系列」Vue3.0性能提升主要是通过哪几方面体现的?

文章目录 一、编译阶段diff算法优化静态提升事件监听缓存SSR优化 二、源码体积三、响应式系统参考文献 一、编译阶段 回顾Vue2&#xff0c;我们知道每个组件实例都对应一个 watcher 实例&#xff0c;它会在组件渲染的过程中把用到的数据property记录为依赖&#xff0c;当依赖发…...

网络结构模式

一、C/S结构 服务器 - 客户机&#xff0c;即 Client - Server &#xff08; C/S &#xff09;结构。 C/S 结构通常采取两层结构。服务器负责数据的 管理&#xff0c;客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器&#xff0c;服务器则是提 供信息供人…...

IIC及OLED实验

I2C (Inter-Integrated Circuit): I2C 是一种用于在芯片之间进行短距离数字通信的串行通信协议。它允许多个设备通过两根导线&#xff08;一根数据线 SDA 和一根时钟线 SCL&#xff09;进行通信。I2C 常常用于嵌入式系统中连接传感器、存储器、显示屏和其他外设。 数据线和时钟…...

day6 力扣公共前缀--go实现---对字符串的一些思考

今日份知识&#xff1a; curl -x 指定方法名 请求的url -d 请求体body里面的内容 //curl命令 curl -x Get 127.0.0.1:8080/add/user -d jinlicurl如果不指定方法&#xff0c;默认使用get方法&#xff0c;在go里面&#xff0c;get方法到底可以不可以把内容数据写在body里面传…...

27.Java程序设计-基于Springboot的在线考试系统小程序设计与实现

1. 引言 随着数字化教育的发展&#xff0c;在线考试系统成为教育领域的一项重要工具。本论文旨在介绍一个基于Spring Boot框架的在线考试系统小程序的设计与实现。在线考试系统的开发旨在提高考试的效率&#xff0c;简化管理流程&#xff0c;并提供更好的用户体验。 2. 系统设…...

告别重复造轮子:用快马平台高效生成openclaw测试与调试工具

最近在做一个机器人项目&#xff0c;需要集成openclaw机械爪进行抓取操作。调试过程中发现&#xff0c;每次都要重复搭建测试环境、编写基础通信代码&#xff0c;特别浪费时间。于是尝试用InsCode(快马)平台快速生成一个测试工具&#xff0c;效果出乎意料的好用。 硬件连接测试…...

Navicat密码解密工具:专业恢复数据库连接密码的技术方案

Navicat密码解密工具&#xff1a;专业恢复数据库连接密码的技术方案 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt Navicat密码解密工具是一个专门用于解…...

【AI大模型】----大模型后端工程实战:从架构落地到业务赋能---【第三章 】 Prompt工程与输出控制

第三章 Prompt工程与输出控制 3.1 Prompt工程核心原理与设计原则 Prompt工程是让大模型精准理解需求、输出符合预期内容的核心技术&#xff0c;其本质是通过设计合理的输入文本&#xff0c;引导模型生成符合业务要求的结果。 3.1.1 核心设计原则 明确性&#xff1a;需求描述清晰…...

将XXXUtils合而为一

将XXXUtils合而为一 2026-03-27 在AI辅助编程成为主流开发模式的当下&#xff0c;代码编写的交互逻辑正发生本质变革&#xff0c;开发者的核心协作对象已从团队同事变成了AI助手。传统Java开发中&#xff0c;StringUtils、FileUtils、DateUtils等分功能域拆分的工具类设计&…...

STM32F103C8T6接KY-9250陀螺仪,串口数据解析与姿态角计算全流程(附避坑点)

STM32F103C8T6与KY-9250陀螺仪实战&#xff1a;从硬件对接到姿态解算的完整指南 第一次拿到STM32开发板和KY-9250模块时&#xff0c;那种既兴奋又忐忑的心情记忆犹新——兴奋于即将实现酷炫的姿态检测功能&#xff0c;忐忑于不知从何下手的迷茫。本文将以手把手的方式&#xff…...

实测:用GPT-4和KernelBench自动生成CUDA内核,效果到底如何?

实测&#xff1a;GPT-4与KernelBench自动生成CUDA内核的实战效果分析 当我在深夜调试一个矩阵乘法的CUDA内核时&#xff0c;第17次尝试依然无法突破PyTorch原生实现的性能。这种场景对GPU开发者来说再熟悉不过——我们总在手工优化与开发效率之间寻找平衡。而当我第一次听说可以…...

百川2-13B-4bits模型微调指南:提升OpenClaw任务执行准确率

百川2-13B-4bits模型微调指南&#xff1a;提升OpenClaw任务执行准确率 1. 为什么需要微调百川模型&#xff1f; 去年夏天&#xff0c;当我第一次用OpenClaw自动化整理电脑上的数千份文档时&#xff0c;遇到了一个尴尬的问题——AI经常把技术文档和私人照片混在一起归类。这让…...

终极指南:如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价

终极指南&#xff1a;如何用 tf-quant-finance 实现 Hull-White 模型的百慕大式互换权定价 【免费下载链接】tf-quant-finance High-performance TensorFlow library for quantitative finance. 项目地址: https://gitcode.com/gh_mirrors/tf/tf-quant-finance 在量化金…...

【搭建单双目散斑结构光Demo】

介绍 最近搭了一个用于研究的单目散斑结构光的硬件Demo。发射端使用VCSEL模组投影散斑&#xff0c;接收端使用工业相机采集图像。工业相机曝光时输出同步信号给驱动板&#xff0c;驱动板控制VCSEL发光投射出散斑图案&#xff0c;同步时间精度可以达到十微秒。也可以配两个工业…...

OpenClaw安全实践:GLM-4.7-Flash本地化部署的权限控制指南

OpenClaw安全实践&#xff1a;GLM-4.7-Flash本地化部署的权限控制指南 1. 为什么需要关注OpenClaw的权限控制&#xff1f; 去年夏天&#xff0c;我在整理电脑上的财务报告时&#xff0c;无意中发现OpenClaw自动将我的税务文件同步到了一个陌生目录。这个意外让我意识到——当…...