three.js入门-一些基础理论|大帅老猿threejs特训

news2025/1/12 9:50:07

前言

参加了threejs直播课。
本篇文章为入门理论部分笔记。

可以学到什么:

一、软能力

1. 系统全流程理解web3D 应用/数字孪生/元宇宙,程序开发与3D美术资源制作
2. 建立与3D美术团队良好沟通协作能力
3. 良好把控3D画面效果和性能平衡
4. 培养程序和美术结合思维,最简省的方式实现最好的效果
5. 熟悉常用3D软件,取得web3D程序员基本使用能力
6. 独立开发Web3D应用(程序、2D/3D美术)
7. Three.js和3D美术实战经验

二、硬件能力

1. Three.js基础API(自身想法通过Three.js得到简单实现)
2. 3D美术工具的使用
3. 甜甜圈3D模型及调整
4. Three.js掉落的甜甜圈案例
5. Blender 软件基础
6. 全流程演示从展厅图片建立展厅3D模型
7. PBR材质介绍
8. 贴图处理,材质设置
9. 完成完整展厅模型
10. 加载展厅模型
11. 角色模型
12. 角色骨骼动作
13. 角色动作合并
14. 角色动作控制
15. 环境照明
16. 自由展览的展厅

三、web3D的主要展示方式

1.浏览器直接渲染:电脑浏览器、移动端浏览器(包括微信)以及微信小程序
2.服务端渲染(服务端运行:效果好,但是运营成本高)将3D画面像素推流到前端/小程序展示

四、相关概念

  • 数字孪生:三维实景模型 + 多系统监控/告警数据,实现远程监管(监控、管理)

image.png

五、浏览器运行3D的方案

  1. ActiveX插件:已过时
  2. Flash:停止维护
  3. webGL: 浏览器原生支持(ie11基本支持)
  4. webGPU:性能高,目前未得到操作系统和浏览器的广泛支持

六、可实现发布webGL到浏览器运行的方案(从重到轻)

unity引擎: wasm、webGL;空包:20m+;不支持ie11/低版本chrome及firefox及国产化
CocosCreator: webGL; 空包:6m+; 不支持ie11/低版本chrome及firefox
threejs: webGL; 库大小:1m-;开源;ie11均支持
babylonjs:webGL;库大小:4m+;微软开元,中文资料相对较少

Three.js

基础概念

image.png
image.png
image.png

基础场景三大件

- scene 场景 new THREE Scene():
- camera 相机 new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
- renderer 渲染器 new THREE.WebGLRenderer();

灯光

image.png

材质(重点)

  • MeshBasicMaterial 基础材质(测试调试用的多)
  • MeshStandardMaterial PBR材质(写实项目标配材质)
    • PBR:Physically Based Rendering 基于物体渲染,可以模拟物理正确效果

常用贴图:

  • Albedo:漫反射(diffuse)
  • MetaIness:金属度(像金属还是像塑料)
  • Roughness:粗糙度(光滑表面还是粗糙表面)
  • Normal:模拟凹凸效果
  • AO:闭塞贴图(模拟接触阴影,增强真实感)

几何体

image.png
创建几何体三部曲:

const geometry = new  THREE.BoxGeometry(1,1,1);
const material = new THREE.MeshBasicMaterial({color:0x00ff00});
const cube = new THREE.Mesh(geometry, material);
scene.add(cube)

帧循环:

  • setInterVal: requestAnimationFrame API 之前帧循环驱动方式
  • requestAnimationFrame: requestAnimationFrame有很多的优点,很重要的一点是当用户切换到其他的标签页时,会暂停调用,不会浪费处理器资源

加载gltf/glb模型:GLTFLoader

new GLTFLoader().load('../resources/models/donuts.glb', (gltf) = >{
    scene.add(gltf.scene);
})

加载环境光HDR图片:RGBELoader

new RGBELoader().load('resources/sky.hdr', function(texture) {
    texture.mapping = THREE.EquirectangularReflectionMapping;
    scene.enviroment = texture;
    renderer.outputEncoding = THREE.sRGBEncoding;
    renderer.render(scene, camera);
})

Texture常用映射方式:

image.png

模型获取

www.sketchfab.com

blender 视图基本操作

image.png

写在最后

仅仅是笔记。瑕疵很多,更多的用于记录。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据分析师:星图Stagraph 2.1 Crack

Stagraph 是一个用于数据导入 - 数据整理 - 数据可视化的复杂软件工具。面向数据工程师、数据分析师、数据科学家、统计学家和其他“数据专业人员”的专业软件。在简单易用的可视化界面中提供最新数据科学工具的强大功能。采集 by Ω578867473 降低 降低处理数据的复杂性。使用…

作业帮:探索多云架构下的数据库集群解决方案

导语:面对业务多元、数据海量、数据库种类多样、多云架构复杂等痛点,该如何制定既能解决问题又能降本增效的数据库升级方案?作业帮作为实践者,从四方面分享其数据库选型过程与思考。以下为作业帮DBA刘强在DTCC大会中的讲述。 嘉宾…

移动端自动化python使用appium包登录qq

听标题挺高大上的,其实内容还是脚本小子的高度。。。 为了写个月报一下午抓紧学点东西,好凑点字数,汗。。。 为啥学这个内容,因为找内容的时候翻csdn翻到一个自动抢红包的,就是用的这个技术,前面实验挺好&a…

React Native 三端同构在雪球的实践

随着移动互联网的迅猛发展,目前市面上「端」的形态多种多样,iOS、Android 、H5、微信小程序等各种端大行其道,同一个业务需求往往又需要在多端上去实现,针对不同端去编写多套代码的成本显然非常高。雪球大前端团队将今年在跨端能力…

提取DC综合report_constrain all violator中big neg slack

问题描述 在综合前几版中&#xff0c;通过report_constrain -all_violator命令到得到的违反数量非常多&#xff0c;但暂时只关注比较大的setup/hold违例。 &#xff08;1&#xff09;我们希望提取 < -1.0的违例 &#xff08;2&#xff09;需要把多行合并到一行。 &#xf…

学习python,我使用代码悄悄集齐了五福~哎嘿嘿

啊哈哈哈哈&#xff0c;我又又又来啦 这不是快春节了吗&#xff0c;支付宝等一些集五福活动又又又又一次的到来 今天呢&#xff0c;写一个啥呀我也不晓得&#xff0c;啊哈哈哈哈哈 今天写一个%90会出敬业福哦&#xff0c;啊哈哈哈哈 1.制作文字福 这个其实挺“简单”的&…

如何计算单元测试的覆盖率

一、概念 单元测试的覆盖率有&#xff1a;语句覆盖率&#xff08;即行覆盖率&#xff09;、分支覆盖率、条件覆盖率、分支条件覆盖率、路径覆盖率等。 语句覆盖率 所谓语句就是那些非分支、非判断的语句。 计算公式&#xff1a;程序执行到的语句总数 / 全部语句的总数 分支覆…

C语言程序设计易混、易错知识点(中篇)

注&#xff1a;个别题目未给ABCD&#xff0c;只需要了解知识点即可&#xff1b;另外排版可能有点乱&#xff0c;望知悉 在printf中的%作为转义符&#xff0c;两个%才相当于1个% free掉一个指针后&#xff0c;指针的值是不会自动置为NULL的&#xff0c;当然其指向的内存已经被释…

C语言从入门到放弃——字符串和内存操作函数

字符串&#xff0c;是一种由双引号引起的一整串字符&#xff0c;在C语言中&#xff0c;字符串是没有类型的&#xff0c;通常我们将字符串放在字符数组当中&#xff0c;同时&#xff0c;我们对于字符串的操作是很频繁的&#xff0c;因为对于字符串的操作频繁&#xff0c;所以C语…

为什么需要预选器?

无论是采用模拟IF处理的传统频谱仪&#xff0c;还是采用数字IF处理的现代频谱仪&#xff0c;都是扫频式架构&#xff0c;通过第一级本振(LO)的调谐实现射频的扫频测试。熟悉频谱仪架构的朋友都了解&#xff0c;在第一级混频器之前都会存在一个预选器&#xff0c;如图1所示&…

点成分享|器官芯片——小白鼠的拯救者?

在新药研发的漫长过程中&#xff0c;实验动物模型是药物从临床前试验阶段进入到临床试验阶段的金标准。实验动物模型有助于人们了解疾病的起源、病理生理特征、疾病机制、识别药物靶标、评估新药物的疗效和人体毒性以及进行药代动力学评价等。常用的实验动物模型包括小鼠、大鼠…

黑马学ElasticSearch(七)

目录&#xff1a; &#xff08;1&#xff09;RestClient查询文档-快速入门 &#xff08;2&#xff09;RestClient查询文档-match、term、range、bool查询 &#xff08;3&#xff09;RestClient查询文档-排序和分页 &#xff08;4&#xff09;RestClient查询文档-高亮显示 &…

git版本回退(git reset、git revert、git stash)

文章目录回退的两种情况1.已 commit&#xff0c;未push到远程仓库。git reset --soft &#xff08;撤销commit&#xff09;git commit --amend&#xff08;修改commit 提交的内容&#xff09;git reset --mixed&#xff08;撤销 commit 和 add 两个动作&#xff09;2.已 commit…

联合证券|左手消费,右手TMT!超270只股票新年获“买入”“推荐”

2023年开年A股商场交投继续火热&#xff0c;出资组织在活跃呼吁出资者布局的一起&#xff0c;自己又更加看好哪些标的和赛道&#xff1f; Wind数据显现&#xff0c;2023年头&#xff0c;券商关于大消费、TMT等方向装备价值更为喜爱&#xff0c;到1月10日&#xff0c;给予“买入…

LOAM、LEGO-LOAM与LIO-SAM的知识总结

文章目录LOAM、LEGO-LOAM与LIO-SAM的知识总结1.概要2.传感器信息读取3.数据的预处理4.激光雷达里程计4.1特征点提取4.2特征点关联匹配4.2.1 标签匹配4.2.2 两步LM优化4.2.3 LIO-SAM优化4.2.3.1 IMU预积分4.2.3.2 关键帧的引入4.2.3.3 因子图4.2.3.4 GPS因子4.2.3.5 回环因子5. …

代码随想录算法训练营第十五天字符串 java : 层序遍历 226.翻转二叉树 101. 对称二叉树

文章目录前言Leetcode 102 二叉树的层序遍历题目讲解Leetcode 226.翻转二叉树题目讲解Leetcode 101. 对称二叉树题目讲解递归法总结前言 递归三定律 确定参数和返回值确认终止条件确认单层递归的逻辑 Leetcode 102 二叉树的层序遍历 题目讲解 /*** Definition for a binar…

大批量数据需要导出导入时,使用mysql 快速导出和导入 csv

使用MYSQL命令行模式 导出into outfile 导入load data导出 into outfile&#xff1a;mysql> select * from cdkeyduihuan into outfile d:/cdk.csv FIELDS TERMINATED BY ,;Query OK, 1049990 rows affected (1.16 sec)d:/cdk.csv 导出数据保持的文件目录。FIELDS TERMINATE…

windows ngnix 配置https

因为客户需求&#xff0c;需要把原来的http换成https&#xff0c;还不能影像原来http的访问。 看了许多网上的资料&#xff0c;经过实践。我总结下相关步骤及怎么配置的。 第一步&#xff0c;把http换成https这里需要ssl证书 ssl证书生成&#xff0c;我接触的有2种免费方式。…

Kettle的安装以及简单使用

Kettle是一款开源免费的ETL工具&#xff0c;ETL全称 Extract - Transform - Load 意味着数据抽取&#xff0c;转换&#xff0c;装载的过程。 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程&#xff0c;目的是将企业中的分散、零乱、标准不统一的数据整合到…

二叉树19:最大二叉树

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;654. 最大二叉树 题目&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地…