1.Open GL的工作流程
整个Open GL的基本工作流程如图7-1所示。
图7-1 Open GL基本工作流程
其中几何顶点数据包括模型的顶点集、线集、多边形集,这些数据经过流程图的上部,包括运算器、逐个顶点操作等;图像数据包括像素集、影像集、位图集等,图像像素数据的处理方式与几何顶点数据的处理方式是不同的,但它们都经过光栅化、逐个片元(Fragment)处理直至把最后的光栅数据写入帧缓冲器。在Open GL中的所有数据包括几何顶点数据和像素数据都可以被存储在显示列表中或者立即可以得到处理。Open GL中,显示列表技术是一项重要的技术。
Open GL要求把所有的几何图形单元都用顶点来描述,这样运算器和逐个顶点计算操作都可以针对每个顶点进行计算和操作,然后进行光栅化形成图形碎片;对于像素数据,像素操作结果被存储在纹理组装用的内存中,再像几何顶点操作一样光栅化形成图形片元。
整个流程操作的最后,图形片元都要进行一系列的逐个片元操作,这样最后的像素值送入帧缓冲器实现图形的显示。
2.Windows下Open GL的运行机制
Open GL的作用机制是客户(Client)/服务器(Sever)机制,即客户(用Open GL绘制景物的应用程序)向服务器(即Open GL内核)发布Open GL命令,服务器则解释这些命令。大多数情况下,客户和服务器在同一机器上运行。正是Open-GL的这种客户/服务器机制,Open-GL可以十分方便地在网络环境下使用。因此Windows下的Open GL是网络透明的。
正像Windows的图形设备接口(GDI)把图形函数库封装在一个动态链接库(Windows下的GDI32.DLL)内一样,Open GL图形库也被封装在一个动态链接库内(OPENGL32.DLL)。受客户应用程序调用的Open GL函数都先在OPENGL32.DLL中处理,然后传给服务器WINSRV.DLL。Open GL的命令再次得到处理并且直接传给Win32的设备驱动接口DDI,这样就把经过处理的图形命令送给视频显示驱动程序。图7-2简要说明了这一过程。
图7-2 Open GL在Windows下的运行机制
在三维图形加速卡的GLINT图形加速芯片的加速支持下,两个附加的驱动程序被加入这个过程中(图7-3)。一个Open GL可安装客户驱动程序(Installable Client Driver,ICD)被加在客户这一边,一个硬件指定DDI(hardware-specific DDI)被加在服务器这边,这个驱动程序与Wind32DDI是同一级别的。
图7-3 在三维图形加速下Open GL运行机制
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。