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

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 为什么&#xff1f;我试了uniapp推荐的和threejs-miniprogram这个小程序官方库&#xff0c;都加载不出来我的obj模型。所有我推荐不要用obj模型最好&#xff0c;挺多都支持GLTF模型的&#xff0c;但是我不…...

【SQL注入】 数据库基础

MySQL中的库名 information_schema&#xff08;信息库&#xff09;—— 保存其他数据库里所有信息&#xff08;数据库名、表、字段的数据类型/访问权限&#xff09; mysql—— 存储用户名 密码 host performance_schema——内存数据库 数据放在内存中直接操作的数据库 sys—…...

文件操作~

目录 1.为什么使用文件&#xff1f; 2.什么是文件&#xff1f; 2.1 程序文件 2.2 数据文件 2.3 文件名 3.⼆进制文件和文本文件&#xff1f; 4.文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 ⽂件的打开和关闭 5.文件的顺序读写 5.1 …...

身边的故事(十二):阿文的故事:消失

那以后就再也没有任何阿文的消息。刚开始还打过几次电话&#xff0c;他都没接。后来也就慢慢的淡忘了&#xff0c;为自己的工作生活而奔波&#xff0c;时间冲淡一切。在那几年里&#xff0c;阿文就像消失了一样。直到2021的某一天&#xff0c;电话那端传来了熟悉但是有点陌生的…...

智能扫地机器人程序中出现的问题可以参考的解决方案

在解决智能扫地机器人程序中可能遇到的问题时&#xff0c;可以参考以下分点表示和归纳的解决方案&#xff1a; 环境感知与地图构建 ① 使用先进的传感器技术&#xff1a;如激光雷达、超声波和红外传感器&#xff0c;以提高环境感知的准确性和可靠性。 ② 优化地图构建算法&a…...

如何借用物联网快速实现高标准农田信息化

如何借用物联网快速实现高标准农田信息化 高标准农田信息化&#xff0c;作为现代农业发展的重要基石&#xff0c;是指在建设高产、稳产、节水、环保的农田基础上&#xff0c;深度融合现代信息技术&#xff0c;实现农田管理的精准化、智能化和高效化。物联网&#xff08;Intern…...

计算机网络基础入门

计算机网络基础入门 目录&#xff1a; 简介网络分层模型数据封装与解封装IP地址与子网掩码网络协议示例代码 1. 简介 计算机网络是指将地理位置不同的多台计算机及外部设备通过通信线路连接起来&#xff0c;实现信息资源共享和信息传递的系统。计算机网络是现代信息社会的基…...

uniApp vue2 vue3配置代理

vue2配置代理 在manifest.json中增加如下配置 "h5" : {"router" : {"mode" : "history"},"devServer" : {"disableHostCheck" : true,"proxy" : {"/api" : {"target" : "请…...

运维锅总详解RocketMQ

本文尝试从Apache RocketMQ的简介、主要组件及其作用、3种部署模式、Controller集群模式工作流程、最佳实践等方面对其进行详细分析。希望对您有所帮助&#xff01; 一、Apache RocketMQ 简介 Apache RocketMQ 是一个开源的分布式消息中间件&#xff0c;由阿里巴巴集团开发并…...

【Linux】使用ntp同步时间

ntp介绍 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是一种用于同步计算机时间的协议&#xff0c;工作在UDP的123端口上。它是一种客户端-服务器协议&#xff0c;用于同步计算机的时钟。通过连接到网络上的时间服务器&#xff0c;计算机可以获…...

【FedMut】Generalized Federated Learning via Stochastic Mutation

基于随机变异的泛化联邦学习 来源&#xff1a;AAAI2024 Abstract 问题&#xff1a; FedAvg 将相同的全局模型派发给客户端进行本地训练&#xff0c;容易陷入尖锐解&#xff0c;导致训练出性能低下的全局模型 提出 FedMut&#xff1a; 本文提出了一种名为 FedMut 的新型FL方法…...

在线教育项目(一):如何防止一个账号多个地方登陆

使用jwt做验证&#xff0c;使用账号作为redis中的key,登录的时候生成token放到redis中&#xff0c;每次申请资源的时候去看token 有没有变&#xff0c;因为token每次登录都会去覆盖&#xff0c;只要第二次登录token就不一样了...

旋转变压器软件解码simulink仿真

1.介绍 旋转变压器是一种精密的位置、速度检测装置&#xff0c;尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。旋转变压器在使用时并不能直接提供角度或位置信息&#xff0c;需要特殊的激励信号和解调、计算措施&#xff0c;才能将旋转变压…...

LeetCode 1321, 209, 102

目录 1321. 餐馆营业额变化增长题目链接表要求知识点思路代码 209. 长度最小的子数组题目链接标签暴力法思路代码 滑动窗口思路代码 102. 二叉树的层序遍历题目链接标签思路代码 1321. 餐馆营业额变化增长 题目链接 1321. 餐馆营业额变化增长 表 表Customer的字段为custome…...

vant ( weapp ) - - - - - van-tabs组件选中下划线初始位置异常

这里写自定义目录标题 1. 当前效果展示2. 官方解释 & 方案 1. 当前效果展示 明显可以看到框内的光标位置偏移了&#xff0c;但当切换一次之后就会显示正常。 只有初次打开的时候&#xff0c;才会出现上述问题。 代码如下&#xff1a; <van-popup show"{{ makeSho…...

007 栈(lua)

文章目录 Lua本身支持动态数组&#xff0c;通过表&#xff08;table&#xff09;实现&#xff0c;它类似于Java中的ArrayList。Lua的表是灵活的数组和字典的混合体。对于栈的实现&#xff0c;我们可以简单地使用一个表来模拟。 这里是一个简单的Lua栈实现&#xff0c;它包含了p…...

SQL中Order by详解

在 MySQL 中&#xff0c;ORDER BY 语句用于对查询结果进行排序。 语法&#xff1a; SELECT column1, column2,... FROM table_name ORDER BY column_name [ASC | DESC];以下是对其主要部分的详细解释&#xff1a; column_name &#xff1a;指定要依据其进行排序的列名。 ASC…...

【git】存在git LFS文件时如何处理

目录 1. 安装 Git LFS2. 初始化 Git LFS3. 跟踪大文件4. 添加和提交文件5. 克隆和拉取包含 LFS 文件的仓库 1. 安装 Git LFS 首先&#xff0c;你需要在你的系统上安装 Git LFS。你可以使用以下命令来安装&#xff1a; 在 Linux 上 # 对于基于 Debian 的系统 (如 Ubuntu) sud…...

面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法

线性二次调节器&#xff08;Linear Quadratic Regulator&#xff0c;LQR&#xff09;是针对线性系统的最优控制方法。LQR 方法标准的求解体系是在考虑到损耗尽可能小的情况下, 以尽量小的代价平衡其他状态分量。一般情况下&#xff0c;线性系统在LQR 控制方法中用状态空间方程描…...

【运维】在 Docker 容器中指定 UTF-8 编码:方法与技巧

在 Docker 容器中指定 UTF-8 编码&#xff1a;方法与技巧 在日常开发中&#xff0c;我们常常需要确保应用程序能正确处理各种字符编码&#xff0c;尤其是 UTF-8 编码。在 Docker 容器中运行应用程序时&#xff0c;正确设置字符编码尤为重要&#xff0c;因为容器通常是跨平台、…...

SGLang-v0.5.6优化升级:多GPU协同,推理性能大幅提升

SGLang-v0.5.6优化升级&#xff1a;多GPU协同&#xff0c;推理性能大幅提升 1. 引言 在当今大模型应用日益普及的背景下&#xff0c;推理性能优化成为开发者面临的核心挑战之一。SGLang-v0.5.6作为结构化生成语言框架的最新版本&#xff0c;带来了多项关键性改进&#xff0c;…...

01_第一篇:到底什么是嵌入式芯片?与通用CPU_GPU_DSP的核心区别

嵌入式芯片入门&#xff1a;到底什么是嵌入式芯片&#xff1f;与通用CPU/GPU/DSP的核心区别 引言&#xff1a;智能时代的核心基石&#xff0c;嵌入式芯片的无处不在 在万物互联的智能时代&#xff0c;我们的生活早已被无数“隐形大脑”环绕&#xff1a;清晨唤醒你的智能手环、出…...

Qwen-Edit-2509多角度切换技术:如何用单张图片生成全视角内容?

Qwen-Edit-2509多角度切换技术&#xff1a;如何用单张图片生成全视角内容&#xff1f; 【免费下载链接】Qwen-Edit-2509-Multiple-angles 项目地址: https://ai.gitcode.com/hf_mirrors/dx8152/Qwen-Edit-2509-Multiple-angles 在视觉创作领域&#xff0c;你是否曾为拍…...

TurboQuant革命:KV-Cache压缩技术如何重塑大模型推理经济

上一篇&#xff1a;Qwen3.5-Max-Preview与国产大模型技术突破&#xff1a;阿里通义千问2026最新进展全解析 下一篇&#xff1a;2026年AI-Agent产业化全景&#xff1a;从概念验证到规模化部署的完整路径 摘要 2026年3月24日&#xff0c;Google Research发布了一项名为TurboQuan…...

SiameseAOE中文-base高性能部署:WebUI响应<800ms,吞吐达12QPS(RTX4090)

SiameseAOE中文-base高性能部署&#xff1a;WebUI响应<800ms&#xff0c;吞吐达12QPS&#xff08;RTX4090&#xff09; 今天要跟大家聊一个非常实用的工具——SiameseAOE通用属性观点抽取模型。你可能听说过信息抽取&#xff0c;但面对海量文本&#xff0c;如何快速、准确地…...

Pixel Aurora Engine真实案例:用‘蒸汽朋克猫武士’生成整套游戏美术资源

Pixel Aurora Engine真实案例&#xff1a;用蒸汽朋克猫武士生成整套游戏美术资源 1. 项目背景与工具介绍 Pixel Aurora Engine&#xff08;像素极光引擎&#xff09;是一款基于AI扩散模型的高端像素艺术生成工具。它采用复古的8-bit游戏机风格界面&#xff0c;却能产出专业级…...

豪鹏科技2025年财报透视:毛利率提升5.2个百分点,费用管控成效显著

豪鹏科技2025年财报透视&#xff1a;毛利率提升5.2个百分点&#xff0c;费用管控成效显著豪鹏科技2025年业绩表现亮眼&#xff0c;全年实现营业收入57亿元至60亿元&#xff0c;同比增长11.58%至17.45%&#xff1b;归母净利润1.95亿元至2.2亿元&#xff0c;同比大幅增长113.69%至…...

告别水印烦恼!3步轻松去水印,新手秒上手。

找到心仪的图片有水印、做设计好不容易找到的素材有水印、下载好看的壁纸有水印&#xff0c;遇到的好图全被水印扫兴&#xff1f;PS去水印&#xff0c;操作复杂&#xff0c;学习成本高&#xff0c;浪费时间&#xff1b;用专业去水印工具&#xff0c;收费昂贵&#xff0c;还有广…...

开源新形态:从代码到Prompt的转变

【导语&#xff1a;3月末&#xff0c;开源作者yetone发布新项目voice-input-src&#xff0c;以独特方式“开源”&#xff0c;即用自然语言Prompt生成代码&#xff0c;此做法引发讨论&#xff0c;或预示开源模式新转变。】AI驱动的语音输入法开源项目开源作者yetone在GitHub上发…...

Go Context 取消信号传播机制剖析

Go Context 取消信号传播机制剖析 在并发编程中&#xff0c;如何优雅地控制协程的生命周期是一个关键问题。Go语言通过Context机制提供了一种统一的取消信号传播方式&#xff0c;使得跨协程、跨层级的任务取消变得简单高效。本文将深入剖析Context的取消信号传播机制&#xff…...