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

本文介绍如何在微信小程序中利用three.js加载HDR(高动态范围图像)文件来实现室内效果。通过从Poly Haven网站下载.hdr文件,上传至云存储,然后在小程序中使用RGBELoader加载HDR文件,并进行一系列处理,如EquirectangularToCubeGenerator、PMREMGenerator和PMREMCubeUVPacker,设置为场景背景,最终实现3D室内效果的展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上一篇小程序使用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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

玩烂小程序

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

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

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

打赏作者

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

抵扣说明:

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

余额充值