论文部分内容阅读
OpenGL 3.0代号为“Mount Evans”,它在OpenGL2.0的基础上支持很多新特性,如优化硬件可编程能力、顶点数据流动传输等,并加入了与微软的DirectX 10相似的功能,如增加几何着色渲染、整数指令集等……
优化硬件可编程能力
可编程渲染器可以带来许多过去用固定渲染器无法得到的复杂图像效果和三维环境的真实感。在有大量水滴、烟雾以及动态阴影的环境画面中,可编程渲染器将会起到重要的作用。同时,图形硬件的可编程能力也扩展了硬件加速的直接绘制算法,提高了它的交互性能和图像质量。OpenGL 3.0在前作的基础上针对最新的GPU技术对这项功能进行了增强和优化。
顶点数据流传输
在OpenGL 3.0中,顶点数据被分割成不同比特率的数据流。由于顶点数据改用数据流的形式传送,内部顶点数据传输总线也可以支持很大的突发数据传输速率。这样显示芯片可以更从容地处理那些突发的大规模场景特效(例如下雨,爆炸,粒子喷发等等)。同时,OpenGL 3.0在顶点数据流的传输过程中也扩充了多种数据类型,可以使游戏开发人员通过不同的形式更详细地对一个顶点进行描述。
同时,一个经过运算之后的顶点缓存数据可以反复再进行若干次的循环调用,这样就可以通过一个相同物体的基本范例创造超过驱动程序限制的对象。例如,游戏开发人员若要创造一个森林的场景,可以首先使用低比率的数据流构建一棵树的基本框架。然后再用高比率的数据流包含每一棵真实的树木特征模型,这包括树叶的模型、树枝的模型、树干的模型等等。将整个一棵树定义成一个元素。最后再使用基于低比率数据流中的元素ID,循环处理生成整个广茂的森林。
几何着色渲染
像DirectX 10一样,OpenGL 3.0这次也引入了几何着色渲染功能,它可以为3D场景创建几何对象,利用它来生成多种效果。几何着色渲染可完成阴影锥、毛皮、鱼鳍、程序几何、细节、位移效果和计划植被等等细致图形渲染。由于着色。在GPU上运行,因此没有占用CPU资源,从而将CPU资源释放出来以供其他任务使用。有效提升模板阴影特效、动态立方体贴图和位移贴图的执行效率,亦可将多余的顶点数据除去,增加显示核心的运算效率。
整数指令集
OpenGL 3.0首次引入了整数指令集功能。我们知道,3D图形运算是基于大量浮点指令的。浮点是不精确数据类型,当寻值数据与纹理数据不符合时,可以采用近似值和多个数据计算的内插值代替,对图形最终画面没有影响,速度也比整数指令集要快。因此,GPU的基础恰好与CPU相反,是以浮点指令而不是整数指令集为主。此前,着色器处理的所有东西都需要依靠浮点运算完成。对大多数的图像处理来说,这种处理方式是没有问题的,但进行非内插式内存搜索时(比如对顶点缓存器进行定位索引时)这种浮点运算处理方式就存在很大的问题。而openGL 3.0中引入整数运算将有许多好处,比如进行动态/静态分支预测、顶点缓存定位、通用内存寻址方面,浮点是无法进行精确计算的,而整数指令集则不存在这样的问题。
总的来说,OpenGL 3.0是在OpenGL ZX的基础上进行了巨大改进,并为了顺应未来的发展趋势,引入了DirectX 10的特色功能。这一方面是Khronos Group接手ARB组织后,加快OpenGL发展步伐的表现,另一方面也是因为DirectX的快速发展,使OpenGL从被借鉴者变成了借鉴者,吸收了DirectX中的一些先进的地方和优点,痛下决心,作出如此重大的改变。当然,OpenGL 3D的出现也可以让众多喜欢OpenGL的玩家松一口气了。至少未来它们还会有很长的一段时间要并驾齐驱。
优化硬件可编程能力
可编程渲染器可以带来许多过去用固定渲染器无法得到的复杂图像效果和三维环境的真实感。在有大量水滴、烟雾以及动态阴影的环境画面中,可编程渲染器将会起到重要的作用。同时,图形硬件的可编程能力也扩展了硬件加速的直接绘制算法,提高了它的交互性能和图像质量。OpenGL 3.0在前作的基础上针对最新的GPU技术对这项功能进行了增强和优化。
顶点数据流传输
在OpenGL 3.0中,顶点数据被分割成不同比特率的数据流。由于顶点数据改用数据流的形式传送,内部顶点数据传输总线也可以支持很大的突发数据传输速率。这样显示芯片可以更从容地处理那些突发的大规模场景特效(例如下雨,爆炸,粒子喷发等等)。同时,OpenGL 3.0在顶点数据流的传输过程中也扩充了多种数据类型,可以使游戏开发人员通过不同的形式更详细地对一个顶点进行描述。
同时,一个经过运算之后的顶点缓存数据可以反复再进行若干次的循环调用,这样就可以通过一个相同物体的基本范例创造超过驱动程序限制的对象。例如,游戏开发人员若要创造一个森林的场景,可以首先使用低比率的数据流构建一棵树的基本框架。然后再用高比率的数据流包含每一棵真实的树木特征模型,这包括树叶的模型、树枝的模型、树干的模型等等。将整个一棵树定义成一个元素。最后再使用基于低比率数据流中的元素ID,循环处理生成整个广茂的森林。
几何着色渲染
像DirectX 10一样,OpenGL 3.0这次也引入了几何着色渲染功能,它可以为3D场景创建几何对象,利用它来生成多种效果。几何着色渲染可完成阴影锥、毛皮、鱼鳍、程序几何、细节、位移效果和计划植被等等细致图形渲染。由于着色。在GPU上运行,因此没有占用CPU资源,从而将CPU资源释放出来以供其他任务使用。有效提升模板阴影特效、动态立方体贴图和位移贴图的执行效率,亦可将多余的顶点数据除去,增加显示核心的运算效率。
整数指令集
OpenGL 3.0首次引入了整数指令集功能。我们知道,3D图形运算是基于大量浮点指令的。浮点是不精确数据类型,当寻值数据与纹理数据不符合时,可以采用近似值和多个数据计算的内插值代替,对图形最终画面没有影响,速度也比整数指令集要快。因此,GPU的基础恰好与CPU相反,是以浮点指令而不是整数指令集为主。此前,着色器处理的所有东西都需要依靠浮点运算完成。对大多数的图像处理来说,这种处理方式是没有问题的,但进行非内插式内存搜索时(比如对顶点缓存器进行定位索引时)这种浮点运算处理方式就存在很大的问题。而openGL 3.0中引入整数运算将有许多好处,比如进行动态/静态分支预测、顶点缓存定位、通用内存寻址方面,浮点是无法进行精确计算的,而整数指令集则不存在这样的问题。
总的来说,OpenGL 3.0是在OpenGL ZX的基础上进行了巨大改进,并为了顺应未来的发展趋势,引入了DirectX 10的特色功能。这一方面是Khronos Group接手ARB组织后,加快OpenGL发展步伐的表现,另一方面也是因为DirectX的快速发展,使OpenGL从被借鉴者变成了借鉴者,吸收了DirectX中的一些先进的地方和优点,痛下决心,作出如此重大的改变。当然,OpenGL 3D的出现也可以让众多喜欢OpenGL的玩家松一口气了。至少未来它们还会有很长的一段时间要并驾齐驱。