手机
当前位置:查字典教程网 >三维 >AutoCAD教程 >如何优化3D图形渲染通道负载
如何优化3D图形渲染通道负载
摘要:通常,定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量,如果吞吐量也改变了,那个步骤就是瓶颈。找到了瓶颈就要想办法消除瓶颈,以减少该步...

通常,定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量, 如果吞吐量也改变了, 那个步骤就是瓶颈。找到了瓶颈就要想办法消除瓶颈, 以减少该步骤的工作量, 增加其他步骤的工作量。

一般在光栅化之前的瓶颈称作”transform bound”, 三角形设置处理后的瓶颈称作”fill bound”定位瓶颈的办法:

1.改变帧缓冲或者渲染目标(Render Target)的颜色深度(16 到 32 位), 如果帧速改变了, 那么瓶颈应该在帧缓冲(RenderTarget)的填充率上。

2.否则试试改变贴图大小和贴图过滤设置, 如果帧速变了,那么瓶颈应该是在贴图这里。

3.否则改变分辨率.如果帧速改变了, 那么改变一下pixel shader的指令数量, 如果帧速变了, 那么瓶颈应该就是pixel shader. 否则瓶颈就在光栅化过程中。

4.否则, 改变顶点格式的大小, 如果帧速改变了, 那么瓶颈应该在显卡带宽上。

5.如果以上都不是, 那么瓶颈就在CPU这一边。

优化方法36条:

1.尽量减少无用的顶点数据, 比如贴图坐标, 如果有Object使用2组有的使用1组, 那么不 要将他们放在一个vertex buffer中, 这样可以减少传输的数据量。

2.使用多个streamsource, 比如SkinMesh渲染, 可以把顶点坐标和法线这些每一帧都要修改的数据放在一个动态VB中, 其它不需要修改的(如贴图坐标)放到一个静态VB中, 这样就减少了数据传输量。

3.尽量使用16位的索引缓冲,避免32位的. 一方面浪费带宽, 一方面也不是所有的显卡都支持32位的索引缓冲。

4.可以考虑使用vertex shader来计算静态VB中的数据.比如SkinMesh的顶点可以放到vectex shader中计算, 这样就可以避免每一帧都从AGP内存中向显存传送数据. 这样也可以使用静态VB了。

【如何优化3D图形渲染通道负载】相关文章:

AutoCAD如何提高绘图效率

如何在等轴测面中绘制简单图形

如何制作AutoCAD模型和图纸空间切换

cad图形界限怎么设置

cad中如何标注弧形长度

CAD迷你看图如何放大图纸

如何用AutoCAD快速修图

AutoCAD2013如何新建删除图层

CAD如何对齐多行文字

AutoCAD2008如何绘制圆弧?

精品推荐
分类导航