渲染器是3D引擎的核心部分,它完成将3D物体绘制到屏幕上的任务。渲染器分为硬件渲染器和软件渲染器:
1.硬件渲染器通常基于底层图形api(应用程序接口)构建,采用适合硬件架构的光栅化方法进行渲染。图形api负责与硬件的通信,常用的图形api包括directx和opengl。 opengl api通过opengl图形库来使用3D硬件,多数3D卡支持这种方法。而directx api使用微软的directx库——归并到 Windows操作系统中。在老的3D卡上面,opengl一般绘制速度较快一些,而在现代的3D卡上面,directx表现则更加出色。现在的opengl版本只有一个,而directx版本有很多。directx通过提供更新版本的方式来扩展功能,而opengl通过一个通用的扩展(opengl ext)来对功能进行扩展。
2.软件渲染器则纯粹利用cpu的能力进行计算,通常采用光线追踪的方法进行渲染。软件渲染器没有统一的应用程序标准,但是有很多通用的渲染算法,如光子映射,蒙特卡洛,辐射度等等。
3.硬件渲染器和软件渲染器应用领域不同:硬件渲染器主要用于实时渲染,比如游戏和虚拟现实。而软件主要用于离线渲染,比如效果图和影视级、产品级渲染。这主要是因为硬件渲染器的速度快但是灵活度不足,而软件渲染器虽然速度不够理想但是可以使用非常复杂的渲染算法,达到相片级的真实度和效果。