当前位置: 首页 > news >正文

Three.js搭建小米SU7三维汽车实战(1)搭建开发环境

1.基本概念

![](https://i-blog.csdnimg.cn/img_convert/3158b052559216515a866bc80bf0f399.png)

1) 场景

如何理解场景 场景就是一个三维的世界, 在这个世界中可以放置各种各样的物体 可以理解成一个** 空间** , 或者** 容器**

2) 相机

如何理解相机 🤔** 思考: ** 如何在二维平面表现三维效果 由于我们的显示器是二维平面, 只有两个维度, 如何在一个二维平面表现出三维效果呢? 在现实生活中, 得益于拍照技术, 从不同的角度拍射(观察)同一个物体, 然后通过一些光照阴影我们的大脑可以自行脑补出三维的画图 ** 这里的相机就是三维空间的观察者** 当相机从不同的角度观察同一个物体会得到不同的图像, 然后把这些图像使用一定的技术拼接组合, 我们的大脑会根据生活在三维世界的经验自行脑补出三维空间

3) 物体

在三维空间, 可以放置一些物体, 这些物体就是** 被观察的对象** 不同的物体形状, 大小, 材质和纹理不相同 尽可能模拟现实生活中的实际物体, 比如

4) 光源

有了光照,物体就会有明暗效果的区别

2.开发环境搭建

1) 开发建议

在开发之前, 我有几点建议 ** 1一定使用代码自动补全!!!** 由于three.js有众多的API, 名字长, 单词容易拼错, 基本上记不住 ** 2模块化开发** threejs的官方从150+版本后打算废弃直接引入的方式, 并在160版本移除

2) 初始化项目

创建一个目录three-basic, 执行
npm init -y

3) 安装three.js

```javascript npm install three@0.152 ```

⚠️**** 特别注意
由于threejs的更新非常快, 这里默认安装会自动安装最新版的three.js, 不同的版本下API和目录结构可能不同
本教程(2023-05-10)使用的版本是最新版(v0.152.2)
为了保证一致性, 建议大家在安装时指定版本

4) 使用vite

vite是开箱即用的下一代打包工具, 原生支持模块化开发 相比于webpackRollupParcel更快, 更好用 将vite安装成开发时依赖, 使用vite启动开发服务 注意:使用5.4.11版本的vite
npm i vite@5.4.11 -D

创建入口文件index.html, 在入口文件中引入
●初始化样式reset.css
●主入口文件main.js

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><!-- 引入初始化样式 --><link rel="stylesheet" href="./src/assets/styles/reset.css" /></head><body><!-- 使用模块化方式引入入口文件 --><script src="./src/main.js" type="module"></script></body>
</html>
* {margin: 0;padding: 0;
}body {background-color: skyblue;
}
// 导入THREE
import * as THREE from 'three'// 创建一个场景
const scene = new THREE.Scene()
console.log(scene)

编辑package.json脚本

"scripts": {"dev": "vite"
},

启动开发服务

npm run dev
http://www.xdnf.cn/news/580969.html

相关文章:

  • 腾讯云媒体AI解码全球视频出海智能密码
  • 替代云数据库的本地方案:MySQL+phpMyAdmin的远程管理与跨网络访问技术
  • Windows下PyCharm2025的运行卡顿的问题
  • 介绍一下 MVCC
  • 2025最新版Visual Studio Code for Mac安装使用指南
  • Spark入门秘籍
  • Docker 疑难杂症解决指南大纲
  • 人民日报社主管媒体深度聚焦珈和科技“遥感+AI”农险精准化突破:首创“四维数据贯通”模式 树行业转型新标杆
  • RNN神经网络
  • tmagic-editor本地实践(2)
  • 当物联网“芯”闯入纳米世界:ESP32-S3驱动的原子力显微镜能走多远?
  • centos8 配置网桥,并禁止kvm默认网桥
  • WPF 常见坑:ContentControl 不绑定 Content 时,命令为何失效?
  • 使用 Selenium 自动化测试:保存网站登录数据的详细指南
  • Labview实现计算CPK参数
  • Appium 的 enableMultiWindows 参数
  • React+Taro 微信小程序做一个页面,背景图需贴手机屏幕最上边覆盖展示
  • 基于 WebRTC 的一对一屏幕共享项目(一)——项目简介
  • 深入解析Spring Boot与Redis集成:高效缓存与性能优化
  • ETL 代表什么?ETL 开发主要做什么?
  • web第六次课后作业--使用ApiFox实现请求响应操作
  • 【烧脑算法】单序列双指针:从暴力枚举到高效优化的思维跃迁
  • AJAX get请求如何提交数据呢?
  • 【NLP 77、Python环境管理工具之conda】
  • 【稳定检索|权威出版】2025年综合艺术与社会发展国际会议(ICIASD 2025)
  • 二十、面向对象底层逻辑-ServiceRegistry接口设计集成注册中心
  • 打卡第二十五天:元组和OS模块
  • flutter dart 函数语法
  • OceanBase数据库全面指南(数据操作篇DML)
  • 【Java多态】:灵活编程的核心