上一篇探讨了G-Buffer里如何紧凑并高质量地存储normal。长期以来,deferred一直被认为只能用于高端显卡,低端卡由于功能和带宽的限制,不适合使用deferred。虽然现今移动设备大行其道,但所有移动设备和桌面相比,都只能算低端。所以OpenGL ES上也一直都被forward渲染占领。一个引擎维护两套流水线是非常麻烦的事情,尤其对于KlayGE这样的开源轻量引擎。所以,如果能在低端设备上也能用同一条deferred流水线,能给维护和扩展提供巨大的方便。
经过一定的改进,deferred流水线已经可以在中上等级的OpenGL ES 2设备和D3D11 feature level 9.3设备上跑了。这样的硬件涵盖了NV GeforceFX 6000以上(2004年)、ATI Radeon X1000以上(2005年) ...
上一篇我们提到了SSSSS,作为本系列的最后一篇,本文将介绍KlayGE 4.4的OpenGL和OpenGLES插件的改进。
OpenGL 4.4
KlayGE在OpenGL方面一直是紧跟spec的步伐,这次也不例外。在八月份OpenGL 4.4发布的时候,glloader和KlayGE的OpenGL插件就很快加上了4.4的支持。并且这次把代码彻底过了一遍,很多原先通过扩展实现的功能,都尽量替换成用核心实现的,提高兼容性。
经过测试,OpenGL插件在NV和Intel的显卡上所有例子都能正常工作。
OpenGLES 3.0
虽然GLES3出了有一段时间了,但硬件支持度和开发环境都还没跟上,所以原先OpenGLES插件只支持2.0。这次尝试了PowerVR和Mali的OpenGLES 3模拟器,觉得还行,就加上了GLES3的支持。Adreno的模 ...
HDR post process几乎存在于所有PC桌面引擎中,也开始在一些高端移动平台上得到了支持。HDR太常见了,以至于这年头如果看到一个不带HDR的真实感实时渲染,就会觉得很突兀。(比如,在SIGGRAPH展会上,看了Qualcomm的展台,再看ARM和Imagination的,就有一种回到dx8时代的感觉。大部分原因就来自于Mali和PowerVR缺乏很好的HDR。)在这方面,KlayGE的目标是在不同平台上,都能尽量多地复用HDR post process里的组件,同时效果也尽量接近。首先让我们看一张只有LDR的图。
啥都支持的平台
代表的平台有D3D11 level 10+,OpenGL 3+。支持包括B10G11R11F在内的各种浮点纹理。在这样的平台上,KlayGE的HDR流程是这样的。注意红字标出来的数据 ...
网上看到的GPU比较,都是桌面和桌面比,移动和移动比。很多人对此没有概念,总觉得移动的CPU/GPU在性能上也能比肩桌面CPU/GPU。那么就让我们来看看把各家的顶级GPU放在一起比硬指标,是什么样的结果吧。资料来自wikipedia和厂商自家宣传。
计算单元对比
Model
Fab (nm)
Core
Clock rate
API
Core (MHz)
Memory (MHz)
NVIDIA GeForce GTX Titan
28
2688
836-993
6008
D3D 11.0, OpenGL 4.4, CUDA 5.5, OpenCL 1.2
NVIDIA Quadro K6000
28
2880
901.5
6008
D3D 11.0, OpenGL 4.4, CUDA 5.5, OpenCL 1.2
AMD Fusion APU 8670D
32
384
844-950
1066
D3D 11.0, OpenGL 4.3, OpenCL 1.2
AMD ...
为迎接即将到来的OpenGL ES 3.0(开发代号Halti),KlayGE的OpenGLES2插件正式更名为OpenGLES,以保持兼容性。同时,还增加了OGLESConditionalRender,通过GL_EXT_occlusion_query_boolean来实现遮挡查询。
另外说说OpenGL ES 3。在2007年的OpenGL ES Overview里面就有提到代号为Halti的OGLES3,是基于OpenGL 3.0来开发,目标发布时间是2010年。但现在显然延期了很久。终于,在前不久的CES2012上,Imagination Technologies宣布了PowerVR6,支持OpenGL ES 3、OpenGL 3、D3D 10和OpenCL。特定型号还可以支持D3D11.1和OpenGL 4。之前ARM也宣布了Mali-6xx支持OpenGLES 3、D3D11和OpenCL 1.1。同样,Qualcomm的Adreno 3xx也会支持OpenGL ES 3 ...
去年4月份我写过《OpenGL ES Emulator横向比较》,比较了4种常见的OpenGL ES模拟器。过了将近一年,让我们再次横向比较一下现在的模拟器。
基本特性
厂商
NVIDIA
ARM
名称
x86 Windows OpenGL ES 2.0 Emulator
OpenGL ES 2.0 Emulator v1.3
模拟目标
Tegra
Mali
版本
OpenGL ES 1.1, 2.0; EGL 1.3
OpenGL ES 1.1,2.0; EGL 1.3
扩展
GL_EXT_texture_compression_dxt1
GL_EXT_texture_compression_s3tc
GL_NV_log_textures
GL_OES_compressed_paletted_texture
GL_OES_element_index_uint
GL_OES_framebuffer_object
GL_OES_mapbuffer
GL_OES_rgb8_rgba8
GL_OES_shader_source
GL_OES_stencil8 ...