OpenGL ES Emulator比较

Ubuntu18.04 环境构建OpenGL ES 3.0运行环境 说明:本教程是在《OpenGL ES 3.0编程指南(原书第2版)》基础上完成。 准备工作 下载源码(点击下面链接) 原书附带代码下载 下载Emulator(点击下面链接) 官方下载地址(根据本地主机的系统位数自行选择,这里演示选择版本为:Linux64 Installer: PowerVR Tools and SDK) 安装Emulator和需要的软件包 首先修改下载的Emuat... 阅读详情

http://blog.youkuaiyun.com/nhsoft/article/details/6337434

http://www.klayge.org/2011/04/20/opengl-es-emulator横向比较/

http://blog.youkuaiyun.com/nhsoft/article/details/6337434

============================================================================

目前我手边可选的Emulator有这些

1. Mali ARM的ES 2.0 Emulator [libEGL.dll  libEGLSv2.dll]

2. AMD 2009的Emulator          [libEGL.dll  libEGLSv2.dll]

3. Ati的atioglxx.dll             

4. NV的Emulator.

 

这几个Emulator中,第二个是我以前用过。但是没成功。NV的据龚敏敏说不好使,暂时不考虑。现在就先支持前面三个。因为atioglxx.dll中大部分的函数加载都做完了,于是决定做一个EGL2Wrapper。程序只连接这个Wrapper。这个Wrapper则动态的加载不同的dll


这些Emulator中, 当然atioglxx.dll是性能最好的,最省事的。其次是AMD 2009的Emulator。但是这个模拟器明显就对glsl语法严格很多。precesion lowp float这样的语句必须放在最前面。

而Mali的则是最头疼的,性能也最差,glShaderBinary没法用。glCompileShader又弹出个console来,而且,对语法要求比AMD 2009还恶心。 mul函数不支持矩阵和向量乘法, highp就更不想了。0.0f 这样的浮点数写法都有错,更多的细节大家慢慢体会吧。

 

因此,如果想多平台运行,还是推荐AMD2009那个Emulator。官网已经吓不倒了。其它地方再找找吧。

注意一下,libEGL.dll是有可能依赖于libEGLSv2.dll的。 所以,在很多时候,在LoadLibrary(libEGL.dll)的时候,应该把当前路劲设置到libEGL.dll所在的路径。

去年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的一些例子因此无法运行。


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的可能还需要一些时间,得等其稳定下来

原文地址:http://blog.youkuaiyun.com/u013467442/article/details/44087625

一文详解OpenGLES C++环境搭建:Windows平台3D图形开发 win7下VS2013搭建opengl es 2.0的C++开发环境@(预发布)[Opengl es]文章参考: http://codingnow.cn/opengles/1501.html1. 下载AMD的OpenGL ES2.0的模拟器,下载地址:http://www.opengles-book.com/ESEmulator.2009-04-28-v1.4.APRIL_2009_RELEASE 阅读详情

相关推荐

Mali OpenGL ES模拟器实战:从安装配置到跨平台渲染调试

在移动端图形开发中,OpenGL ES作为嵌入式平台的图形API标准,其与桌面OpenGL的差异常导致shader编译和渲染行为不一致。ARM官方提供的Mali OpenGL ES Emulator通过API翻译层,将GLES调用映射为桌面OpenGL指令,模拟Mali驱动行为,为开发者提供贴近真机的API兼容性验证环境。它并非硬件模拟器,不涉及GPU微架构模拟,但能有效暴露shader精度问题、扩展支持差异及EGL上下文创建错误。文章详细介绍了该模拟器在Windows 64位环境下的注册表配置(ICD机制

axfcjwkbi259888707的博客 325

在Windows10平台使用VS2019搭建OpenGL ES开发环境

在Windows上搭建OpenGL ES开发环境

weixin_44138479的博客 1996

Mali_OpenGL_ES_Emulator-v3.0.1.g72cc2-Windows-64bit.zip

模拟器喵″

OpenGL ES Emulator再次横向比较

去年4月份我写过《OpenGL ES Emulator横向比较》,比较了4种常见的OpenGL ES模拟器。过了将近一年,让我们再次横向比较一下现在的模拟器。 基本特性 厂商 NVIDIA ARM 名称 x86 Windows OpenGL ES 2.0 Emulator OpenGL ES 2.0 Emulator v1.3

痞子龙3D编程 2635

Mali_OpenGL_ES_Emulator-v3.0.2.zip.rar

Mali_OpenGL_ES模拟器,Mali_OpenGL_ES_Emulator-v3.0.2.g694a9-Windows-32bit.zip

OpenGL_ES_Emulator_1.3.0.7490_Win32

mali gpu 支持的emulator环境。

OpenGL ES Emulator横向比较

转载请注明出处为KlayGE游戏引擎,本文地址为http://www.klayge.org/2011/04/20/opengl-es-emulator%e6%a8%aa%e5%90%91%e6%af%94%e8%be%83/    OpenGL ES在移动设备上大行其道,在PC上要开发点东西,一般就需要一个OpenGL ES Emulator。目前常见的模拟器有来自AMD、ARM、Qualco

痞子龙3D编程 1254

Mali_OpenGL_ES_Emulator-v3.0.1.g72cc2-Windows-32bit.zip

模拟器喵

opengl es3.0 仿真环境在win10上的搭建

参考:https://blog.youkuaiyun.com/msdb198901/article/details/77506165 https://blog.youkuaiyun.com/u010312436/article/details/82984322 1 环境版本        操作系统:win10 64bit        VS版本:2015        CMAKE版本:3.4.3       ...

H265技术专栏 1721

从光斑图到锤形优化:一次搞定Zemax双胶合透镜的像散与场曲问题

本文详细解析了Zemax双胶合透镜设计中像散与场曲问题的诊断与优化方法。从光斑图分析到锤形优化技巧,提供了完整的光学设计实战指南,帮助设计师快速定位问题并有效改善系统性能,特别适合光学设计工程师和Zemax使用者参考。

weixin_27134495的博客 231

FPGA以太网开发实战:YT8511 PHY芯片MDIO接口配置全流程(附Verilog代码)

本文详细介绍了FPGA以太网开发中YT8511 PHY芯片MDIO接口的配置全流程,包括MDIO接口技术解析、Verilog状态机设计、核心代码实现细节及实战调试经验。通过提供经过验证的Verilog代码和优化策略,帮助开发者快速掌握以太网PHY芯片配置技术,提升通信系统性能。

weixin_29184371的博客 232

Mali_OpenGL_ES_Emulator-v3.0.2 资源下载介绍

Mali_OpenGL_ES_Emulator-v3.0.2 资源下载介绍 【下载地址】Mali_OpenGL_ES_Emulator-v3.0.2资源下载介绍 Mali_OpenGL_ES_Emulator-v3.0.2是一款专为Windows 32位系统设计的OpenGL ES环境模拟器,为开发者提供了便捷的测试和开...

gitblog_06778的博客 578

CMap数据库学习及结果可视化

CMap是一个生物信息学数据库和工具,旨在通过比较基因表达谱来揭示药物、基因和疾病之间的潜在关联。CMap数据库主要用于寻找药物、化合物和生物过程之间的关系,并用于药物重定位(drug repurposing)和疾病机制研究。

zfyyzhys的博客 5599

OpenGL ES 模拟器的支持与比较。

OpenGL ES模拟器的动态加载 。以及多个OpenGL ES模拟器的比较

Nhsoft的专栏 8562

MIT6.824-lab2D-2022(日志压缩详细讲解)

从paper中去讲解,并实现关于lab2D的代码。

幸平的博客 6035

图解说明JLink驱动与目标板电源匹配的关键细节

深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。

weixin_42173218的博客 431

Windows 10 + OpenGL ES 3.0模拟器环境配置

有几个不错的关于原理讲解的资源,列在后面了。这里先在windows里用vs2019跑一个最基本的模型,原理讲解在这里,你好,三角形 - LearnOpenGL CN源码在这里,Code Viewer. Source code: src/1.getting_started/2.1.hello_triangle/hello_triangle.cpp不过windows下的话,貌似根本就没有OpenGL 3.0这个东西,然后搜索了一下,有个OpenGL ES Emulator的东西可以在windows上跑。Mali

tanmx219的博客 3032

半导体晶圆调平系统:基于最小二乘法的实现方案

基于最小二乘法的晶圆调平技术通过数学建模与工程实现的结合,解决了半导体量测中高精度平面对准的核心问题。实际应用中,需根据设备特性优化采样策略、校准传感器误差,并通过实时性优化满足高产能场景需求。该方案的模块化设计(如分离数据采集、拟合计算、补偿输出)也为后续功能扩展(如引入机器学习优化拟合模型)提供了灵活性。

品质生活,极致编程。 1177

Windows10下搭建OpenGL ES3.0开发环境(VS2019)

参考文章: https://blog.youkuaiyun.com/u010312436/article/details/82984322 https://blog.youkuaiyun.com/mmy545237835/article/details/80762150 https://blog.youkuaiyun.com/dardgen2015/article/details/51563914?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLe

weixin_43974985的博客 2977

YOLOv8与UNetV2融合:一种面向目标检测与图像分割的混合方法【附核心代码】

我们提出了一种基于YOLOv8和UNetV2相结合的混合架构。该架构利用YOLOv8作为主干进行目标检测,同时在YOLOv8的特征提取过程中,引入UNetV2来进行图像分割任务的增强。在该架构中,YOLOv8负责大范围目标检测和位置预测,而UNetV2则在检测网络的特征图基础上,通过其高效的上下文信息提取和细节恢复能力,进一步优化分割任务。在本文中,我们提出了一种改进YOLOv8的方法,通过引入图像分割网络UNetV2来提高图像分割检测性能。

一键难忘的博客 3524

学Simulink——十二脉波整流电路(移相变压器)谐波抵消仿真

Y:Δ = 1:√3(若 DC 同压)— 此处同相电压故 220V(Y)=220V(Δ phase)Y(相电压=220V)、Δ(线电压=380V ⇒ 相=220V,30° 移相)可经 Lbal​=0.5mH(平衡电抗)或直接短(大 L_dc 下均流尚可)✅ 直流输出纹波频率 = 12·f_line(vs 6·f_line)直流输出 → Ldc​=50mH→Cdc​=2200µF→R=30Ω。Line‑Line RMS = 380 V(⇒ 相=220V)Vdc​≈1.35⋅380≈513V(同 6‑脉波)

xiaoheshang_123的博客 58
上一篇: win7下搭建opengl es 2.0开发环境
下一篇: Android中的OpenGL ES简介
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值