面向通用计算的可编程图形硬件技术-opengl performance optimization

面向通用计算的可编程图形硬件技术-opengl performance optimization

ID:13345172

大小:80.50 KB

页数:12页

时间:2018-07-22

面向通用计算的可编程图形硬件技术-opengl performance optimization_第1页
面向通用计算的可编程图形硬件技术-opengl performance optimization_第2页
面向通用计算的可编程图形硬件技术-opengl performance optimization_第3页
面向通用计算的可编程图形硬件技术-opengl performance optimization_第4页
面向通用计算的可编程图形硬件技术-opengl performance optimization_第5页
资源描述:

《面向通用计算的可编程图形硬件技术-opengl performance optimization》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、OpenGLPerformanceOptimization这篇文章比较长,希望大家能够看完。^_olOPenGLStateMachinelTypicalD3D9HardwarearchitecturelLessStateChangelGL_TRIANGLE_STRIPinsteadofGL_TRIANGLESlTextureLoadinglTextureCompositelTextureMipMaplMultiPassvs.SinglePasslTextureCompressionlAvoidPixelOpera

2、tionslVertexArray,DisplayList,lVertexBufferObjectlAdvancedTech:VSandPs.lLessOperationsforDepthTest,StencilTest,AlphaTest,lFastShadowlMISC:LOD,cull,SwpaBuffers,wglMakeCurrentetc上一个讲座是关于OpenGLDriver体系结构,估计大家都有很多疑问,而且我自己又看了一遍,发现一些问题讲得不够清晰,而且没有交代讲驱动程序体系结构的目的。其主要目

3、的是,当我们了解了驱动程序的体系结构,我们更好地写出一个OpenGL应用程序框架结构。今天我将结合OpenGL状态机和一个典型的D3D9硬件体系结构探讨如何对OpenGL应用程序的性能进行优化。MSDN的OpenGL帮助也提到了关于性能优化方面的问题,但是这已经是多年以前的article,而随着图形加速硬件的发展,许多新的技术不断涌现,我们应该跟上时代发展的步伐。我今天讲的内容应该是不全面的,希望大家踊跃指正和补充。1OpenGL状态机(StateMachine)OpenGL状态机的目前只有1.1版本,也是最经典

4、的,大家可以参考下述链接:ftp://ftp.sgi.com/opengl/doc/opengl1.1/state.pdfftp://ftp.sgi.com/opengl/doc/opengl1.1/state.ps它们是内容相同而格式不同的状态机表达。整个文件中只有一张Postscript的图。这张图实际上就是SGIRealityEngine的硬件程序流程描述。首先硬件接受应用程序输入的顶点信息,(Color,Normal,Texture,EdgeFlag,Vertex,),经过世界坐标变换(glTransla

5、te,glRotate,glScale),接着进行UserClipPlane,之后进入视图变幻和裁减(ProjectionMatrix),然后视口变换(ViewPort),经过PrimitiveSetup,光栅化处理(Flat或Phong)生成片断Fragment,下面的对每个依次作纹理贴图计算,纹理混合(TextureBlend),深度测试(DepthTest),模板测试(Stencil测试),透明测试(AlphaTest),透明混合(AphaBlend),然后写入颜色缓冲区,深度缓冲区,模板缓冲区。整个流程如

6、下:Application

7、VertexInformation(Material,Normal,Textcoord,EdgeFlag,VertexPosition)

8、Lighting

9、WorldMatrixTransform

10、UserClipPlaneClipping

11、ProjectionMatrixTransformandClip

12、ViewPort

13、PrimitiveSetup(point,Line,Triangle)

14、Rasterization(FlatorPhong)==>GenerateFragment

15、

16、FragmentTextureAddressing()==TextureInVideomemory

17、FragmentTextureBlend(blendDiffuse,SpecularandTextureofFragment)

18、DepthTest==withDepthBuffer

19、StencilTest==withStencilBuffer

20、AlphaTest==withalphachannelofcolorbuffer

21、AlphaBlend==withcolorbuffer

22、FragmentwritetoFra

23、meBuffers我们可以看到OpenGL每处理一个几何图元,需要经过大量的处理过程。大家应该对这个图的每个步骤地工作相当清晰。这里有几个概念需要说明。第一个概念是Fragment,片断或者片元。每一个片断对应屏幕上的一个像素点,它是光栅化(Rasterization)引擎使用FLATshading或PhongShading生成的。Rasterization引擎产生的片断

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。