Skip to content

Archive

Tag: Tegra
上一篇探讨了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 ...
Surface的GPU是Tegra3,但它对应的D3D能力,在网上却很难查到。昨天我自己在Surface上执行了一下Windows Kits 8带的ARM版dxcapsviewer,dump出了这个文件。我已经去掉了Microsoft Basic Renderer Driver和WARP这两个和PC上相同的部分,就剩下Tegra3本身的。 从这个列表可以看出,Surface只能支持D3D_FEATURE_LEVEL_9_1。估计是因为Tegra3不支持完整的occlusion query,以及最大纹理只支持到了2048,必须放弃9_2和9_3。很可惜的是MRT的功能也因此被禁用了。
去年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 ...
经过这几天的的开发和调试,KlayGE的所有例子都在NVIDIA的OpenGL ES模拟器上顺利运行了。除了没有GI、distance mapping退化成normal mapping、以及由于缺少float texture而不能实现高精度DoF之外,其他效果都和D3D11和OpenGL一致。 Tegra 2模拟器的问题 NVIDIA的OpenGL ES模拟器的模拟对象是Tegra 2,但支持的扩展不如真的Tegra 2。Tegra 2真机支持的OpenGL ES扩展有(来自Xoom): GL_ARB_draw_buffers GL_EXT_bgra GL_EXT_Cg_shader GL_EXT_packed_float GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_te ...