uniapp中使用threejs加载几何体
我的建议是使用这个库
https://github.com/deepkolos/three-platformize
为什么?我试了uniapp推荐的和threejs-miniprogram这个小程序官方库,都加载不出来我的obj模型。所有我推荐不要用obj模型最好,挺多都支持GLTF模型的,但是我不能改。
安装,使用pnpm比较快
pnpm install three-platformize
以下是完整代码
<template><view class="content"><canvas type="webgl" id="webgl" style="width: 100vw; height: 100vh;" @touchstart="touchStart"@touchmove="touchMove" @touchend="touchEnd" /></view>
</template><script>import {WechatPlatform} from 'three-platformize/src/WechatPlatform';import * as THREE from 'three-platformize';//轨道控制器import {OrbitControls} from 'three-platformize/examples/jsm/controls/OrbitControls'export default {data() {return {platform: ''};},mounted() {uni.createSelectorQuery().in(this).select('#webgl').fields({node: true}).exec(res => {console.log('res', res[0].node);const canvas = res[0].node;console.log('canvas', canvas);const platform = new WechatPlatform(canvas); // webgl canvasconsole.log('1111', platform);platform.enableDeviceOrientation('game'); // 开启DeviceOrientationTHREE.PLATFORM.set(platform);this.platform = platform;var scene = new THREE.Scene();var camera = new THREE.PerspectiveCamera(75, canvas.width / canvas.height, 0.1, 1000);camera.position.set(0, 0, 10);scene.add(camera);const geometry = new THREE.BoxGeometry(1, 1, 1);const materials = new THREE.MeshBasicMaterial();const cube = new THREE.Mesh(geometry, materials);scene.add(cube);const light = new THREE.AmbientLight(0xffffff);scene.add(light);//注意,这里必须要添加一个{ canvas: canvas },不然会报createElementNS错误const renderer = new THREE.WebGLRenderer({canvas: canvas});renderer.setSize(canvas.width, canvas.height);const controls = new OrbitControls(camera, renderer.domElement);function animate() {//这里不再是requestAnimationFrame而是canvas.requestAnimationFramecanvas.requestAnimationFrame(animate);renderer.render(scene, camera);}animate();});},methods: {touchStart(e) {this.platform.dispatchTouchEvent(e);},touchMove(e) {this.platform.dispatchTouchEvent(e);},touchEnd(e) {this.platform.dispatchTouchEvent(e);}}}
</script><style></style>
相关文章:
uniapp中使用threejs加载几何体
我的建议是使用这个库 https://github.com/deepkolos/three-platformize 为什么?我试了uniapp推荐的和threejs-miniprogram这个小程序官方库,都加载不出来我的obj模型。所有我推荐不要用obj模型最好,挺多都支持GLTF模型的,但是我不…...
【SQL注入】 数据库基础
MySQL中的库名 information_schema(信息库)—— 保存其他数据库里所有信息(数据库名、表、字段的数据类型/访问权限) mysql—— 存储用户名 密码 host performance_schema——内存数据库 数据放在内存中直接操作的数据库 sys—…...
文件操作~
目录 1.为什么使用文件? 2.什么是文件? 2.1 程序文件 2.2 数据文件 2.3 文件名 3.⼆进制文件和文本文件? 4.文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 ⽂件的打开和关闭 5.文件的顺序读写 5.1 …...
身边的故事(十二):阿文的故事:消失
那以后就再也没有任何阿文的消息。刚开始还打过几次电话,他都没接。后来也就慢慢的淡忘了,为自己的工作生活而奔波,时间冲淡一切。在那几年里,阿文就像消失了一样。直到2021的某一天,电话那端传来了熟悉但是有点陌生的…...
智能扫地机器人程序中出现的问题可以参考的解决方案
在解决智能扫地机器人程序中可能遇到的问题时,可以参考以下分点表示和归纳的解决方案: 环境感知与地图构建 ① 使用先进的传感器技术:如激光雷达、超声波和红外传感器,以提高环境感知的准确性和可靠性。 ② 优化地图构建算法&a…...
如何借用物联网快速实现高标准农田信息化
如何借用物联网快速实现高标准农田信息化 高标准农田信息化,作为现代农业发展的重要基石,是指在建设高产、稳产、节水、环保的农田基础上,深度融合现代信息技术,实现农田管理的精准化、智能化和高效化。物联网(Intern…...
计算机网络基础入门
计算机网络基础入门 目录: 简介网络分层模型数据封装与解封装IP地址与子网掩码网络协议示例代码 1. 简介 计算机网络是指将地理位置不同的多台计算机及外部设备通过通信线路连接起来,实现信息资源共享和信息传递的系统。计算机网络是现代信息社会的基…...
uniApp vue2 vue3配置代理
vue2配置代理 在manifest.json中增加如下配置 "h5" : {"router" : {"mode" : "history"},"devServer" : {"disableHostCheck" : true,"proxy" : {"/api" : {"target" : "请…...
运维锅总详解RocketMQ
本文尝试从Apache RocketMQ的简介、主要组件及其作用、3种部署模式、Controller集群模式工作流程、最佳实践等方面对其进行详细分析。希望对您有所帮助! 一、Apache RocketMQ 简介 Apache RocketMQ 是一个开源的分布式消息中间件,由阿里巴巴集团开发并…...
【Linux】使用ntp同步时间
ntp介绍 NTP(Network Time Protocol,网络时间协议)是一种用于同步计算机时间的协议,工作在UDP的123端口上。它是一种客户端-服务器协议,用于同步计算机的时钟。通过连接到网络上的时间服务器,计算机可以获…...
【FedMut】Generalized Federated Learning via Stochastic Mutation
基于随机变异的泛化联邦学习 来源:AAAI2024 Abstract 问题: FedAvg 将相同的全局模型派发给客户端进行本地训练,容易陷入尖锐解,导致训练出性能低下的全局模型 提出 FedMut: 本文提出了一种名为 FedMut 的新型FL方法…...
在线教育项目(一):如何防止一个账号多个地方登陆
使用jwt做验证,使用账号作为redis中的key,登录的时候生成token放到redis中,每次申请资源的时候去看token 有没有变,因为token每次登录都会去覆盖,只要第二次登录token就不一样了...
旋转变压器软件解码simulink仿真
1.介绍 旋转变压器是一种精密的位置、速度检测装置,尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。旋转变压器在使用时并不能直接提供角度或位置信息,需要特殊的激励信号和解调、计算措施,才能将旋转变压…...
LeetCode 1321, 209, 102
目录 1321. 餐馆营业额变化增长题目链接表要求知识点思路代码 209. 长度最小的子数组题目链接标签暴力法思路代码 滑动窗口思路代码 102. 二叉树的层序遍历题目链接标签思路代码 1321. 餐馆营业额变化增长 题目链接 1321. 餐馆营业额变化增长 表 表Customer的字段为custome…...
vant ( weapp ) - - - - - van-tabs组件选中下划线初始位置异常
这里写自定义目录标题 1. 当前效果展示2. 官方解释 & 方案 1. 当前效果展示 明显可以看到框内的光标位置偏移了,但当切换一次之后就会显示正常。 只有初次打开的时候,才会出现上述问题。 代码如下: <van-popup show"{{ makeSho…...
007 栈(lua)
文章目录 Lua本身支持动态数组,通过表(table)实现,它类似于Java中的ArrayList。Lua的表是灵活的数组和字典的混合体。对于栈的实现,我们可以简单地使用一个表来模拟。 这里是一个简单的Lua栈实现,它包含了p…...
SQL中Order by详解
在 MySQL 中,ORDER BY 语句用于对查询结果进行排序。 语法: SELECT column1, column2,... FROM table_name ORDER BY column_name [ASC | DESC];以下是对其主要部分的详细解释: column_name :指定要依据其进行排序的列名。 ASC…...
【git】存在git LFS文件时如何处理
目录 1. 安装 Git LFS2. 初始化 Git LFS3. 跟踪大文件4. 添加和提交文件5. 克隆和拉取包含 LFS 文件的仓库 1. 安装 Git LFS 首先,你需要在你的系统上安装 Git LFS。你可以使用以下命令来安装: 在 Linux 上 # 对于基于 Debian 的系统 (如 Ubuntu) sud…...
面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法
线性二次调节器(Linear Quadratic Regulator,LQR)是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下,线性系统在LQR 控制方法中用状态空间方程描…...
【运维】在 Docker 容器中指定 UTF-8 编码:方法与技巧
在 Docker 容器中指定 UTF-8 编码:方法与技巧 在日常开发中,我们常常需要确保应用程序能正确处理各种字符编码,尤其是 UTF-8 编码。在 Docker 容器中运行应用程序时,正确设置字符编码尤为重要,因为容器通常是跨平台、…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
消防一体化安全管控平台:构建消防“一张图”和APP统一管理
在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
