WEB开发网
开发学院图形图像AutoCAD 优化3D图形渲染通道负载 阅读

优化3D图形渲染通道负载

 2006-04-03 09:47:20 来源:WEB开发网   
核心提示: 18.如果可能, 尽量使用vertex shader来代替pixel shader.将计算从逐象素变成逐顶点,19.尽量降低贴图的大小.过大的贴图可能造成贴图cache过载, 从而导致贴图cache命中降低.过大的贴图会导致显存过载, 这时候贴图是从系统内存中取的,优化3D图形渲染通道负载

18.如果可能, 尽量使用vertex shader来代替pixel shader.将计算从逐象素变成逐顶点。

19.尽量降低贴图的大小.过大的贴图可能造成贴图cache过载, 从而导致贴图cache命中降低.过大的贴图会导致显存过载, 这时候贴图是从系统内存中取的。

20.只要可能就用16位色的贴图, 如环境贴图或者shadow map.它们用32位色的贴图实在是浪费。

21.考虑使用DXT 贴图压缩。

22.如果可能,使用简单的贴图过滤或者mip map, 除非必要否则尽量不要使用三线过滤和各项异性过滤. light map 和 环境贴图基本上都不需要使用它们。

23.只有真正需要修改的贴图才使用Dynamic, 并且使用DISCRAD和WRITEONLY来lock。

24.太多的帧缓冲读写可以考虑关闭Z-Writes如有些多pass的渲染中的后续pass或者粒子系统等半透明几何物体(如果可以)。

25.可能的话尽量使用alpha test代替alpha blending。

26.如果不需要stencil buffer就尽量使用16位的Z buffer。

27.减小RenderTarget 贴图的大小, 如shadow map 环境贴图. 可能根本不需要那么大效果就很好。

28.Stencil 和 Z buffer 尽量一起clear. 他们本来就是一块缓冲。

29.尽量减少渲染状态的切换, 尽量一次画尽可能多的多边形。(根据显卡性能决定最多画多少, 不过一般再多也不会多到哪里去。 除非你根本不需要贴图和渲染状态的切换)。

30.尽量使用shader来代替Fixed Pipeline。

31.尽量使用shader来实现来取代Multipass渲染效果。

32.尽量优先先建立重要的资源, 如Render target, shaders, 贴图, VB, IB等等.以免显存过载的时候它们被创建到系统内存中。

33.坚决不要在渲染循环中调用创建资源。

34.按照shader和贴图分组后再渲染.先按照shaders分组再按贴图。

35.Color Stencil Z buffer尽量在一次Clear调用中清除。

36.一个Vertex buffer 的大小在2M-4M之间最好。(中国软件)

上一页  1 2 3 

Tags:优化 图形 渲染

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接