去年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 GL_OES_texture_half_float |
GLES_OES_compressed_ETC1_RGB8_texture GLES_EXT_texture_format_BGRA8888 GLES_OES_texture_npot |
支持的例子 | 所有 | DetailedSurface DistanceMapping EmptyApp Fractal ProceduralTex Text VertexDisplacement VideoTexture |
厂商 | PowerVR | |
名称 | PowerVR SDK | |
模拟目标 | SGX | |
核心版本 | OpenGL ES 2.0; EGL 1.4 | |
扩展 | GL_OES_byte_coordinates GL_OES_fixed_point GL_OES_query_matrix GL_OES_single_precision GL_OES_matrix_get GL_OES_read_format GL_IMG_read_format GL_OES_point_sprite GL_OES_query_matrix GL_OES_texture_env_crossbar GL_OES_texture_mirrored_repeat GL_OES_blend_subtract GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_stencil_wrap GL_OES_extended_matrix_palette GL_IMG_multisampled_render_to_texture GL_OES_vertex_half_float GL_OES_compressed_ETC1_RGB8_texture GL_OES_compressed_paletted_texture GL_OES_depth24 GL_OES_depth_texture GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_packed_depth_stencil GL_EXT_discard_framebuffer GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_cube_map GL_OES_rgb8_rgba8 GL_OES_stencil8 GL_OES_fragment_precision_high GL_OES_element_index_uint GL_IMG_texture_compression_pvrtc GL_OES_mapbuffer GL_OES_texture_npot GL_EXT_multi_draw_arrays |
|
支持的例子 | DepthPeeling DistanceMapping EmptyApp Fractal Refract Subsurface Text VertexDisplacement VideoTexture |
特点
NVIDIA:和我上一次的横向比较是同一个模拟器。dll的名字和函数的调用方式和别的模拟器有些区别。在做函数动态载入的时候需要注意。
ARM:版本升级到了1.3,增加了2个扩展,其他没啥区别。这个模拟器不支持half float和float的texture,所以hdr相关的都无法使用。
PowerVR:这次新加入比较的模拟器。本身功能很齐备,除了模拟OpenGL ES之外,还带有一系列的纹理压缩工具、shader编译工具等。在编译shader的时候还会打出每一行的开销(其实我希望把它关掉的)。但不知道为什么,比较复杂的shader给glCompileShader之后,就会卡死,过很长时间也没编译出来。所以KlayGE的一些例子因此无法运行。
Comments