OpenGL ES在移动设备上大行其道,在PC上要开发点东西,一般就需要一个OpenGL ES Emulator。目前常见的模拟器有来自AMD、ARM、Qualcomm和NVIDIA的。他们的能力如何呢?让我们来进行一次简单的横向比较。

基本特性

厂商 AMD ARM
名称 OpenGL ES 2.0 Emulator
(已经卖给Qualcomm)
OpenGL ES 2.0 Emulator v1.2
模拟目标 AMD handheld GPU Mali
核心版本 2.0 1.x,2.0
扩展 GL_AMD_alpha_test
GL_AMD_compressed_3DC_texture
GL_AMD_compressed_ATC_texture
GL_AMD_logic_op
GL_AMD_program_binary_Z400
GL_AMD_writeonly_rendering
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_type_2_10_10_10_REV
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_compressed_paletted_texture
GL_OES_depth_texture
GL_OES_depth24
GL_OES_element_index_uint
GL_OES_fragment_precision_high
GL_OES_get_program_binary
GL_OES_packed_depth_stencil
GL_OES_rgb8_rgba8
GL_OES_standard_derivatives
GL_OES_texture_3D
GL_OES_texture_float
GL_OES_texture_float_linear
GL_OES_texture_half_float
GL_OES_texture_half_float_linear
GL_OES_texture_npot
GL_OES_vertex_half_float
GL_OES_vertex_type_10_10_10_2
GL_OES_compressed_ETC1_RGB8_texture
厂商 Qualcomm NVIDIA
名称 Adreno SDK 2.2 x86 Windows OpenGL ES 2.0 Emulator
模拟目标 QUALCOMM Adreno™ hardware Tegra
核心版本 2.0 2.0
扩展 GL_AMD_alpha_test
GL_AMD_compressed_3DC_texture
GL_AMD_compressed_ATC_texture
GL_AMD_logic_op
GL_AMD_shader_binary_Z400
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_type_2_10_10_10_REV
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_compressed_paletted_texture
GL_OES_depth_texture
GL_OES_depth24
GL_OES_element_index_uint
GL_OES_fragment_precision_high
GL_OES_packed_depth_stencil
GL_OES_rgb8_rgba8
GL_OES_standard_derivatives
GL_OES_texture_3D
GL_OES_texture_float
GL_OES_texture_float_linear
GL_OES_texture_half_float
GL_OES_texture_half_float_linear
GL_OES_texture_npot
GL_OES_vertex_half_float
GL_OES_vertex_type_10_10_10_2
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

特点

AMD:老牌模拟器,已经随着AMD的手持设备业务一起卖给Qualcomm。这款模拟器基本上中规中矩,用于 桌面开发OpenGL ES 2的开发没问题。它的扩展能满足常见的特效需要,兼容性和速度也不错。AMD的OpenGL ES模拟器对ES标准的支持程度甚至好于AMD的OpenGL驱动对GL标准的支持。

ARM:除了ES 2,它还支持ES 1.x。所以如果你想开发ES 1.x的程序可以选择ARM的。它的问题在于,扩展列表里只有ETC1一个,没法支持比较强大的特性比如浮点纹理。所以很多特效的使用可能受限制。需要注 意的是,因为它支持ES 1.x,eglChooseConfig的第二个参数里必须包含EGL_OPENGL_ES2_BIT才能建立ES 2.0的context。

Qualcomm:直接继承自AMD的模拟器,两者几乎完全相同。但在使用中我遇到的问题是,在NV的显卡上, 这个模拟器的表现非常奇怪,他会建立一个server和一个client,通过socket连接,然后死锁...而在AMD的卡上则没有任何问题。总的来 说,我不是很推荐这个模拟器。

NVIDIA:在这几个模拟器中,NVIDIA的最新,模拟的目标硬件也最强大。但在使用中的问题比较多:

  1. 虽然看似提供了OpenGL ES 1.x和OpenVG的接口,但只是个空的链接,并没有实现代码。
  2. libGLESv2和libEGL的内容被合并到一个名为libGLES20的静态库中,所以link的地方需要做一些修改。
  3. libGLES20中的函数是__cdecl的调用方式,而不是其他模拟器使用的__stdcall,所以如果遇到link出错,就查查这个地方吧。
  4. glMapBufferOES虽然提供了,但返回总是NULL。

目前我做得比较也就是这些。我比较推荐在AMD卡上用Qualcomm的,否则就用ARM的。NVIDIA的可能还需要一些时间,得等其稳定下来。

OpenGL ES 模拟器相关推荐

  1. OpenGL ES Emulator再次横向比较

    去年4月份我写过<OpenGL ES Emulator横向比较>,比较了4种常见的OpenGL ES模拟器.过了将近一年,让我们再次横向比较一下现在的模拟器. 基本特性 厂商 NVIDIA ...

  2. OpenGL ES Emulator横向比较

    转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/2011/04/20/opengl-es-emulator%e6%a8%aa%e5%90%91%e6%af% ...

  3. windows下搭建OpenGL ES开发环境

    硬件上需要兼容OpenGL 2.0的显卡, Windows XP or Windows Vista . 1. 安装vc2005或更高版本,安装后会有opengl的库. 2. 安装shader分析工具  ...

  4. 一文学会 PC搭建opengl es C++开发环境

    Windows搭建opengl es C++开发环境 之前编写Native的OpenGL ES实现代码时,使用的编译工具无论是Android Studio还是eclipse都给我一种:用txt文档中写 ...

  5. OpenGL ES Emulator比较

    http://blog.csdn.net/nhsoft/article/details/6337434 http://www.klayge.org/2011/04/20/opengl-es-emula ...

  6. 学习OpenGL ES之透明和混合

    获取示例代码 本文主要讲解OpenGL ES对于透明颜色的处理,在例子中我绘制了三个平面,分别赋予绿色半透明纹理,红色半透明纹理,和不透明纹理. 首先为这三张图生成纹理. - (void)genTex ...

  7. opengl es 2.0环境

    http://blog.csdn.net/tspangle/article/details/38735071 1. 下载AMD的OpenGL ES2.0的模拟器,下载地址: http://www.op ...

  8. Android 硬件 OpenGL ES 模拟设计概述

    简介 Android 平台的 OpenGL ES 模拟由多个组件实现,它们是: 一些宿主机的 "翻译器" 库.它们实现了由 Khronos 定义的 EGL,GLES 1.1 和 G ...

  9. 《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.4节文件I/O

    本节书摘来自异步社区<Android 3D游戏开发技术宝典--OpenGL ES 2.0>一书中的第2章,第2.4节文件I/O,作者 吴亚峰,更多章节内容可以访问云栖社区"异步社 ...

最新文章

  1. thinkphp url缩短
  2. 【Python金融量化 2- 100 】股票量化分析基本知识
  3. ZOJ 1292 Integer Inquiry
  4. php特性介绍(贼有用)
  5. HTML5 浏览器支持(怎么样让低版本浏览器支持html5?)
  6. 类及其组成所使用的常见修饰符
  7. 草稿pyqt控件简单了解
  8. 50.分治算法练习:  二分算法:  2703 奶牛代理商 XII
  9. python反向代理服务器_主机、服务器,代理服务器,反向代理服务器理解(自用)...
  10. (01)OpenGL es中只在指定区域渲染view
  11. 9.Linux性能诊断 --- Web应用安全:攻击,防护与检测,IPv6,容器安全
  12. TortoiseSVN的安装与使用
  13. 微信发红包的测试点有哪些? 评论/点赞/分享/收藏/收索/上传/下载
  14. win10共享磁盘/硬盘提示“您没有权限访问,请与网络管理员联系请求访问权限”解决方案
  15. Vue2响应式实现原理和解析
  16. ​6. 独享锁 VS 共享锁
  17. NUL 与 NULL
  18. python xmind_2018-09-14 python-xmind文件解析
  19. 02 锁版本--通用模块--knife4j--profiles
  20. (LeetCode)Java 求解正则表达式匹配

热门文章

  1. 网页复制内容修改(解决复制文本多空格问题,带标注信息(如版权信息))
  2. 如何获取vs code中插件Waka Time的API key
  3. python+pands+matplotlib分析Excel表格
  4. HTML怎么在背景中加视频,视频加背景图片 怎样把一个视频嵌入到一个图片中
  5. tomcat启动设备未就绪_安全启动异常就绪协程
  6. 科普扫盲---ssh免密登陆(ssh的一些小秘密)
  7. B-spline算法(B样条曲线)
  8. JIRA中的史诗、故事、版本与冲刺
  9. PYRIT 强大的密码分析工具(可使用GPU分析)-学习笔记
  10. 基于51单片机的烟雾火灾报警系统