vue 项目使用three.js 实现3D看房效果

这篇具有很好参考价值的文章主要介绍了vue 项目使用three.js 实现3D看房效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.前言

该教程能帮助直接写出vue项目的3D看房效果!!!
先上效果图
threejs 看房,javascript,vue.js,3d

1.安装依赖

npm i three              //安装three.js依赖
npm install file-loader  //安装文件装载器
npm install url-loader   //安装url装载器

2.vue代码

这里文件名为three.vue
代码非原创,出处 vue3+threejs实现全景看房
(异步加载 BOLLROOM 部件为对原代码的修改)

<template>
    <div class="container" ref="containerRef"></div>
</template>
  
<script setup>
import { onMounted, ref } from "vue";
import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";

//导入hdr图像加载器
import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";//rebe加载器

//加载hdr组件
import BOLLROOM from '../assets/house03.hdr'

// import BOLLROOM from '../assets/redhouse.hdr'

// 初始化场景
const scene = new THREE.Scene();

// 初始化 透视 相机  参数1 视角  屏幕宽高比  近端  远端
const camera = new THREE.PerspectiveCamera(
    75,
    window.innerWidth / window.innerHeight,
    0.1,
    1000
);
// 设置相机位置
camera.position.z = 0.1;

// 初始化渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);

const containerRef = ref(null);
const render = () => {
    renderer.render(scene, camera);
    requestAnimationFrame(render);
};

// 添加球
const geometry = new THREE.SphereGeometry(5, 32, 32);
const loader = new RGBELoader();

//异步加载 hdr组件
loader.loadAsync(BOLLROOM).then((texture) => {
    const material = new THREE.MeshBasicMaterial({ map: texture });
    const sphere = new THREE.Mesh(geometry, material);
    sphere.geometry.scale(1, 1, -1); // 反转过来  本来是图片包裹在球上的
    scene.add(sphere);
});


// 挂载完毕 获取dom
onMounted(() => {
    // 添加控制器
    const contros = new OrbitControls(camera, containerRef.value);
    contros.enableDamping = true;
    containerRef.value.appendChild(renderer.domElement);
    render();
});
</script>
  
<style>
* {
    margin: 0;
    padding: 0;
}

.container {
    width: 100vw;
    height: 100vh;
    background-color: #f0f0f0;
}
</style>

注意这里的hdr 文件必须要放在assets文件夹中,且要通过import模块的形式导入!!

3.vue.config.js配置设置

module.exports = {
  configureWebpack: {
    module: {
    //文件校验规则
      rules: [
        {
        //当检测到读取hdr文件
          test: /\.(fbx|hdr)$/,
          use: [
            {
            //使用该加载器
              loader: 'url-loader',
              options: {
                limit: 8192,
                //设置网页页面类型
                mimeType: 'application/octet-stream'
              }
            }
          ]
        }
      ]
    }
  }
};

4.放置hdr文件

注意hdr 文件要放在assets文件夹中!!

threejs 看房,javascript,vue.js,3d
hdr资源下载地址(外网,可直接访问)
https://polyhaven.com/

点击这里也可以下载好我传的几个室内hdr包

5.后话

昨晚熬夜没搞出来,今天又踩各种坑,泪T T
感谢彬哥的临门一脚!
参考资料:
vue3+threejs实现全景看房
threejs实现3d全景看房
Three.js 关于模型格式不支持的问题文章来源地址https://www.toymoban.com/news/detail-639413.html

到了这里,关于vue 项目使用three.js 实现3D看房效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VUE使用Three.js实现模型,点击交互,相机旋转视角跟随移动(Threejs中使用Tweenjs,含demo源码)

    目录 一、Three.js是什么? 二、VUE简单使用Three.js步骤 1.npm安装 2.template模板 3.引入库 4.定义全局变量 5.初始化场景 6.初始化相机 7.初始化灯光 8.初始化渲染器 9.创建模型(这里我搭建的模型是一个简单双面货架模型) 10.根据浏览器窗口自适应 11.初始化函数,页面加载完成时调用

    2024年02月03日
    浏览(68)
  • Three.js--》实现3D汽车展厅效果展示

    目录 项目搭建 初始化three.js基础代码 加载汽车模型 设置展厅效果 设置GUI面板动态控制车身操作 车门操作与车身视角展示 设置手动点击打开关闭车门 设置图片背景 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起

    2024年02月09日
    浏览(59)
  • Three.js--》实现图片转3D效果展示

    目录 项目搭建 初始化three.js基础代码 加载图片纹理 设置着色器 今天简单实现一个three.js的小Demo,加强自己对three知识的掌握与学习,只有在项目中才能灵活将所学知识运用起来,话不多说直接开始。 项目搭建 本案例还是借助框架书写three项目,借用vite构建工具搭建vue项目

    2024年02月08日
    浏览(60)
  • three.js实现VR看房自由

           在很多看房软件,例如贝壳看房、VR博物馆或者VR展厅等等,为了更加真实的展示产品或者场景的特色,通常会通过一些VR或者全景图的方式,给用户带来沉浸式的体验,给视觉上带来比较震撼的效果,再加上一些动感的音乐,仿佛让人深陷其中,无法自拔。假的,因

    2024年01月18日
    浏览(41)
  • three.js入门篇8 之 实现VR看房

    vue create vr360-vue3 yarn add three code 效果 code 效果

    2024年02月06日
    浏览(38)
  • Vue3集成ThreeJS实现3D效果,threejs+Vite+Vue3+TypeScript 实战课程【一篇文章精通系列】

    这是一个使用Vue3,TypeScript,Vite和Three.js的项目。Vue3是一个流行的JavaScript框架,用于构建用户界面。TypeScript是一种静态类型的编程语言,它是JavaScript的超集,可以编译成纯JavaScript。Vite是一个由Evan You开发的新的前端构建工具,能够提供快速的冷启动和即时热更新。 Three.j

    2024年02月03日
    浏览(53)
  • Three.js--》前端开发者掌握3d技术不再是梦,初识threejs

            这十年来 web 得到了快速的发展,随着 webgl 的普及,网页的表现能力越来越强大,网页上已经开始可以做出很多复杂的动画和精美的效果,还可以通过 webgl 在网页中绘制高性能的3d图形,别的不说,凡是入门程序员都离不开github这个网站,细心的人都会发现,gi

    2024年02月01日
    浏览(66)
  • Android集成Unity,实现3D看房效果

    前几天有人找小编问能不能把3D模型放入到Unity中,再把Unity放入到Android APP中,在APP中实现观看房屋家具的功能,这次小编便来分享一下吧,如果还需要了解Android 集成Unity知识的,可以翻我主页其他文章 Android3D观看房屋家具效果演示 Unity 3D官网 Android Studio官网 3D模型官网 如

    2024年02月11日
    浏览(38)
  • Three.js中的3D文字效果

    对于一些设计网页中经常会出现一些3D的文字效果,本文将利用Three.js实现各种动画WebGL文本输入效果。 示例效果 原文章 通常情况下,文本网格是2D的平面形状,我们所要实现的3D文本形状则是要在2D的平面下,再生成z值形成一个立体的效果。 首先,我们创建一个canvas元素,

    2024年02月02日
    浏览(102)
  • Vue实现vr看房效果

    1.下载依赖: VS code终端执行两个命令 2.template模块代码 3.script模块代码 4.style模块的代码:

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包