1.什么是three.js?
Three.js 是一个 3D JavaScript 库。Three.js 封装了底层的图形接口,使得程序员能够在无需掌握繁冗的图形学知识的情况下,
也能用简单的代码实现三维场景的渲染。
2.渲染器(renderer)
渲染器(Renderer):渲染器是3D引擎的核心部分,它完成将3D物体绘制到屏幕上的任务。渲染器分为硬件渲染器和软件渲染器组成。
a).软件渲染器通常基于底层图形API(应用程序接口)构建,采用适合硬件架构的光栅化方法进行渲染。图形API负责与硬件的通信,常用的图形API包括DirectX和OpenGL。 OpenGL API通过OpenGL图形库来使用3D硬件,多数3D卡支持这种方法。而DirectX API 使用微软的DirectX库——归并到 Windows操作系统中。在老的3D卡上面,OpenGL一般绘制速度较快一些,而在现代的3D卡上面,DirectX表现则更加出色。现在的OpenGL版本只有一个,而DirectX版本有很多。DirectX通过提供更新版本的方式来扩展功能 OpenGL通过一个通用的扩展(OpenGL Ext)来对功能进行扩展。
b).软件渲染器则纯粹利用CPU的能力进行计算,通常采用光线追踪的方法进行渲染。软件渲染器没有统一的应用程序标准,但是有很多通用的渲染算法,如光子映射,蒙特卡洛,辐射度等等。
c).硬件渲染器和软件渲染器应用领域不同:硬件渲染器主要用于实时渲染,比如游戏和虚拟现实。而软件主要用于离线渲染,比如效果图和影视级、产品级渲染。这主要是因为硬件渲染器的速度快但是灵活度不足,而软件渲染器虽然速度不够理想但是可以使用非常复 杂的渲染算法,达到相片级的真实度和效果。
3.场景(scene)
指戏剧、电影中的场面。泛指情景。热火朝天的劳动场景
4.照相机(camera)
使用Three.js创建的场景是三维的,而通常情况下显示屏是二维的,那么三维的场景如何显示到二维的显示屏上呢?照相机就是这样一个抽象,它定义了三维空间到二维屏幕的投影方式,用“照相机”这样一个类比,可以使我们直观地理解这一投影方式。而针对投影方式的不同,照相机又分为正交投影照相机与透视投影照相机。使用透视投影照相机获得的结果是类似人眼在真实世界中看到的有“近大远小”的效果;而使用正交投影照相机获得的结果就像我们在数学几何学课上老师教我们画的效果,对于在三维空间内平行的线,投影到二维空间中也一定是平行的。一般说来,对于制图、建模软件通常使用正交投影,这样不会因为投影而改变物体比例;而对于其他大多数应用,通常使用透视投影,因为这更接近人眼的观察效果。当然,照相机的选择并没有对错之分,你可以更具应用的特性,选择一个效果更佳的照相机。