码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • THREE.JS实现看房自由(VR看房)


    在这里插入图片描述


    VR看房

      • 一、前言
      • 二、基础知识
      • 三、场景
        • 3.1 网络模型
        • 3.2 光照
          • 3.2.1 环境光
          • 3.2.2 平行光
          • 3.2.3 点光源
          • 3.2.4 聚光灯
          • 3.2.5 半球光
      • 四、相机
        • 4.1 正交相机
        • 4.2 透视相机
      • 五、渲染器
      • 六、贴图纹理
        • 6.1 基础介绍
        • 6.2 环境贴图
        • 6.3 HDR处理
      • 七、拓展
        • 7.1 坐标系
        • 7.2 控制器
        • 7.3 自适应
        • 7.4 全屏响应
        • 7.5 信息面板
        • 7.6 频率检测
        • 7.7 导航网格
      • 八、源码


    一、前言

    概述:基于WebGL的三维引擎,目前是国内资料最多、使用最广泛的三维引擎,可以制作一些3D可视化项目

    在这里插入图片描述

    目前随着元宇宙概念的爆火,THREE技术已经深入到了物联网、VR、游戏、数据可视化等多个平台,今天我们主要基于THREE实现一个三维的VR看房小项目

    二、基础知识

    在这里插入图片描述

    Three.js一般分为三个部分:场景、相机、渲染器,这三个主要的分支就构成了THREE.JS的主要功能区,这三大部分还有许多细小的分支,这些留到我们后续抽出一些章节专门讲解一下。

    在这里插入图片描述

    工作流程:场景——相机——渲染器

    从实际生活中拍照角度立方体网格模型和光照组成了一个虚拟的三维场景,相机对象就像你生活中使用的相机一样可以拍照,只不过一个是拍摄真实的景物,一个是拍摄虚拟的景物。拍摄一个物体的时候相机的位置和角度需要设置,虚拟的相机还需要设置投影方式,当你创建好一个三维场景,相机也设置好,就差一个动作“咔”,通过渲染器就可以执行拍照动作。

    三、场景

    概述:场景主要由网络模型与光照组成,网络模型分为几何体与材质

    3.1 网络模型

    几何体就像我们小时候学我们就知道点线面体四种概念,点动成线,线动成面,面动成体,而材质就像是是几何体上面的涂鸦,有不同的颜色、图案…

    例子如下:

    在这里插入图片描述

    //打造酷炫三角形
    for (let i = 0; i < 50; i++) {
        
        const geometry = new THREE.BufferGeometry();
        const arr = new Float32Array(9);
        for (let j = 0; j < 9; j++) {
        
            arr[j] = Math.random() * 5;
        }
        geometry.setAttribute('position', new THREE.BufferAttribute(arr, 3));
        let randomColor = new THREE.Color(Math.random(), Math.random(), Math.random());
        const material = new THREE.MeshBasicMaterial({
       
            color: randomColor,
            transparent: true,
            opacity:0.5,
        });
        const mesh = new THREE.Mesh(geometry, material);
        scene.add(mesh);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UlBSgxKr-1666681292595)(https://gitee.com/riskbaby/picgo/raw/master/blog/202209211037215.png#pic_center)]

    const geometry = new THREE.BoxGeometry(100, 100, 100);
    const material = new THREE.MeshStandardMaterial({
        color: 0x0000ff });
    const cube = new THREE.Mesh(geometry, material);
    scene.add(cube);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    const geometry = new THREE.ConeGeometry(5, 15, 32);//底面半径 高 侧边三角分段
    const material = new THREE.MeshStandardMaterial({
        color: 0x0000ff });
    const clone = new THREE.Mesh(geometry, material);
    scene.add(clone);
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.2 光照

    3.2.1 环境光

    概念:光照对three.js的物体全表面进行光照测试,有可能会发生光照融合

    在这里插入图片描述

    //环境光
    const ambient = new THREE.AmbientLight(0x404040);
    scene.add(ambient);
    
    • 1
    • 2
    • 3
    3.2.2 平行光

    概念:向特定方向发射的光,太阳光也视作平行的一种,和上面比较,物体变亮了

    //平行光  颜色 强度
    const directionalLight = new 
    • 1
  • 相关阅读:
    Android 14 Beta 1
    算法学习笔记 4-1 二分算法(Binary-Search):致敬经典,超越经典 与 LeetCode真题(Java)
    Vue3中ref创建的引用为什么一定要用.value来获取值
    python项目实战——银行取款机系统(四)
    黑马瑞吉外卖之移动端验证码登录使用qq邮箱
    MySQL数据库之索引
    iOS MDM(监管锁)入门
    在虚拟环境下安装python包
    ESP32_esp-idf_lvgl_V8环境搭建移植
    基于SSM的零食小食品商城(零食商城源码)
  • 原文地址:https://blog.csdn.net/qq_53673551/article/details/127513554
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号