1.基本概念

![](https://i-blog.csdnimg.cn/img_convert/a4676122e207e058f3a335df2c99d4f8.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

在这里插入图片描述
如果过程中有任何不懂的地方
大家可以+下方小助手↓回复关键词 su7 免费获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/88029.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88029.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/88029.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium 原理【selenium】

Selenium 是什么&#xff1f;Selenium 是一个专门用于自动化操作网页的工具集&#xff0c;它能够模拟人类在浏览器中进行的各种操作&#xff0c;如点击按钮、填写表单、滚动页面等。借助 Selenium&#xff0c;开发者可以编写脚本来控制浏览器&#xff0c;实现自动化测试、数据采…

【音视频】HLS-m3u8协议介绍

参考文档&#xff1a;https://datatracker.ietf.org/doc/html/rfc8216 一、m3u8协议概述 m3u8 协议是基于 M3U 格式扩展而来的一种多媒体播放列表协议&#xff0c;主要用于流媒体的索引和分发&#xff0c;尤其在 HLS&#xff08;HTTP Live Streaming&#xff09;技术中扮演核…

unity入门:动画等不显示问题——画布设置

unity入门&#xff1a;动画等不显示问题——画布设置动画等不显示问题大部分原因画布Canvas总结动画等不显示问题大部分原因 1、画布设置渲染模式不对&#xff0c;下文再讲这个问题。 2、在层级双击动画查看动画大小&#xff0c;有些动画创建完之后在场景大小实际很小需要在R…

【机器学习笔记 Ⅱ】3 前向传播

前向传播&#xff08;Forward Propagation&#xff09;实现详解 前向传播是神经网络中数据从输入层流向输出层的过程&#xff0c;通过逐层计算每一层的输出&#xff0c;最终得到预测结果。以下是其实现原理和步骤的完整解析&#xff1a;1. 前向传播的核心步骤 (1) 线性变换&…

人体坐姿检测系统开发实战(YOLOv8+PyTorch+可视化)

本文将手把手教你构建智能坐姿检测系统,结合目标检测与姿态估计技术,实现不良坐姿的实时识别与预警 ### 一、项目背景与价值 现代人每天平均坐姿时间超过8小时,不良坐姿会导致: - 脊椎压力增加300% - 颈椎病发病率提升45% - 腰椎间盘突出风险增加60% 本系统通过计算机…

卷积神经网络经典架构演进

LeNet-5 网络架构 #mermaid-svg-8VgsGVLusLXKY5lE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8VgsGVLusLXKY5lE .error-icon{fill:#552222;}#mermaid-svg-8VgsGVLusLXKY5lE .error-text{fill:#552222;stroke:#5…

mybatis/mybatis-plus添加数据,自增id的值为负数

1、问题概述&#xff1f;使用mybatis-plus的insert方法添加数据的时候&#xff0c;数据虽然添加成功了&#xff0c;但是返回值为false&#xff0c;提示添加失败。当观察数据的时候&#xff0c;发现数据的自增主键id的值尽然为-1&#xff0c;或者无规律的长串负数&#xff0c;如…

商业创业融资项目计划书PPT模版

创业融资计划书PPT模版&#xff0c;营销模式分析PPT模版&#xff0c;创业计划书PPT模版&#xff0c;互联网电商创业推广手册PPT模版&#xff0c;商业项目计划书PPT模版&#xff0c;高端商业计划通用PPT模版&#xff0c;商业计划书&#xff0c;科技商业PPT模版 商业创业融资项目…

新人如何入门学习 STM32?

作为一个在嵌入式领域摸爬滚打了近10年的老兵&#xff0c;看到这个问题时我的思绪瞬间回到了当年那个懵懂的自己。说实话&#xff0c;2014年那个夏天&#xff0c;24岁的我刚从机械专业毕业却被调剂到了厦门某马的电子部门&#xff0c;第一次听到"STM32"这个词的时候&…

clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结

目录零、前言一、clickhouse数据库表在starrocks数据库建表时问题总结1.1 数据类型类问题&#xff1a;1.2 数据导出阶段&#xff1a;二、doris 数据库表在starrocks数据库建表时问题总结2.1 properties不支持的属性&#xff08;直接删除&#xff09;&#xff1a;2.2 properties…

社区云管家 - 智慧生活新方式 ——仙盟创梦IDE

社区服务热门推荐数字化时代的社区服务新形态​在数字化浪潮席卷日常生活的今天&#xff0c;一个集多功能于一体的综合社区官网正成为连接居民与社区服务的核心纽带。这类平台以 “一站式解决生活需求” 为核心&#xff0c;将看房、外卖、物业、快递、求职、生鲜、出行、文具打…

MongoDB GridFS

MongoDB GridFS 引言 MongoDB 是一种高性能、可扩展的文档存储系统,它提供了灵活的数据模型和丰富的查询功能。在处理大量非结构化数据时,MongoDB 的 GridFS 功能尤为突出。GridFS 是一种用于存储和检索大文件的解决方案,它可以存储任意大小的文件,并将其分解为多个较小的…

Linux中程序的limits中的Max open files的配置由哪些参数决定

在 Linux 中&#xff0c;程序的 Max open files&#xff08;最大打开文件数&#xff0c;即 ulimit -n&#xff09;由多个层级的参数共同控制&#xff0c;具体如下&#xff1a; 1. 内核级全局限制&#xff08;系统默认上限&#xff09; 由 /proc/sys/fs/file-max 控制&#xff0…

git clone xxx.git 提示报错:fatal: Unable to find remote helper for ‘http‘

[rootroot /home]# git clone http://gitlab.xxx.qunar.com/xx/xxx.git Cloning into ‘xxx’… fatal: Unable to find remote helper for ‘http’ 我今天在Linux服务器上执行git clone一个仓库的代码到机器上&#xff0c;但是执行的时候提示上面的错误&#xff0c;我就很诧异…

【机器学习笔记Ⅰ】10 特征工程

特征工程&#xff08;Feature Engineering&#xff09;详解 特征工程是机器学习和数据科学中的核心环节&#xff0c;旨在通过对原始数据的转换、组合和提取&#xff0c;构建更适合模型的高质量特征。其质量直接决定模型性能上限&#xff08;“数据和特征决定了模型的上限&#…

20250708-03-string结构及命令详解_笔记

一、字符串操作1. set命令&#xfeff;1&#xff09;set命令详解&#xfeff;&#xfeff;基本语法与参数命令格式&#xff1a;set key value [ex 秒数]/[px 毫秒数][nx]/[xx]有效期设置&#xff1a;ex参数&#xff1a;以秒为单位设置过期时间&#xff0c;如set a 1 ex 10表示1…

SpringBoot3-集成MybatisPlus

此次操作是在多模块下进行的&#xff0c;SpringBoot3-规划多模块目录 添加管理依赖 根模块 zibocoder-parent 的 pom.xml 中添加 MybatisPlus bom 管理依赖 <properties>...<mybatis-plus.version>3.5.12</mybatis-plus.version>... </properties> <…

部署MongoDB

环境:CentOS7 添加 MongoDB 官方 YUM 仓库 sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo 将以下内容粘贴到文件中(以 MongoDB 6.0 为例): [mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86…

重学前端002 --响应式网页设计 CSS 基础

文章目录css 样式特殊说明根据在这里 Freecodecamp 实践&#xff0c;调整顺序后做的总结。 css 样式 body {background-color: red; # 跟background-image 不同时使用background-image: url(https://cdn.freecodecamp.org/curriculum/css-cafe/beans.jpg);font-family: sans-…

Zig高并发爬取数据简洁模版

上文中我们介绍了Zig语言得爬虫的有些优劣势&#xff0c;想必大家对于自身项目选择那种语言做爬虫应该有些思路了&#xff0c;今天我将使用Zig的标准库来构建一个简单的高并发爬虫模板。由于Zig的异步机制和标准库中的http模块&#xff0c;我们可以实现一个基于事件循环的爬虫。…