Skip to content
昨天花了1个小时把gamma校正添加到KlayGE的渲染流水线中,对比度和细节都有所提升。下图是打开gamma校正的截图: 对比原先gamma关闭的: 目前相应的工具还没完成,所以gamma在配置文件中是个可选项。以后将变成不允许关闭gamma校正,毕竟打开才是理论上正确的。 关于gamma校正的原理,请参见Gamma的传说一文。
在GDC2011上,有一种新的基于post process的AA方法Directionally Localized Anti-Aliasing。从结果上看,它比MLAA好,并且速度比常见的GPU MLAA快。具体资料可以在这里找到。
在Napoleon314的强烈推荐下,KlayGE也改用了来自Uncharted 2的Filmic Tonemapping。虽然只要改2行代码,但Filmic Tonemapping所带来的鲜艳颜色和对比度是其他常用tonemapping所不可比拟的,完全消除了那种灰蒙蒙的感觉。贴两张图看看效果:
AMD Catalyst 11.4才发布没几天,11.5也紧跟着出来了。使用的感觉和上一版没啥区别,能用得还是能用,不能用的还是不能用:(。
上一个帖子提到了在Catalyst 11.4上,KlayGE的OpenGL插件黑屏的情况,现已查明是因为AMD和NVIDIA的GLSL不兼容的原因。NV的驱动上fragment shader可以定义varying out vec4 v_gl_FragData[8]这样的输出数组,但AMD的驱动上不支持。所以我再次修改GLSL生成器,把数组拆成独立变量,解决了问题。但实际上AMD的GLSL预定义了out vec4 gl_FragData[],所以变成预定义可以,自定义不行的情况。估计得等以后他们自行解决吧,目前只能先绕开了。
今天AMD Catalyst 11.4发布了,增强了AMD VISION Engine Control Center / AMD Catalyst Control Center,提高了一些游戏的性能,比较值得注意的是GPGPU方面的增强有。它包含的OpenCL runtime支持APU上的零拷贝(可能是可以直接把一个CPU/APU的内存注册到另一个CPU/APU,类似CUDA 4.0中的功能);并提高了CPU和GPU之间的PCIE传输性能。 杯具的是,KlayGE使用OpenGL插件的话,所有sample在这版驱动上都黑屏,原因有待查明。
GI组的atyuwen同学上个月用KlayGE实现了Multi-resolution Splatting Indirect Illumination的效果,现在开发版本的KlayGE正式加入了Realtime Global Illumination的例子。效果截屏如下: 对比GI关闭的效果: 可以看出间接光照还是蛮明显的。 目前的GI在NVIDIA 9800GT上,1280x800的时候需要花费6.6ms;在GTX 480上需要2.5ms。下一步将要做的改进是: 用light volume的方法优化virtual lighting的速度。 根据BRDF生成不同形状的light volume。 Importance sampling 优化的目标是在9800GT上降低到2.5ms左右。
在NVIDIA的新网页3D Vision and Surround Technology上,提供了一份名为Stereo Unprojection Sample的示例代码。在里面提供的NVAPI和独立的NVAPI在stereo的部分不全相同。这个NVAPI提供了NvAPI_Stereo_SetDriverMode,可以把stereo分成两个模式,Direct和Automatic。Automatic顾名思义就是原先的自动修改VS的模式,而Direct应该就是自己提供左右眼渲染结果,而让NV驱动完成stereo的方法。它也提供了NvAPI_Stereo_SetActiveEye,可以让你设置当前激活的是左眼还是右眼。也就是说,很可能用这种方式直接就可以跨API地直接控制stereo,而不用再像在程序中使用NV 3D Vision一文所说的那么麻烦了。
上一个帖子提到了在NV 270.xx驱动上,OpenGL MRT出问题的情况。经过一些单元测试,我发现那不是个驱动的bug,而是270系列驱动对GLSL的实现更加严格了。在GLSL 1.3,也就是OpenGL 3.0上,gl_FragColor和gl_FragData都被标记为deprecated。原本的驱动仍旧提供了对它们的支持,但270.xx去掉了gl_FragData,所以在需要MRT的时候就得自己定义varying out了。在对GLSL生成器做些许修改之后,KlayGE在OpenGL插件上的MRT都恢复了正常。
继前几天的270.51 Beta之后,NVIDIA正式发布了270.61 WHQL。这标志着NVIDIA已经开启了270系列驱动的大门。这款驱动支持GeForce 6以来的所有桌面Geforce GPU,以及ION桌面GPU。在API方面,它在Geforce 400+的显卡上支持OpenGL 4.1,之前的显卡只支持OpenGL 3.3。在OpenGL扩展方面,和之前的270.51 Beta一样。下载链接: Vista / Win7 64-bit Vista / Win7 32-bit XP 32-bit XP 64-bit 在使用的过程中,我发现270系列驱动在OpenGL下的一些问题。首先是它去掉了对GL_EXT_transform_feedback的支持。所以要么退回到GL_NV_transform_feedback,要么前进至OpenGL 3.0提供的transform feedback。另一个可能是bug的地方在于,MRT虽然可以调 ...