zoukankan      html  css  js  c++  java
  • 三重缓冲

    三重缓冲 是一种图象处理技术
    英文名Triple Buffering,是一种图象处理技术。

    Triple Buffering使用一个前置缓存和两个后置缓存。在着色完第一个后置缓冲区的数据后,立即开始处理第二个后置缓冲区。今天,不少新游戏都采用的是Triple Buffering,Trible Buffering正逐渐成为发展的趋势,因为它没有Vsync(荧幕的垂直刷新频率)等待的时间,游戏也将更加流畅。三重缓冲,有3个缓冲区,显卡无需等待前缓冲区清空进而腾出后缓冲区,随时可以把渲染结果放入第3个缓冲区。


       实现

    编辑
    这就是说,可以在打开垂直同步的同时保持应有的帧速了。ATi和nVidia的驱动中都有打开三重缓冲(triple buffering)的选项。可惜这只能起到一半的作用,因为驱动中的3重缓冲选项只对OpenGL游戏起作用。加上OpenGL游戏远少于D3D游戏,所以事实上驱动的3倍缓冲选项在超过一半情况都不起作用。三级缓冲是低帧速的完美解决办法,不过,这并不是免费的午餐。打开三级缓冲也意味着需要多50%的缓存空间。在某些条件之下,它也可能会对游戏效果产生负面影响。

    应用

    编辑
    举个简单的例子来说明这个潜在的问题:譬如当我们在1600x1200分辨率下运行游戏的时候,每个像素需要32bit空间储存信息,1600x1200x32=61,440,000 bit,将它转换成MB为单位,相当于7.32MB。使用二级缓冲,需要 14.64MB显存;为了使用三级缓冲,则需要21.96MB显存。显存占用率不成问题。不过,一旦打开4x FSAA,这个数字就会飞速膨胀。在打开4x FSAA的时候,有多出4倍的像素进行取样,如此21.96MB乘4,变成可观的87.84MB!这就大于显存总容量的1/3了。如果这个游戏需要用200MB的空间储存材质、光影、各种贴图……等等,游戏效果就会非常变得非常糟糕,会由于不时存取硬盘产生大量停滞现象。这里只是提醒大家注意,如果发现游戏过程中存取硬盘过于频繁,则可能说明3级缓冲占用了太多显存,此时你就应该考虑降低游戏的画面设置或者购买更高档的显存容量更大的显卡了。


  • 相关阅读:
    所写既所思
    OO总结
    OO第三单元作业总结
    OO第二单元作业总结
    OO第一单元作业总结
    oo第四单元与课程总结
    oo第三单元总结——jml
    oo第二单元博客总结
    面向对象设计与构造-第一单元作业总结
    个人总结-不说再见
  • 原文地址:https://www.cnblogs.com/nafio/p/9137344.html
Copyright © 2011-2022 走看看