小程序使用threejs第五篇—室内效果3D文件的加载,可旋转查看上下四周效果

在上一篇小程序使用threejs第四篇—加载3D模型中我们介绍了threejs加载几种3D模型,包括gltf、obj、glb等格式。但好像一直没有用的场景,最直观的场景应该是室内效果了。

解决思路

  • 室内效果图一般用到一种.hdr格式的文件,这种文件可以在Poly
    Haven
    这个网站下载到,这样素材的问题我们就解决了;
  • 由于这种格式的文件较大,放在小程序里不太现实,所以有自己服务器的可以把它放在服务器,没有的也没事,微信云开发给我们提供了很大的方便,传到云存储,用的时候把fileID换成临时下载路径是很完美的解决方案;
  • 剩下的问题就是在小程序中加载这个url了,这里就要用到的我们的支持小程序版本的threejs了,把相关的类引入进来,然后开始调用。

效果图

在这里插入图片描述
素材不是特别清晰,需要清晰的可以到上述网站上自行下载,比较大。

体验

在这个小程序中我写了很多示例代码,欢迎大家体验

核心代码


    camera = new THREE.PerspectiveCamera(45, canvas.width / canvas.height, 0.25, 20);
    camera.position.set(- 1.8, 0.9, 2.7);

    scene = new THREE.Scene();

    new RGBELoader()
      .setDataType(THREE.UnsignedByteType)
      .load('这里写您的hdr文件链接', function (texture) {

        var cubeGenerator = new EquirectangularToCubeGenerator(texture, { resolution: 1024 });
        cubeGenerator.update(renderer);

        var pmremGenerator = new PMREMGenerator(cubeGenerator.renderTarget.texture);
        pmremGenerator.update(renderer);

        var pmremCubeUVPacker = new PMREMCubeUVPacker(pmremGenerator.cubeLods);
        pmremCubeUVPacker.update(renderer);

        var envMap = pmremCubeUVPacker.CubeUVRenderTarget.texture;

        // 在此添加model

        pmremGenerator.dispose();
        pmremCubeUVPacker.dispose();

        scene.background = cubeGenerator.renderTarget;

      });

关于threejs的研究继续中…

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
小程序使用 Three.js glTF 3D 模型需要进行一些特殊处理。以下是一般的步骤: 1. 首先,确保你已将 Three.js 库引入到小程序项目中。 2. 在小程序的页面文件中,创建一个 Canvas 组件用于渲染 Three.js 场景: ```xml <canvas id="canvas"></canvas> ``` 3. 在页面的 JavaScript 文件中,使用 wx.createSelectorQuery() 获取到 Canvas 组件的上下文,并创建渲染器(renderer),设置其大小和渲染目标: ```javascript const query = wx.createSelectorQuery(); query.select('#canvas').node().exec((res) => { const canvas = res[0].node; const renderer = new THREE.WebGLRenderer({ canvas: canvas, antialias: true }); renderer.setSize(canvas.width, canvas.height); }); ``` 4. 在小程序的页面生命周期函数 onLoad() 或 onReady() 中 glTF 模型: ```javascript var loader = new THREE.GLTFLoader(); loader.load('path/to/model.gltf', function(gltf) { scene.add(gltf.scene); }, undefined, function(error) { console.error(error); }); ``` 请注意,此处的 scene 是你自己创建的 Three.js 场景。 5. 在小程序的页面生命周期函数 onShow() 中开始渲染场景: ```javascript function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } Page({ onShow() { animate(); } }); ``` 这是一个基本的在小程序使用 Three.js 和渲染 glTF 模型的示例。需要注意的是,小程序环境与网页环境有一些差异,因此可能需要进行一些适配和调整。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玩烂小程序

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值