论文部分内容阅读
延迟绘制[1]是近年来随着硬件和软件的发展而逐渐流行起来的一种绘制方法。由于延迟绘制带来的巨大优越性,目前,延迟绘制思想已经是游戏引擎设计的主流思想。基于延迟绘制的各种算法的研究也随着延迟绘制思想的流行而成为研究热点。当前,人们已经基于延迟绘制的思想开发了各种各样的游戏引擎。但是,游戏引擎大多在设计和实现上非常复杂,通常包括了大量复杂的子系统和复杂的工具链。并且游戏引擎通常是闭源的,用户只能使用引擎已有的功能,无法对游戏引擎进行扩展。还有,游戏引擎通常是在已有的前向绘制管线的基础上添加对延迟绘制的支持,并不是纯粹的延迟绘制。所以使用游戏引擎来研究延迟绘制的应用和试验新的基于延迟绘制的算法是非常困难的。 基于上述的原因,本文设计和实现了一个主要应用于算法研究的基于延迟绘制思想的绘制框架。在我们的框架中,我们仅仅提供了场景管理子系统和绘制子系统,减少了不必要的复杂性,降低了使用者的学习成本。框架提供了实现场景绘制的完备功能。我们设计了自己的着色器参数管理机制和参数传递机制。用户可以很容易地在着色器程序中获取外部应用程序的场景数据。我们提供了易于使用的场景描述文件和效果描述文件格式。场景描述文件中可以直接引用常见的OBJ模型、MD2模型和MD5模型,而不需要进行格式的转换。我们提供了效果管理器,用户可以对效果管理器进行任意的扩展。效果描述文件描述了用户所要实现的效果。我们的框架还同时支持跨平台,用户可以在PC和移动平台上面使用本框架来研究和试验延迟绘制相关的算法。同时,我们的框架中还提供了用户交互的功能。 最后,我们展示了在我们的框架上实现的基本绘制效果,包括全屏抗锯齿(采用FXAA算法)、光影效果、屏幕空间环境光遮蔽效果(SSAO)和景深效果(DOF)。