目前 视频纹理 属于 beta 阶段,大概在 2月底 会完成一次较为稳定的迭代。 幕布可以通过修改 placeHolder 进行修改 视频循环可以通过修改 loop 进行实现。 具体可参考 https://developers.weixin.qq.com/miniprogram/dev/component/xr-frame/render/texture.html#%E8%A7%86%E9%A2%91%E7%BA%B9%E7%90%86
小程序实现xr-frame 2DMarker+视频 区域初始是白色幕布一会才出视频等诸多问题怎么办?小程序实现xr-frame 2DMarker+视频,让照片动起来 图片区域初始是白色幕布,一会才出视频,而且视频切换的时候是绿色幕布,很影响美观,有什么方法吗?而且iphone14只能播放一遍,不能重复播放视频。几乎所有荣耀手机直接闪退
2023-02-14方便提供一下工具版本? 看这个报错像是子域相关的问题,不像是挂在 xr-frame 的问题。 可以去这里下载开发版工具 https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html,并将基础库切换到最新版本试试
哪个大佬可以看看这个错误吗?Cannot generate sub context file app-wxss.js at Proxy.exports.getAppserviceSubContextFile [图片] 我跟着开发文档做xr,结果出错了,在网上找遍了,说是需要更新开发工具,可是更新了还是报错,哪个大佬可以看看吗?
2023-02-14结合普通小程序的方案,按钮的在xr-frame外部开发,按钮事件可以完全使用小程序普通的按钮事件,通过 xr-frame 组件属性变换进行与 xr-frame 内部进行交互。(可以参考 xr-frame-demo )(开发者工具里面可能会被覆盖是因为工具实现同层渲染存在差异,真机不会覆盖)xr-frame 内部实现的方案,添加固定在相机前方的元素(比如所需要的拍照按钮),可以直接在 xr-camera 子节点里面添加所需要的元素即可,但是触摸事件会比较麻烦,需要绑定碰撞体,以及进行射线点击检测才比较容易实现准确的点击。
XR-fram如何在相机背景下叠加ui?我想在相机背景下增加拍照按钮,和点击3D物体是弹出介绍框。
2023-02-14项目的 project.config.json 文件里,setting 里添加以下字段,用于去除上传时无依赖文件过滤。 "setting": { "ignoreDevUnusedFiles": false, "ignoreUploadUnusedFiles": false, }
开发者工具读取文件/文件夹失败,无法识别json文件在白名单中?[图片] xr-asset-load无法读取相应json动画
2023-02-13xr-Frame 中,动态改 xr-asset-load 里的值是无效的。 所以方法一中,动态改 src 是无效的。 xr-Frame 中使用资源的时候,需要保证资源已经被注册 (wxml被解析,一般需要通过加载回调确定),而且动态场景 xr-asset-load 不会触发 xr-assets 的 loaded事件。 所以方法二中,下方使用的是没有被注册的视频纹理,也是无效的。 (btw,实现需要这种方法可以考虑动态创建 xr-assets 使用,但是不推荐) 如果需要动态使用资源(如视频纹理),推荐使用脚本进行动态加载。 可以参考以下代码进行实现,需要注意的是,assetId 不能一致,会导致索引失败。 const videos = await Promise.all(videoList.map(videoItem => scene.assets.loadAsset({ type: 'video-texture', assetId: videoItem.id, src: videoItem.url, options: { loop: true }, }))) videos.map((videoTexture, index) => { const videoMat = scene.createMaterial( scene.assets.getAsset('effect', 'simple'), { u_baseColorMap: videoTexture.value.texture } ) scene.assets.addAsset('material', `video-mat-${videoList[index].id}`, videoMat) }) 目前 xr-frame-demo 通用模版 - 多tracker切换模版已更新,可以参考实现 https://github.com/dtysky/xr-frame-demo
xr-frame xr-ar-tracker 在触发切换事件的时候如何更新视频纹理资源?场景中存在多个 tracker,当 tracker 触发 tracker-switch 事件的时候,如何去动态更新视频纹理。 目前以下两种思路均未实现这个功能。 方式一:当 tracker 切换的时候,更改 video-texture 的 src 信息 [图片] js 文件: handleTrackerSwitch: async function (event) { console.log('tracker - switch'); const active = event.detail.value; const item = event.target.dataset.item; const url = this.data.items1[item].resourceUri; this.setData({ resourceUrl: url }); const video = this.scene.assets.getAsset("video-texture", "hikari"); console.log({ video }); active ? video.play() : video.stop(); } 方式二:列表遍历,tracker 切换的时候,控制列表中选项的显示和隐藏 [图片] js 文件: handleTrackerSwitch: async function (event) { const active = event.detail.value; const item = event.target.dataset.item; this.setData({ currentIndex: Number(item) }); const video = this.scene.assets.getAsset("video-texture", "hikari"); console.log({ video }); // console.log({ height: video.height, width: video.width }); active ? video.play() : video.stop(); } 目前尝试了以上两种方式,当 tracker 切换的时候,视频纹理的路径没有更新,仍为初始化时的值。 有其他实现思路或者已经实现了这个功能的,麻烦分享一下实现思路,感谢。
2023-02-09使用外层view的方案,在真机里面不会被覆盖,可以直接使用。(开发者工具里面会被覆盖是因为工具实现同层渲染存在差异导致的) 如果需要在 xr-frame 内部,添加这个固定在相机前方的元素(比如操作摇杆用的二维的贴图面片),可以直接在 xr-camera 子节点里面添加所需要的元素即可。
XR-FRAME如何在相机前固定渲染mesh?在相机移动的情况下?尝试用外层view组件但是回呗xrframe直接覆盖,那么在XR-FRAME中该如何实现相机移动的过程中始终处于相机固定位置 用于制作轮盘,方向键
2023-02-09底层也是走的VKSession,这部分已经反馈给对应同学,目前Android这部分能力支持中,后续完成支持会马上反馈
XR-Frame人脸检测能力在Android设备前置摄像头上无效https://developers.weixin.qq.com/miniprogram/dev/component/xr-frame/ar/tracker.html XR-Frame人脸检测能力在Android设备前置摄像头上无效,测试了华为,小米手机前置摄像头都检测不到,iOS设备可以,需要确认下原因
2023-02-09粒子stop事件已添加,预计下一个基础库版本支持(大概需要1-2周)。
xr-frame, 粒子系统有结束事件吗?xr-frame, 粒子系统,配置了stop-duration,有结束回调事件吗?尝试了event.add('stop')但是没用。 谢谢
2023-02-08目前不支持多个video-texture的直接加载与播放。该问题来源于视频的解析能力,目前这个能力在正在改造,需要后续版本才修复。 如果不需要同时播放,可以考虑使用使用脚本动态加载与使用每个视频。 // 脚本使用示例 const videos = await Promise.all(videoList.map(videoItem => scene.assets.loadAsset({ type: 'video-texture', assetId: videoItem.id, src: videoItem.url, options: { loop: true }, }))) videos.map((videoTexture, index) => { const videoMat = scene.createMaterial( scene.assets.getAsset('effect', 'simple'), { u_baseColorMap: videoTexture.value.texture } ) scene.assets.addAsset('material', `video-mat-${videoList[index].id}`, videoMat) })
xr-frame下的多个的video-texture会导致xr-asset-load的加载失效?在加载流程里面,尝试加载多个video-texture的时候,模拟器表现正常,真机总会有失效,下载无进度。剩下的就没有返回。 比如我对两个video-texture做加载(分别在5m内),手机上只能成功一个,而且成功的那个还不固定。 如果我做了loaded的绑定,就无法得到一个完成的callback了
2023-02-06如果需要百分百还原MeshLambertMaterial的效果,可以尝试直接使用自定义材质,直接编写可以尝试使用xr-Frame内置的 Standard 材质模拟,Standard的直接漫反射部分也是使用Lambert,可以金属度调为0,粗糙度调高,效果就会接近。
xrframe, 如何使用threejs中的material?需要使用threejs中的MeshLambertMaterial, 不知道该如何引入? 如果自己用createMaterial创建,又不知道threejs MeshLambertMaterial源代码中那么多属性怎么设置?
2023-02-06