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

uniApp中使用小程序XR-Frame创建3D场景(1)环境搭建

1.XR-Frame简介

XR-Frame作为微信小程序官方推出的3D框架,是目前所有小程序平台中3D效果最好的一个,由于其本身针对微信小程序做了优化,在性能方面比其他第三方库都要高很多。

2.与Three.js的区别

做3D小程序的同学们对Three.js一定不陌生,这是个跨平台的3D前端框架,使用广泛,但是针对微信小程序的优化并不理想,而且库文件本身比较大,由于小程序的内存限制,一旦加载的3D文件过多,非常容易造成卡顿。

既然微信小程序端推出了XR-Frame,我们就应该积极的去熟悉这个框架,做出更好用的小程序。

3.在uniApp中创建XR-Frame组件

(1)新建wxcomponents文件夹

上图是我的项目目录,首先在与pages同级目录下,创建wxcomponents文件夹,这个文件夹就是要调用的xr-frame组件目录。

(2)在 wxcomponents 文件夹下创建 xr-start 目录

这个目录是我们要在其他页面调用xr-frame时需要使用的组件名称,这里我们先创建好。

(3)在 xr-start 目录下创建 index.js  index.json  index.wxml 三个文件

这三个文件分别代表了xr-frame的逻辑,配置,以及视图文件。下面是分别是这三个文件中的代码

index.js

这个js文件中以后要做一些对于属性的设置以及组件方法的编写。

// index.js
Component({properties: {},data:{},methods: {}
})

index.json

这个json配置文件就是告诉系统要采用xr-frame框架渲染。

{"component": true,"renderer": "xr-frame","usingComponents":{}
}

index.wxml

这个wxml文件是我们使用xr-frame的主要文件,我们先简单的只添加一个摄像机。

<xr-scene><xr-camera id="camera" clear-color="0.2 0.4 0.6 1" camera-orbit-control/>
</xr-scene>

(4) 创建完上面三个文件后,我们还需要修改 manifest.json 文件,切换到源码视图

修改微信相关设置

 "mp-weixin" : {"appid" : "你的appid","setting" : {"urlCheck" : false,"postcss" : true,"es6" : true,"minified" : true},"usingComponents" : true,"lazyCodeLoading" : "requiredComponents"},

(5)修改pages.json文件中的配置

这里就是在你需要调用组件的页面上加入 usingComponents 设置。比如我在页面demo中加入如下配置

"pages": [ {"path" : "pages/demo/demo","style" : {"navigationBarTitleText" : "","enablePullDownRefresh" : false,"usingComponents": {"xr-start": "../../wxcomponents/xr-start"},"disableScroll": true}}],

到这里环境就配置好了,接下来我们看看如何在页面中使用XR-Frame

4.在项目中使用XR-Frame

这里我以demo.vue页面为例。

1 在view标签中直接加上xr-start标签即可引入

<template><view style="display: flex;flex-direction: column;"><xr-start id="main-frame" disable-scroll:width="renderWidth":height="renderHeight":style="'width:'+width+'px;height:'+height+'px;'"></xr-start></view>
</template>

2 在data中设置一下默认的宽高

data() {return {width:300,height:300,renderWidth:300,renderHeight:300,}
},

3 在onLoad函数中获取屏幕大小,将xr-frame设置为全屏大小

onLoad(option){this.width = uni.getWindowInfo().windowWidththis.height = uni.getWindowInfo().windowHeightconst dpi = uni.getWindowInfo().pixelRatiothis.renderWidth = this.width * dpithis.renderHeight = this.height * dpi},

4 我们运行到小程序模拟器

这时我们应该能看到一个页面为蓝色的页面(camera中设置的color是蓝色),这说明xr-frame框架可以正常运行了。

下一篇我们讲解,如何在xr-frame中加载模型以及模型的优化。

相关文章:

uniApp中使用小程序XR-Frame创建3D场景(1)环境搭建

1.XR-Frame简介 XR-Frame作为微信小程序官方推出的3D框架&#xff0c;是目前所有小程序平台中3D效果最好的一个&#xff0c;由于其本身针对微信小程序做了优化&#xff0c;在性能方面比其他第三方库都要高很多。 2.与Three.js的区别 做3D小程序的同学们对Three.js一定不陌生…...

AI基础知识(4)--贝叶斯分类器

1.什么是贝叶斯判定准则&#xff08;Bayes decision rule&#xff09;&#xff1f;什么是贝叶斯最优分类器&#xff08;Bayes optimal classifier&#xff09;&#xff1f; 贝叶斯判定准则&#xff1a;为最小化总体风险&#xff0c;只需在每个样本上选择那个能使条件风险最小的…...

填补市场空白,Apache TsFile 如何重新定义时序数据管理

欢迎全球开发者参与到 Apache TsFile 项目中。 刚刚过去的 2023 年&#xff0c;国产开源技术再次获得国际认可。 2023 年 11 月 15 日&#xff0c;经全球最大的开源软件基金会 ASF 董事会投票决议&#xff0c;时序数据文件格式 TsFile 正式通过&#xff0c;直接晋升为 Apache T…...

Docker 笔记(七)--打包软件生成镜像

目录 1. 背景2. 参考3. 文档3.1 使用docker container commit命令构建镜像3.1.1 [Docker官方文档-docker container commit](https://docs.docker.com/reference/cli/docker/container/commit/)Description&#xff08;概述&#xff09;Options&#xff08;选项&#xff09;Exa…...

图论06-飞地的数量(Java)

6.飞地的数量 题目描述 给你一个大小为 m x n 的二进制矩阵 grid &#xff0c;其中 0 表示一个海洋单元格、1 表示一个陆地单元格。 一次 移动 是指从一个陆地单元格走到另一个相邻&#xff08;上、下、左、右&#xff09;的陆地单元格或跨过 grid 的边界。 返回网格中 无法…...

Java设计模式之单例设计模式

单例设计模式就是保证整个软件系统中&#xff0c;某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得该对象的方法。 单例设计模式包括两种&#xff1a;饿汉式和懒汉式。 饿汉式&#xff1a; 含义&#xff1a; 在类加载时就创建并初始化单例对象。这种方式确保了…...

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测

多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测 目录 多维时序 | MATLAB实现BiTCN-selfAttention自注意力机制结合双向时间卷积神经网络多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.M…...

深入了解Android垃圾回收机制

文章目录 一、内存分配二、垃圾回收触发条件三、GC算法3.1 Dalvik虚拟机的GC算法3.2 ART的GC算法 四、优化GC性能五、监控GC耗时情况六、总结 在Android应用开发中&#xff0c;内存管理和垃圾回收&#xff08;GC&#xff09;对于应用性能和稳定性至关重要。理解GC机制有助于我们…...

如何学好Python语言

学习Python&#xff1a;一场充满探索与实践的编程之旅 Python&#xff0c;作为一种解释型、交互式和面向对象的编程语言&#xff0c;近年来在数据科学、人工智能、Web开发等多个领域得到了广泛的应用。掌握Python&#xff0c;不仅可以提升个人的编程技能&#xff0c;还能够为未…...

计算机408网课评测+资料分享

408当然有比较好的网课推荐&#xff0c;比如王道的视频课 现在大部分人备战408基本都用王道的讲义&#xff0c;然后再搭配王道408的课程来听&#xff0c;可以学的很好。 其中408视频课中&#xff0c;我认为讲的比较好的是数据结构&#xff0c;和操作系统&#xff0c;计算机组…...

使用 ZipArchiveInputStream 读取压缩包内文件总数

读取压缩包内文件总数 简介 ZipArchiveInputStream 是 Apache Commons Compress 库中的一个类&#xff0c;用于读取 ZIP 格式的压缩文件。在处理 ZIP 文件时&#xff0c;编码格式是一个重要的问题&#xff0c;因为它决定了如何解释文件中的字符数据。通常情况下&#xff0c;Z…...

JavaScript对象修饰教程

在JavaScript中&#xff0c;对象修饰是一种常见的编程模式&#xff0c;用于动态地向对象添加新的功能或修改现有功能&#xff0c;同时保持对象的原始结构不变。对象修饰可以帮助我们实现代码的复用、扩展和维护&#xff0c;让代码更加灵活和可扩展。本文将深入探讨JavaScript对…...

转置卷积(transposed-conv)

一、什么是转置卷积 1、转置卷积的背景 通常&#xff0c;对图像进行多次卷积运算后&#xff0c;特征图的尺寸会不断缩小。而对于某些特定任务 (如图像分割和图像生成等)&#xff0c;需将图像恢复到原尺寸再操作。这个将图像由小分辨率映射到大分辨率的尺寸恢复操作&#xff0c…...

P1481 魔族密码

P1481 魔族密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 字典树 在插入字符串 s s s时&#xff0c;不断记录 s 0... k s_{0...k} s0...k​的个数取最大即可。 #include <bits/stdc.h> using namespace std; const int N 1e5 21; int cnt[N], tr[N][30], idx,…...

无人机/飞控--ArduPilot、PX4学习记录(2)

这是一篇碎碎念&#xff0c;零零碎碎的记录了环境配置过程&#xff0c;仅供本人记录学习历程和参考。(记录的挺乱的&#xff0c;但是文章链接里的博客写的是真好) 本章主要完成的目标&#xff1a; 安装PX4 并 成功运行出3D无人机界面。 参考文章&#xff1a; 搭建PX4环境&…...

【Arxml专题】-29-使用Cantools将CAN Matrix Arxml自动生成C语言代码

目录 1 安装Python和Cantools 1.1 查看Python已安装的Package包 1.2 在Python中安装Cantools插件包 1.3 获取更多Cantools工具的更新动态 2 CAN Matrix Arxml自动生成C语言代码 2.1 批处理文件CAN_Matrix_Arxml_To_C.bat内容说明 2.2 CAN Matrix Arxml文件要求 2.3 如何…...

【id:21】【20分】E. 抄袭查找(结构体+指针+函数)

题目描述 已知一群学生的考试试卷&#xff0c;要求对试卷内容进行对比&#xff0c;查找是否有抄袭。 每张试卷包含&#xff1a;学号&#xff08;整数类型&#xff09;、题目1答案&#xff08;字符串类型&#xff09;、题目2答案&#xff08;字符串类型&#xff09;、题目3答案…...

ASP.NET-常用控件总结

一、ASP.NET基础控件 1、asp:TextBox (输入框) ASP.NET TextBox 控件用于接收用户输入。 <asp:TextBox ID"txtInput" runat"server"></asp:TextBox>2、asp:DropDownList (下拉框) ASP.NET DropDownList 控件用于提供一个下拉列表供用户选择…...

SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决

&#x1f60a; 作者&#xff1a; 一恍过去 &#x1f496; 主页&#xff1a; https://blog.csdn.net/zhuocailing3390 &#x1f38a; 社区&#xff1a; Java技术栈交流 &#x1f389; 主题&#xff1a; SpringBoot3整合Mybatis-Plus与PageHelper包冲突解决 ⏱️ 创作时间&a…...

MQTT Keep Alive机制

MQTT 协议是承载于 TCP 协议之上的&#xff0c; 而 TCP 协议以连接为导向&#xff0c; 在连接双方之间&#xff0c; 提供稳定、 有序的字节流功能。 但是&#xff0c; 在部分情况下&#xff0c; TCP 可能出现半连接问题。 所谓半连接&#xff0c; 是指某一方的连接已经断开或者…...

Ubuntu系统优化:Qwen2.5-32B-Instruct给出的专业建议

Ubuntu系统优化&#xff1a;Qwen2.5-32B-Instruct给出的专业建议 1. 引言 作为一名长期使用Ubuntu系统的开发者&#xff0c;我深知系统优化的重要性。一个经过精心调优的Ubuntu系统不仅能提升工作效率&#xff0c;还能让日常使用体验更加流畅。最近&#xff0c;我有机会体验了…...

华硕灵耀 S4100V X411U 原厂Win10 系统 分享下载

华硕灵耀S4100V X411U系列笔记本配备了一键恢复功能&#xff0c;方便用户在系统异常或更换硬盘后快速恢复出厂设置。该功能支持X411UA, X411UQ, X411UN, X411UNV等型号&#xff0c;预装Windows 10家庭版系统。通过原厂提供的工厂文件&#xff0c;用户可以轻松恢复隐藏的恢复分区…...

Jmeter压测实战—Jmeter二次开发之自定义函数

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、前言 Jmeter是Apache基金会下的一款应用场景非常广的压力测试工具&#xff0c;具备轻量、高扩展性、分布式等特性。Jmeter已支持实现随机数、计数器、时间戳…...

Altdns实战案例:如何利用大规模数据集发现关键子域名

Altdns实战案例&#xff1a;如何利用大规模数据集发现关键子域名 【免费下载链接】altdns Generates permutations, alterations and mutations of subdomains and then resolves them 项目地址: https://gitcode.com/gh_mirrors/al/altdns Altdns是一款强大的DNS侦察工…...

5分钟部署Qwen3-Embedding-4B:支持100+语言的文本嵌入

5分钟部署Qwen3-Embedding-4B&#xff1a;支持100语言的文本嵌入 1. Qwen3-Embedding-4B简介 Qwen3-Embedding-4B是通义千问团队最新推出的文本嵌入模型&#xff0c;专为语义搜索、知识检索等任务优化。作为Qwen3系列的一员&#xff0c;它继承了基础模型强大的多语言能力和长…...

零基础爬虫:豆包 × F12,搞定互动易投资者问答

作者&#xff1a; 连小白 (连享会) 邮箱&#xff1a; lianxhcn163.com 提要&#xff1a;本文介绍了一种适合零基础用户的爬取深交所互动易投资者问答数据的方法。通过结合 AI 助手&#xff08;如豆包&#xff09;和浏览器的 F12 开发者工具&#xff0c;用户无需编写复杂代码&am…...

2026年大模型学习路线(非常详细)AI大模型学习路线图:从入门到高薪就业

本文提供了一套完整的AI大模型学习路线图&#xff0c;从数学与编程基础、机器学习入门到深度学习、大模型探索及进阶应用等多个阶段进行了详细阐述。文章推荐了丰富的学习资源&#xff0c;包括经典书籍、在线课程和实践项目&#xff0c;并强调了社区参与和持续学习的重要性。此…...

XHS-Downloader:3种高效方法帮你轻松下载小红书无水印内容

XHS-Downloader&#xff1a;3种高效方法帮你轻松下载小红书无水印内容 【免费下载链接】XHS-Downloader 小红书&#xff08;XiaoHongShu、RedNote&#xff09;链接提取/作品采集工具&#xff1a;提取账号发布、收藏、点赞、专辑作品链接&#xff1b;提取搜索结果作品、用户链接…...

【JAVA基础面经】线程间的通信方式

文章目录前言JMM内存共享变量 volatile⭐Object.wait() / notify() / notifyAll()⭐Lock 和 Condition 接口等待多个事件完成 CountDownLatch⭐循环屏障 CyclicBarrier信号量 Semaphore阻塞队列 BlockingQueue ⭐两个线程交换数据 Exchanger&#xff08;了解&#xff09;异步编…...

JPEGsnoop:从像素到元数据的深度图像解码技术全解析

JPEGsnoop&#xff1a;从像素到元数据的深度图像解码技术全解析 【免费下载链接】JPEGsnoop JPEGsnoop: JPEG decoder and detailed analysis 项目地址: https://gitcode.com/gh_mirrors/jp/JPEGsnoop 在数字图像处理领域&#xff0c;JPEG格式以其高效的压缩算法和广泛的…...