首页 理论教育虚拟现实渲染流水线分类及其意义

虚拟现实渲染流水线分类及其意义

【摘要】:我们平时的程序,是在CPU运行。由于GPU的硬件设计结构与CPU有着很大的不同,所以GPU需要一些新的编程语言。因为它是在HLSL的基础上进行开发的,所以他的语法跟HLSL非常相似。渲染流水线分为两种,其中一种为可编程渲染流水线,另外一种为固定渲染流水线[17]。渲染流水线可否编程,取决于程序员能否在定点着色器以及片段着色器上进行编码。可编程渲染流水线存在的意义是什么?所以,有必要让渲染流水线可编程,以满足用户无穷的胃口。

首先,我们需要了解一个概念:Shader,中文名,着色器。着色器其实就是一段在GPU运行的程序。我们平时的程序,是在CPU运行。由于GPU的硬件设计结构与CPU有着很大的不同,所以GPU需要一些新的编程语言。目前,微软提供了HLSL(High Level Shading Language),通过Direct3D图形软件库来写Shader。OpenGL提供了GLSL(OpenGL Shading Language)来写Shader程序。Nividia希望显卡的程序开发独立于DX和GL的图形软件库,与微软共同研发了CG语言(C for graphics)。因为它是在HLSL的基础上进行开发的,所以他的语法跟HLSL非常相似。并且,CG编写的Shader可以编译到Direct3D和GL能适应的环境

渲染流水线分为两种,其中一种为可编程渲染流水线,另外一种为固定渲染流水线(也称可编程管线或固定管线,管线就是流水线的意思)[17]。渲染流水线可否编程,取决于程序员能否在定点着色器以及片段着色器上进行编码。而现在的渲染流水线,基本都是可编程的,当然,它们也支持固定渲染流水线的功能。学习这个,我想大家心中一定有个疑问?可编程渲染流水线存在的意义是什么?(www.chuimin.cn)

这个要从现实与虚拟的差距说起,我们知道现实的世界五彩缤纷,而我们对于现实世界的模拟,实际上就是对现实世界里面各种存在的事物进行一一的模拟。而默认的着色器,对于模拟五彩缤纷的世界就捉襟见肘了。而要让编写默认着色器的程序员把所有的情况一一列举,不仅会使得SDK非常庞大,而且也不太可能办到。所以,有必要让渲染流水线可编程,以满足用户无穷的胃口。打个比方,画家在画一幅画的时候,要用的色彩或许有上万种,我们无法为他提供所有可能用到的色彩,只能让画家可以通过自己的喜好混合不同的颜色。你可以把着色器理解为这里面的各种颜色,自己写的着色器就是自己调的颜色。