可编程管线
① 可编程渲染管线比固定管线的优势在哪有什么应用
固定渲染管线就是只可配置(configurable)的管线,实现不同效果就好像在电路中打开不同的开关,例如texture stage的设置就是最复杂的部分,而stage数量非常有限(Direct3D 9只有8个),想做各种效果及它们的组合,就像是一个智力游戏般。
可编程渲染管线把很多部分从可配置改为可编程(programmable),各种效果及他们的组合可以通过一般编程的方式实现,自由度高得多,而且不需那么伤脑筋。最通常的应用就是自行实现光照和材质,可用上各种光照和反射模型,也可把一些运算放在顶点上算,一些运算放在像素上算。
性能差异基本上不用考虑了,新的API甚至乎已淘汰固定渲染管线(如OpenGL 3.0+、Direct3D 10+、OpenGL ES 2+、WebGL),而较新的硬件要支持固定渲染管线应该也都是驱动用可编程管线模拟出来的。
总之,现在基本上不需要学习固定管线了。
② 有哪位OpenGL大神讲解下,固定管线和可编程管线到底有什么区别
比如说啊,opengl-es 1.1 就是固定管线.. 而gles2.0就是可编程.
固定管线的固定是相对的. 比如你一个模型肯定是由顶点构成.每个顶线里面有空间位置/法线/颜色/UV贴图位置0/UV贴图位置1 等等等很多项目组成.而固定管线就是他已经定好了这些名堂,你只要按对应的名字,把数据传进去就好了.
而可编程管线就很灵活.你传入的数据只有shader知道是干什么用的, 而你的shader代码可以任意发挥. 比如每个顶点4个数字, x,y,z,w 然后你shader里 把 y,z 当做UV来使用, 然后把 w,y,z当法线来用, 这都是可以的. 任意组合,随意发挥.
③ 如何区分可编程渲染流水线与固定渲染流水线
1.固定渲染管线与可编程渲染管线的区别:
1)、固定渲染管线
——这是标准的几何&光照(T&L)管线,功能是固定的,它控制着世界、视、投影变换及固定光照控制和纹理混合。T&L管线可以被渲染状态控制,矩阵,光照和采制参数。
2)、顶点着色器——图形开发人员可以对渲染管线中的顶点运算和像素运算分别进行编程处理了,而无须象以前那样套用一些固定函数,取代设置参数来控制管线,最早出现与DX8,包括PS和VS两部分。
④ 固定管线是不是指的shader出现以前的显卡渲染,可编程管线指的就是编写shader
一般的,ogre是使用固定渲染管线,嵌入可编程管线,可借助GPU,提供更多更丰富的效果