OpenGL-ES 2.0 VS OpenGL-ES 1.1,哪个更快?

2023-12-25

我已经使用 OpenGL-ES 1.1 编写了一个应用程序,但我想知道切换到 2.0 是否可以提高速度。有人用大多边形模型做过测试吗?我只想渲染具有不同颜色的三角形,没什么花哨的。然而,我想要渲染大约 100 万个三角形用于我的比较测试。


OpenGL ES 1.1 和 2.0 提供了两种截然不同的 3D 图形处理方式,因此我不知道直接的性能比较有多大意义。如果您创建仅模拟 OpenGL ES 1.1 固定功能管道的 2.0 着色器,那么使用这两种着色器可能会看到相同的性能。这得到了支持Apple 关于 PowerVR SGX 的文档 http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESPlatforms/OpenGLESPlatforms.html,其中说:

PowerVR SGX 的图形驱动程序还实现了 OpenGL ES 1.1 通过使用着色器有效地实现固定功能管道。

对于渲染基本的纯色三角形,我建议使用 OpenGL ES 1.1,因为您需要编写的代码要少得多。如果您能够使用 1.1 中的内置功能,通常会更容易定位该版本。通过能够针对(现在)少数使用不支持 2.0 的硬件的 iOS 设备所有者,您还可以拥有稍大的市场。

然而,与 1.1 相比,OpenGL ES 2.0 允许您使用其顶点和片段着色器执行更多操作,因此您可能使用大量几何体执行的一些操作可以由着色器来处理。这可以产生更好看、更快的效果。

例如,我正在使用 2.0 着色器完成分子渲染器的更新,这将显着提高可视化结构的分辨率。我通过使用自定义着色器来为这些结构中的球体和圆柱体生成光线追踪冒名顶替者来完成此操作。这些物体在任何放大倍数下看起来都是完美的圆形和光滑的。在 OpenGL ES 1.1 中使用纯几何体执行此操作几乎是不可能的,因为所需的三角形数量将是荒谬的(而且,广告牌不适用于我的圆柱体,并且这些形状的交集无法在那种情况)。

对于这些设备来说,一百万个三角形可能有点多。在我的基准测试中,旧款 iPhone 3G 每秒处理大约 500,000 个三角形,而第一代 iPad 大约每秒处理 2,000,000 个三角形。我还没有对更快的 iPad 2 进行全面的基准测试,但我的早期测试显示它每秒处理大约 8,000,000 - 10,000,000 个三角形。即使在最快的设备上,在最好的设备上,您也只能在百万个三角形场景中获得约 10 FPS。可能性是,你不需要那么大的几何形状,所以我会先尽我所能来减少它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenGL-ES 2.0 VS OpenGL-ES 1.1,哪个更快? 的相关文章

随机推荐

  • Javascript document.cookie 总是返回空字符串

    我在客户端 javascript 设置 cookie 时遇到了这个真正奇怪的问题 我目前正在开发一个小型的 1 页演示 以使用 cookie 来存储一些 首选项 请注意 我无法在此演示中使用服务器端语言或任何第 3 方 jQuery 插件
  • 尝试使用 python 3 加载 JSON 对象时出错

    我有以下 json 对象 我试图用 python 3 解析 customerData Joe visits 1 Carol visits 2 Howard visits 3 Carrie visits 4 我使用以下 python 代码来解
  • 等待任务.Delay(foo);需要几秒而不是毫秒

    使用可变延迟Task Delay当与类似 IO 的操作结合时 随机花费几秒而不是几毫秒 重现代码 using System using System Collections Generic using System Diagnostics
  • React-js 忽略标签的 'for' 属性

    我知道对于 class 我们必须使用 className 但是我如何做出反应以保留 for 属性 下列
  • 在循环中定义匿名函数(包括循环变量)?

    我知道这段代码不起作用 我也知道为什么 但是 我不知道如何解决它 JavaScript var function id return document getElementById id document addEventListener
  • 如何从我的网站邀请 Facebook 的朋友 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • SQL Server 2008 R2(.Net 2.0 应用程序)中的死锁问题

    所讨论的 Sql Server 2008 R2 实例是一个重负载 OLTP 生产服务器 几天前出现了僵局问题 但仍未解决 我们收到了 Xml 死锁报告 其中列出了死锁涉及的存储过程以及其他一些详细信息 我将首先尝试列出此 xml 中的事实
  • iOS 开发者版本与发行版版本

    一段时间以来 我一直有这样的印象 对于 iOS 使用开发人员配置文件签署构建允许应用程序通过 XCode 构建在授权设备 在开发配置文件中列出 上运行 并进行调试 而使用分发配置文件签名允许应用程序在其他 iOS 设备上运行 但不能调试 这
  • 在 PhoneGap 1.2.0 中使用 Google Analytics 时 Android 和 iOS 之间的差异

    我一直在尝试让 Google Analytics 在 Android 和 iOS 上的 PhoneGap 1 2 0 中工作 在 PhoneGap 1 2 0 中使用 Google Analytics 时 Android 和 iOS 之间的
  • 使用 jquery ajax 在同一 POST 请求中上传文件和 JSON 数据?

    我正在尝试使用 jQuery Ajax 发送 POST 请求 我想在其中上传文件和一些 json 数据 请查找代码 var logoImg input name logoImg get 0 files 0 var formData new
  • Jinja2 中的独特列表过滤器

    我有以下 YAML 结构 bri cards slot 1 subslot 0 ports 2 slot 1 subslot 1 ports 2 slot 1 subslot 2 ports 2 slot 2 subslot 0 ports
  • 以编程方式关闭 netty

    我正在使用 netty 4 0 24 Final 我需要以编程方式启动 停止 netty 服务器 启动服务器时 线程被阻塞在 f channel closeFuture sync 请帮助提供一些如何正确执行的提示 下面是 Main 类调用的
  • 当 datagrid-cell 获得焦点时自动编辑 WPF datagrid 内容

    我在 WPF 中有一个数据网格数据网格文本列 and a 数据网格模板列
  • 直接在程序中打开图像

    我按照教程在 C windows 中制作了一个基本的图片查看器程序 该程序工作正常 但我想像默认的 Windows 照片查看器一样打开它 我尝试直接使用该程序打开图像 但打开程序后图像框是空的 当图像在程序内部浏览打开时 图像框工作正常 但
  • 如何查看 mongodb 正在执行的查询?

    我一直在我的 log development log 中看到这个 我想知道这个查询是否真的在我的数据库中执行 MONGODB 0ms socialcrunch development tags find id gt secrets limi
  • 测试redis密钥过期

    我想知道是否有人有一种聪明的方法来测试 redis 密钥过期后的行为 我本质上是为我的应用程序构建一个小型的 Redis 支持的缓存 并想测试 Redis 密钥设置过期后会发生什么 我使用 rspec 作为我的测试框架 我尝试在测试期间使用
  • 安卓过渡

    我使用以下代码为我的 SplashScreen 设置两个图像之间的动画 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState set
  • 将 iPhone CoreData 文件从一个项目复制到另一个项目

    我正在尝试创建 2 个应用程序 一个构建持久存储 另一个使用它 到目前为止 我已经构建了一个应用程序 它使用 CoreData 从 XML 文件成功构建数据库 所以这个项目包含数据模型 实体的 h m 文件等 我现在尝试通过将数据模型文件
  • 如何计算双打的平均值,以使总误差最小?

    假设我们有一长串双打 比如说 N 1000000 array
  • OpenGL-ES 2.0 VS OpenGL-ES 1.1,哪个更快?

    我已经使用 OpenGL ES 1 1 编写了一个应用程序 但我想知道切换到 2 0 是否可以提高速度 有人用大多边形模型做过测试吗 我只想渲染具有不同颜色的三角形 没什么花哨的 然而 我想要渲染大约 100 万个三角形用于我的比较测试 O