简述

我把现在的Web前端页面动效分为四个等级
     1: 简单的css,js,jquery的旋转, 缩放, 位移, 淡入淡出, 拉伸, 渐变等效果;
     2: 通过Ae或者其他软件导出的序列帧(或者图片),和一些简单的特效js(大多是canvas);
     3: 通过大量数据(json)来定义的动作,包含(人物,地图等,可包含简单的3d模型,因为一些3d模型也是由json数据组成),
          相当复杂的css(如果css相当优秀可直接无视这篇文章);
     4: 通过大量数据(json)来定义的动作,包含(人物,地图等),美轮美奂项目加分;
     5: 由3d软件导出的模型,定义了动作,再加上前端的配合进行展示.
     不得不说,前端永远是寄人篱下的,如果你遇到一个不配合的ui,或者把ui妹子变成了自己的女朋友(脾气不好的ui),那前端的地位是相当凄惨。众所周知一个页面如果想要动效好看,那必须得配上一个漂亮的ui妹子。
     然后当你终于自学完成了ui设计,网页设计以及一大推ui软件的操作(恭喜你站在了前端顶点),那么,恰巧你们公司想要更好看更逼真的项目,你把目光投向了3d,那么众所周知,你又寄人篱下在了3d建模师的手里。(想想都恐怖,兄弟门不要学前端)

THREE.js简述

three.js完全开源
在githup.com里直接搜就能搜到,完全开源,可以直接下载全部案例,这是three.js的目录

build是存放three.js的地方,但是没有其他的配置文件(如导入3d模型的js)
examples众所周知是例子,里面存放了许许多多three.js的案例,看到你头皮发麻(头发兄,你还好吗?)
小到点,线,面,大到3d建筑模型.
docs存放文档的地方,许多的api接口

浅到十万个点,线,面加载起来不会卡顿,深到ammo.wasm.js物理引擎(物理引擎啊,游戏里面的物理引擎有木有,这学完还不直接封神?没学之前我也是这么想的.)

学习路线

一, 学习场景,摄像机,灯光
     这三样东西是所有3d模型的基础, three基于webgl直接把这些进行了封装,非常一样,一学就废,非常简单.
     二, 点, 线, 面
     这里有一个坑, three.js为了方便学习和使用, 直接提供了大量的物理模型, 正方体,圆柱, 圆锥等;如果有很深的代码理解或者几何逻辑, 那直接使用即可,如果没有建议还是从点线面开始学习的好,打下结实的基础永远不亏,这波稳赚的好吧
     三, 然后学一些比较特殊的动效(烟雾, 火焰, 波澜, 粒子特效)
     这些东西就有些难度了, 但是可以取巧,以上的几个动效, 其实都是利用图片堆叠出来的, 但是一般人真看不出来,这个动效的逼真程度和效果就主要看ui妹子的漂亮程度和你的编码能力.
     四, 动作的学习
     这里就要学习很多的动作了, 先说最基础的老三样缩放, 旋转, 位移,这个基本一学就废,非常简单,其中包括摄像机和物体模型的,利用摄像机的位移和物体的旋转还是能做出许多好看的动效…
     然后复杂的形变,这个比较难了,是真的一学就废,反正我没学会.心疼头发兄.
     四, 学习3d建模
     这是必然的一些效果, 说实话,人们对于3d的幻想就目前来说已经很离谱了,光2d就有’五彩斑斓的黑’,那3d的复杂程度可想而知.劝君慎重.
     如果真的要入坑,这里推荐Blender建模软件, 学习此建模软件可以去小破站看黑铁骑士blender教程和国外大佬的s操作.
     五, 学习three.js提供的接口
     3d建模会了, 就可以学习利用three进行3d建模, 当你学会了3d建模你会发现, 其实那一个个的模型就是一大串一大串的代码, 不难, 但是"大"啊, 而且细节贼多"我方3的建模师已哭晕在厕所", 虽然利用three.js提供的接口建模会简单, 但还是要心疼下头发,
     three.js是很强大滴, 不光提供了建模用的接口, 还配合js的底层提供了一些奇奇怪怪但很有用的接口, 这个估计算是three.js的核心了吧.
     六, 学习物理引擎
     当你把之前的东西都学会了, 你会觉得自己做的模型怎么都不够逼真, 这里我要劝各位大佬一句"你做的效果已经很好了", 不要一味的调细节, 细节这东西程序员调到死都调不完, 必须得继续往下走.直接学物理引擎.利用风力, 重力等等因素,能直接让模型效果升级.这波绝对不亏.

注意事项

1, 直接用three官方提供的模式来引入js, 因为他的插件实在太多, 如果用script标签一个个引入会出很多的问题,到时候调试又费时间, 还不如直接用官网

2,导入模型之后不展示, 或者一片黑这里提供三种解决办法
      , 加灯光(这里提供一个环境光)

light = new THREE.AmbientLight( 0x404040 );
scene.add( light );

, 改变一下引入的hdr文件, 或者直接不展示hdr直接引用它的光效

new RGBELoader().setDataType( THREE.UnsignedByteType ).setPath( '/web/guiZhou/model/hdr/' ).load( '/piece-nb-47.hdr', function ( texture ) {const envMap = pmremGenerator.fromEquirectangular( texture ).texture;scene.background = "gray";// 颜色可改变, 虽然颜色改变, 但反光材质还是会反光到背景的hdrscene.environment = envMap;

, 模型自发光

child.material.emissive =  child.material.color;
child.material.emissiveMap = child.material.map ;

提供一些有帮助的代码

1, 展示xyz轴(这个相当有用, 当你找不见模型的时候)

var axisHelper = new THREE.AxisHelper(1000);
]scene.add(axisHelper)

2, 网格地面(适合新手)

var geometry = new THREE.Geometry();
geometry.vertices.push( new THREE.Vector3( - 500, 0, 0 ) );
geometry.vertices.push( new THREE.Vector3( 500, 0, 0 ) );
for ( var i = 0; i <= 20; i ++ ) {var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0xffffff, opacity: 0.2 } ) );line.position.z = ( i * 50 ) - 500;scene.add( line );var line = new THREE.Line( geometry, new THREE.LineBasicMaterial( { color: 0xffffff, opacity: 0.2 } ) );line.position.x = ( i * 50 ) - 500;line.rotation.y = 90 * Math.PI / 180;scene.add( line );
}

之后会发布一些three.js的具体代码, 还请继续观看, 可以的话希望一键三连.

three.js汇总,老牌Web 3d展示Js相关推荐

  1. css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...

    纯JS实现旋转图片3D展示效果 CSS: #show{position:relative;margin:20px auto;width:800px;} .item{position:absolute; ...

  2. 多比Web 3D展示(3D机房/3D监控)中间件多比Web 3D展示(3D机房/3D监控)中间件免费下载购买地址...

    多比3D是实现3D场景搭建的软件开发包,可以创建广泛的3D应用,适用于高端制造.能源.国防军工.教育科研.城市规划及建筑环艺.生物医学等领域的虚拟仿真,应用于虚拟展示.虚拟设计.方案评审.虚拟装配.虚 ...

  3. Three.js实现汽车3D展示/开关门/变色/运动/视角切换/波动热点/汽车模型

    1,介绍 该示例使用Three.js库 r141版本. 主要实现功能:使用Three.js实现引入汽车模型,汽车3D展示,开门关门动画,运动,变色,视角切换,显示波动热点标签. 效果图如下: 参考案例 ...

  4. node.js搭建简易Web服务器

    node.js搭建简易Web服务器 node.js简介 Node.js 是一个基于V8引擎的JavaScript 运行环境. V8 是为Google Chrome 提供支持的 JavaScript 引 ...

  5. NFT 数字藏品 3D 展示方案(obj、mtl、png)引用 three.js

      Three.js是基于原生WebGL封装运行的三维引擎,在所有WebGL引擎中,Three.js是国内文资料最多.使用最广泛的三维引擎. 既然Threejs是一款WebGL三维引擎,那么它可以用来 ...

  6. web网页设计与制作-html+css+js实现企业官网展示

    web网页设计与制作-html+css+js实现企业官网展示 主要使用原生HTML.CSS.JavaScript编写的一个静态企业官网展示类型的网站. 文件目录 assets:静态资源目录: favi ...

  7. 使用pdf.js在web页面展示pdf文件

    最近弄的项目中需要在线展示PDF文件,以前用的是Adobe PDF阅读器直接在浏览器端打开的,这要求客户端必须安装这个软件,若是没有安装就不能在线预览了.为了解决这个问题,最终决定用pdf.js来实现 ...

  8. 用three.js在网页实现3D模型的展示

    作者 | 林智超__ 来源 | https://www.jianshu.com/p/0798a76121af 最近在做一个在网页端展示3D模型的项目,现在简单介绍一下怎么实现功能. 首先,下载thre ...

  9. Three 之 three.js (webgl)基础 第一个入门 Web 3D 场景

    Three 之 three.js (webgl)基础 第一个入门 Web 3D 场景 目录 Three 之 three.js (webgl)基础 第一个入门 Web 3D 场景 一.简单介绍 二.Th ...

最新文章

  1. session,cookie,sessionStorage,localStorage的区别及应用场景
  2. 使用metasploit中Evasion模块
  3. 大脑使用交叉存储,来区分现在和过去
  4. 关闭oracle自动统计,禁用oracle 11g 的统计数据自动功能
  5. SpringBoot-@RequestParam
  6. 匆匆那年之Java程序员之最近两周的面试总结:
  7. AngularJs学习笔记--Modules
  8. 【训练计划】ACM题集以及各种总结大全
  9. 异步任务结果显示策略
  10. BarTender的集成小结
  11. 进阶~Qt程序启动画面
  12. 谷歌Chrome浏览器开发者工具教程—基础功能篇
  13. 05月08日 学习列表
  14. 智能优化算法:供需优化算法-附代码
  15. 一次学生时代的经历,利用Python在机房杀红蜘蛛,脱离老师控制!
  16. 进化算法求解TSP问题
  17. ARTS-24 字符串互异
  18. FGFA(Flow-Guided Feature Aggregation for Video Object Detection)论文详读
  19. 十二烷基硫酸钠(SDS)将Fe3O4磁性纳米粒子定量地修饰到多壁碳纳米管|化学试剂
  20. 哪个品牌台灯护眼效果好?分享被央视315表扬的护眼灯

热门文章

  1. 百钱百鸡(Java)
  2. 【无需服务器】工具箱组合微信带流量主超多功能小程序源码
  3. 携职教育:2022年第2期广东省企业人力资源管理师职业技能等级认定工作的通知
  4. 现代C++新特性 非静态数据成员默认初始化
  5. 课题五 数控镗铣削加工工艺分析
  6. CentOS7.3源码编译MYSQL5.7
  7. C语言 输出二维数组任一行任一列元素的值
  8. PADS-微处理器、USB转UART芯片、MINI-USB PCB封装设计
  9. win10饥荒服务器未响应,win10系统电脑运行饥荒闪退的解决方法
  10. 计算机基础演示文稿真题,2018年4月统考计算机应用基础复习题--演示文稿.doc