概念
三维渲染引擎,即将现实中各种物质以各类曲线或多边形的形式抽象出来,再通过计算机输出最终图像的算法实现的集合。
分类
三维渲染引擎主要分为:实时三维渲染引擎和离线三维渲染引擎。
实时三维渲染引擎主要用于游戏中三维画面的生成,而离线三维渲染引擎用于视频中三维画面的生成。
对物质的抽象方式
三维渲染引擎对物质的抽象主要有多边形和NURBS曲线(非均匀有理B样条)两种。
实时引擎用多边形抽象方式,因为任何多边形都能最终被分解为容易计算和表示的三角形。
离线引擎中用NURBS曲线抽象方式,因为NURBS曲线相较于多边形能提供更好的视觉效果,灵活性较高。
基本功能
三维渲染引擎的基本功能一般包括:
1)对三维场景的数据管理。这些功能包括:场景管理,对象系统,与外部工具的交互,底层数据的组织表示。其具体任务是组织三维世界中各种不同物体之间多种多样的关系,同时把这些关系与三维渲染引擎的功能关联起来。
2)功能合理、强大的渲染器。图形引擎的渲染能力体现设计多方面。
基本框架
其中,
应用程序:不同的应用程序拥有的部分可能不同,可能对个别功能进行详细的拆分,也可能合并了一些功能。
物理引擎:该模块主要处理像碰撞之类的物理运算
资源管理器:资源是一个完整的数据几何,比如Texture、Model、Mesh等都是资源。其作用就是管理引擎中的全部资源,并实现对它们的创建、删除以及查询等操作。
数学引擎:三维渲染中需要大量的数据运算,例如向量代数、矩阵理论,由该模块来支持。将数学运算独立成一个模块能够保证数学运算快速的处理,同时也方便程序的编写。
图形支持:该模块负责实现引擎图形渲染的功能。同时,当引擎需要调用不同的图形库是,噶模块为上层开发提供统一的调用接口,保证上层由通用的开发模式。
算法库:对三维世界中的各种渲染处理提供算法支持。例如光晕效果、水面效果等。
配置管理:针对及其硬件条件的不同,会有不同的操作流程以及渲染质量,所以会产生许多配置文件。对这些配置文件统一的管理,来方便引擎的处理,是配置管理器的责任。
IO处理:在大多数的三维渲染引擎中,都有交互式的设计,程序需要输入设备输入的指令进行相应。采用独立的IO模块来相应这些输入,可以保证引擎处理的更快速、有效。
时间管理:计时器有多个使用地方,例如FPS的控制。一个完整、高效的时间管理器更有利于控制程序的运行。
图形及操作系统支持部分:该模块是属于引擎中底层,其余八个模块无层次区分,可认为同属一层。该模块主要负责与操作系统的接口问题,保证对三维渲染引擎的上层以及应用程序提供统一的调用接口。
操作系统:如Window和Linux。
计算机硬件:包括各种机器硬件。除了CPU外,对于三维渲染引擎来说GPU是最重要的,GPU的好坏直接决定了图形最终的渲染质量。
本文参考文献《三维场景的渲染技术研究与实现》