Skip to content

Archive

Archive for December, 2016
[zh]又到了12月底,首先,祝大家圣诞节和新年快乐!今天,经过6个月的研发,KlayGE 4.10正式发布了。在这个过程中,有很多用户提供了宝贵的建议和bug报告,在此表示感谢。由于时间和设备的限 制,难免有一些测试不足的情况,尽请见谅。KlayGE 4.10的主要更新如下:[/zh] [en]It's the end of December, happy holidays and new year! After 6 months' R&D, I'm glad to announce that KlayGE 4.10 is released. During this development cycle, many users provide great suggestions and bug reports. Thanks again for your help. The highlight features of KlayGE 4.10 are:[/en] [zh]引擎方面的改进[/zh][en]Improvements in engi ...
上一篇讲了tone mapping的改进。作为引擎的一个长期议题,优化是不可缺少的。本篇就讲讲在4.10中引入的新优化。 CPU端 在profiler里看到的占据CPU耗用第一名的一直是驱动。原先一直没在意这个,前一阵自己看了一下,发现前几位的好几个都是在SceneManager里,而且都和渲染队列相关。具体情况是,在每一帧确定渲染队列的时候,会执行一遍这样的步骤: 扫描一遍场景里的所有SceneObject,根据它的Renderable的类型建立一个从Renderable到SceneObject列表的unordered_map,每个物体作为那个Renderable的instance 把unordered_map中的Renderable建立一个队列 渲染这个队列 销毁unordered_map 所以其实这里的unordered_map只是 ...
上一篇讲了新的材质系统。本篇将讲tone mapping的改进。 Tone mapping的进化 KlayGE早在2006年的时候就引入了HDR的流水线。和当年的其他引擎一样,HDR的内容经过渲染,需要通过tone mapping转成LDR之后送去显示。这时候,tone mapping的质量就可以决定最后的画面细节度和对比度。 在KlayGE的发展过程中,tone mapping这个看似简单的步骤经历了多次进化。 Reinhard 早期的普遍做法是一篇叫做Photographic Tone Reproduction for Digital Images的论文,大家就用作者的名字称它为Reinhard tone mapping。这是个经验公式,把HDR到LDR的变换简单的描述了出来。 float3 ReinhardToneMapping(float3 color, float adapted_lum) { con ...