three-learning

自己关于three.js的入门学习整理, 项目地址: https://winterzhao.github.io/three-example

Three.js 里面的基础概念包括 场景(舞台scene)、照相机(camera)、光源(light)、物体(object)等几部分组成。整个渲染思路理解: 我们将物体”画”在场景里,使用光源改变它的既视效果,将调整好的”画面”排成照片,传给渲染器。渲染器和DOM元素绑定,将收到的图片渲染到网页上。这一流程不停循环,就用到了动画。

重要: 所有颜色都统一使用0xFF0000,这种十六进制大写补全6位的格式。

目录结构

理论

opengl

opengl: Open Graphics Library, 是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口,是硬件(显卡)对外提供绘制从简单的图形比特到复杂的三维景象的一系列统一的、普遍可用的规范API(标明其所需要的能力)。硬件厂商依赖于规范开发实现对应的功能能力,而上层应用则直接调用对应的接口API实现应用。

webgl

一种3D绘图网络标准,它使用HTML5Canvas并允许利用文档对象模型接口,允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染。

three.js

three.js是JavaScript编写的WebGL第三方库,用以实现webGl所支持的2D、3D绘图能力。

coordinate-system

坐标系: three.js默认使用的是右手坐标系,需要重点记住x,y,z轴的方向 [重要] 左手坐标系和右手坐标系

reflect

RGB光的反射原理和减色法: 减色法是物体表面反射光线的原理, 减色法能让我们看见周围物体的色彩,譬如:一个绿球,在白光中出现绿色是因为此球吸收红、蓝波长,而反射出绿色。当然,若光源中只发出红、蓝光(或是品红光),此球将出现黑色,因为绿球上没有绿波长可反射出来。

当没有任何光源的时候,无论物体的本来颜色是什么,显示在屏幕上的颜色永远是黑色。在场景中没有任何光源的情况下,物体不能反射光源到人的眼里,所以物体应该是黑色的,即使物体的本来颜色是红色的,这与物体的材质颜色几乎没有关系。

反射光计算:

animation
renderer

渲染器:

scene

场景/舞台:

camera

照相机:

light

光源: 光源照射在物体上的反射效果及阴影效果对物体的展现有着极好的效果,因为有了光,世界变得丰富起来。

geometry

几何形状:

material

材质/纹理:

mesh

物体: 物体由几何形状(或者加载物)与材质/纹理决定的;集合形状/加载物决定物体的形状,材质、纹理与光照决定物体的视觉效果。

state

性能监控器(stats):

dat.gui

轻量级的icon形用户界面框架,可以通过icon用户界面修改改变对应函数的熟悉,动态看到效果. 使用教程

tween.js

tween.js动画曲线

loaders

位于loaders下

demo

  1. 单例模式基础模板和说明: 介绍场景(舞台scene)、照相机(camera)、光源(light)、物体(object)基本概念 [done]
  2. 绘制多种几何图形: 介绍几种常见几何体的画法 [done]
  3. 动画
  4. 加载3d模型 [done]
  5. dat.gui使用; [done]
  6. 事件触发与碰撞检测
  7. 与vr结合;
  8. 与音频结合 [done]

example

resource

  1. three.js官网
  2. three.js 入门指南
  3. Threejs基础教程
  4. Three.js事件控制
  5. 3D 物理世界 - Three.js 与 Cannon.js 介绍与使用