threejs核心概念
场景、照相机、对象、光、渲染器等
1.1.场景Scene
场景是所有物体的容器,对应着显示生活中的三维世界,所有的可视化对象级相关的动作均发生在场景中。
1.2.照相机Camera
照相机是三维世界中的观察者,类似与眼睛。为了观察这个世界,需要描述空间中的位置,threejs采用右手坐标系
threejs的照相机有两种,分别是正交投影相机THREE.OrthographicCamera和透视投影相机THREE.PerspectiveCamera
正交投影与透视投影的区别上图,物体发出的平行光投射到屏幕上,远近的方块大小都是一样的;透视投影,近大远小,符合显示中看东西的逻辑。
1.3 场景对象 Object
Mesh(geometry,material);geometry-几何形状,通过存储模型用到的点集合和点所组成的空间关系(三角面点组成)来描述物体的形状。可以通过自定义点集合的方式来构造对象,对于复杂的物体可以外部导出模型的方式。
Material - 材质 材质可是视为描述除了形状以外的外表看见属性,例如色彩、纹理、光滑度、透明度、反射率、折射率、发光度等。
材质、纹理、贴图的关系
材质 (Material)包含贴图 (Map),贴图包含纹理 (Texture)。
纹理(Texture)是最基本的数据输入单位。
光 Light
渲染对象需要光,光影效果是让画面丰富的重要因素,Threejs提供了环境光AmbientLight、点光源PointLight、聚光灯SpotLight、方向光DirectionalLight、半球光HemisphereLight等多种光源。在Scene场景中对应位置添加对应的光源即可实现光效果。
渲染器-Renderer
该对象负责将物体渲染到场景中。