KlayGE 4.4中渲染的改进(二):DR的其他改进
上一篇讲了TBDR的实现,本篇继续讲解deferred rendering层的一些重要改进。
切换到ESM
原先deferred系统用的是VSM,现在切换到开销更小的ESM。具体参见我之前的一篇文章。用ESM之后只需要一个通道,空间占用减少,性能也有所提升。下个版本会进一步改成支持打包到RGBA8的纹理,让不支持浮点纹理的硬件也可以使用ESM。
Multi-resolution层
KlayGE很早就引入了multi-resolution的概念,用来加速SIL的GI。但原先的MR、SIL和Deferred绑在了一起。从上一版开始,MRSIL从Deferred独立出来之后,这个版本继续改进,把MR和SIL也分开了。现在MR可以用于其他地方,比如SSGI。原本SSVO也打算上MR,但后来来不及改了。
这个分离的思路是,MR层负责维护多层的分离和合并,而至于具体在每一层上做什么操作,由使用MR层的组件决定。这么一来,理论上甚至连Deferred都可以用MR来加速。
忽略小物体
去年,Gameloft的大牛凃鸣就提议过对于小物体应该在一些渲染的情况下忽略掉,并且找到了快速计算AABB投影面积的方法。这个版本也作了这样的改进,通过AABB的投影面积作判断,小于一个threshold就不放入渲染队列。这个threshold是以不影响可见效果来调整的。目前只有生成shadow map的时候threshold > 0,其他时候还是保守地设置为0。
Resizer
在很多平台上,窗口大小是不由程序控制的。这个时候如果希望保持统一的输出大小,就需要一个放缩。所以这个版本在流水线的末端增加了resize一步。前不久我也专门写过一个介绍放缩的文章,里面有关于resizer的细节。以后有可能进一步发展成支持dynamic resolution的放缩。
关于deferred的改进就讲到这里,下一篇将讲高质量的地形渲染。
KlayGE 4.4中渲染的改进(二):DR的其他改进的更多相关文章
- KlayGE 4.4中渲染的改进(一):只需要SM3的TBDR
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2736 KlayGE从4.0开始引入deferred rendering层(DR),并且这几个 ...
- KlayGE 4.4中渲染的改进(五):OpenGL 4.4和OpenGLES 3
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2796 上一篇我们提到了SSSSS,作为本系列的最后一篇,本文将介绍KlayGE 4.4的Op ...
- KlayGE 4.4中渲染的改进(三):高质量无限地形
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2761 本系列的上一篇讲了DR中的一些改进.本篇开始将描述这个版本加入的新功能,高质量地形 ...
- KlayGE 4.4中渲染的改进(四):SSSSS
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2774 本系列的上一篇提到了KlayGE 4.4将会出现的高质量地形渲染.本篇仍讲一个新功能, ...
- flask 在模板中渲染错误消息
在模板中渲染错误消息 如果form.valicate_on_submit()返回False,说明验证没有通过,对于没有验证通过的字段,WTForms会把错误信息添加到表单类的errors属性中,这是一 ...
- MVVM模式和在WPF中的实现(二)数据绑定
MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- 从零开始编写自己的C#框架(13)——T4模板在逻辑层中的应用(二)
最近这段时间特忙,公事私事,忙得有时都没时间打开电脑了,这两周只能尽量更新,以后再将章节补回来. 直接进入主题,通过上一章节,大家明白了怎么使用模板类编写T4模板,本章进的是一些简单技巧的应用 1.首 ...
- SQL Server 2016中In-Memory OLTP继CTP3之后的新改进
SQL Server 2016中In-Memory OLTP继CTP3之后的新改进 转译自:https://blogs.msdn.microsoft.com/sqlserverstorageengin ...
- 怎么在ZBrush中渲染漫画风格的插画
创建“漫画插画”的外观和感觉想必一定很有趣吧,但是,获得想要的精确外观有时也会令人相当沮丧,因此了解一些基本原则,创建类似于ZBrush漫画MatCaps的作品很有必要. 若有疑问亦或者想查看具体的视 ...
随机推荐
- MATLAB不运行也不报错
今天本来挺激动找到能运行的好几个程序 MATLAB忙到busy也是停不下来 本来不以为然 结果呢 吃了个水果 一杯水都喝下去了 还没结果(⊙o⊙) 这时候解决办法只有一个 Ctrl+c
- android开发学习之Layer List
Android中drawable分为Bitmap File.Nine-Patch File.Layer List.State List.Level List.Transition Drawable.I ...
- css居中解决方案
水平居中 行内或者具有行内元素性质的元素(比如文字或者链接)? 让一个父元素为块级元素的行内元素水平居中,可以:CSS: 1 2 3 .center-children { text-align: ce ...
- maven 简介
本书代码下载 大家可以从我的网站下载本书的代码:http://www.juvenxu.com/mvn-in-action/,也可以通过我的网站与我取得联系,欢迎大家与我交流任何关于本书的问题和关于Ma ...
- onBlur事件与onfocus事件(js)
onFocus事件就是当光标落在文本框中时发生的事件. onBlur事件是光标失去焦点时发生的事件. 可以编如下例子 1.html <HTML><HEAD><TITL ...
- zabbix3.x web设置手册(2)
在浏览器中输入:http://10.50.32.48/zabbix/setup.php 如下图: 点击Next step: 如上图,右侧全为ok,则点击Next step:若右侧有fail的情况,需要 ...
- linux的一些小问题
1.需要使用root权限时提示xxx is not sudoers.... 1).root用户下输入visudo 2).在打开的文件中找到 root ALL=(ALL) ALL,以xxx为用户名,添加 ...
- 使用UG UISTYLER 窗体编辑器,创建对话框 part 1
在UG 二次开发中,经常需要一些交互的输入,参数的更改啊,零件的选取什么的,UG 自身提供了创建这一类对话框的功能.当然也可以使用MFC或winForm 作为交互.但使用自带的比较快和简洁,风格也统一 ...
- EmberJs之数组绑定@each&[]
写在前面 好长时间没有写博客了,昨天花了些时间又整理了下之前发布过的<Ember.js之computed Property>文章,并创建了一个测试代码库,花了些时间,希望能使用测试代码的方 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.4,增加系统设置、最近联系人、群功能(源码)
自从上次版本(GG叽叽V3.2,增加离线消息.离线文件功能)发布后,我个人觉得主要的大功能都实现得差不多了,接下来的几个版本将不断优化GG的细节,提高其可用性.这次版本更新的内容主要是为GG增加了系统 ...