先来看一张网上广为流传的《杀戮地带2》典型的Deferred Shading的G-Buffer组织:

这里补充解释下几个点:
G-Buffer还是太臃肿了:
  • MRT技术是有。但不代表其优。不管是AMD。还是NVida的优化文档上都说了要尽量避免MRT这回事
  • 复杂的渲染方案必须须要相应着一大堆參数要塞进MRT中
  • 假设引擎中的物件渲染风格不一样(比方RGame),必然须要额外的空间来存储类似MaterialID这种东西,灵活性不够
因此Deferred Lighting的思想被提了出来:
  • 对照deferred shading : deferred shading 是将全部的shading都移到deferred 阶段进行
  • deferred lighting的本质:deferred lighting的deferred阶段仅仅进行lighting计算,从而和材质无关。
  • 最大优点:节省带宽。
  • 如今的G-Buffer:normal--保存两个float16分量;position--由深度重建而深度保存在depth texture所以这里不占用G-Buffer;specular factor。

    仅仅须要一张RT足矣。

  • lighting pass的输出: 累积的diffuse + 累计的specular 亮度(仅仅能牺牲掉specular的颜色了)
  • 遗憾:终于的着色还是须要额外的pass,前一篇提到的“屏幕空间的、与几何体复杂度无关的O( m + n) 的计算优势”仅仅能运用到lighting计算上。
总结:
  • Deferred shading : 伴随着MRT有巨大的带宽消耗。灵活性也不佳,发展前途不大;
  • Deferred lighting : 尽管仅仅有光照计算是屏幕空间的。且相对Deferred shading每一个物体多了1个pass。但节省带宽且相当灵活,眼下是各大引擎的上上选。

最新文章

  1. ABP(现代ASP.NET样板开发框架)系列之13、ABP领域层——数据过滤器(Data filters)
  2. Linux 每天自动备份mysql数据库的方法
  3. Java中的访问权限
  4. IOC运用到MVC中
  5. css3圆角讲解
  6. SharePoint 网站登录不上,3次输入用户名/密码白页、
  7. Ansible_自动化运维《Ansible之初识-1》
  8. 快速傅里叶变换 & 快速数论变换
  9. Django 基础二(View和urls)
  10. linux进阶指令
  11. php中time()与$_SERVER[REQUEST_TIME]用法区别
  12. [转]Cordova - 彻底搞定IOS编译!
  13. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker
  14. C语言第八讲,指针*
  15. PYTHON-匿名函数,递归与二分法,面向过程编程-练习
  16. 【java编程-Javassist】秒懂Java动态编程(Javassist研究)
  17. tf.square
  18. MemSQL学习笔记-类似MySQL的数据库
  19. 转 如何使用Windows Media Load Simulator进行Windows Media服务器性能测试和监控
  20. ASP.NET基础(一)

热门文章

  1. Vue之x-template(2)
  2. 2. 区分散列的 undef 值, 和手动赋值 0 不一样。1. 使用exists函数,散列中有这个键(必须是keys %hash 有这结果),则返回真值,
  3. OpenMP用法大全
  4. 导出网页表格数据为Excel文件的前端解决方案
  5. mybatis中修改了数据,控制台显示成功,数据库没有修改
  6. 关于latch: cache buffers chains的sql优化
  7. 集训第四周(高效算法设计)M题 (扫描法)
  8. Leetcode 147.对链表进行排序
  9. chrome webstore
  10. 使用Spring-Session共享使用Session