论文部分内容阅读
如今,在三维应用(特别是电脑游戏)的推动下,实时三维图形技术的发展速度非常快,对计算机图形学相关领域产生了很大影响。但是,随着模型和场景复杂程度的急剧增长,实时性的要求也越来越高,依然是很多应用系统(虚拟现实技术、可视化技术等)的主要瓶颈所在。而中央处理器在处理三维数据上又显得力不从心,计算机图形硬件的出现为解决这一问题提出了一条现实的解决途径。
近年来,随着可编程图形硬件时代的到来,着色器替代了传统的固定渲染管线以实现更加逼真的图像效果。高级着色语言的兴起,给着色器编写带来了方便,然而编写着色器依然带来一些独有的挑战。就像我们学习任何编程语言一样,我们总是希望提供一个可视化的开发环境,让学习编程语言的初学者能把主要精力花在语言本身的学习上,而不是一些语言之外的编程细节。本文的实现目标就是构建一款界面简洁、易于操作的OpenGL着色语言编辑环境,帮助开发者简化着色器编写,迅速构建一个参数化的着色器,并考虑其复用性和扩展性。
本文主要工作如下:
1.对OpenGL着色语言以及传统的开发模式进行介绍,并结合本文作者在实际开发学习过程中遇到的实际问题,提出了OpenGL着色器编辑环境应该具备的功能以及各功能模块的具体划分。
2.设计并实现了一款OpenGL着色器编辑环境。该系统使用MFC最新类库Visual C++2008 Feature Pack构建简洁友好、易用的用户界面,利用OSG对OpenGL以及OpenGL着色语言良好的功能封装实现对着色器源代码、几何对象、一致变量、纹理等资源的管理,并借助OSG本身在场景管理及实时渲染上的优势来构建自定义的实时渲染窗口。
3.本文实现的OpenGL着色器编辑环境实现了对新一代图形硬件中最新引入的几何着色器的实时编辑操作,而现有的着色器开发工具鲜有支持对几何着色器开发的应用设计。本文通过具体实例展示了几何着色器的功能及应用前景。
本文实现的OpenGL着色器编辑环境界面简洁、直观;实现了语法上色、关键字大小写识别的着色器代码编辑窗口;支持多达几十种的3D模型、2D图形格式的导入导出操作;支持对OpenGL着色语言中一致变量、纹理的GUI编辑操作;同时提供了一个更具交互性的渲染窗口方便开发者进行实时观察着色效果和调试工作。