内容简介:OpenGL* 性能提示:相比图像,纹理具有更出色的渲染性能
简介
本文讨论了为何使用纹理而非图像可以提升 OpenGL 渲染性能。 为说明这一问题,我们在一款简单的 C++ 应用中轮流使用纹理和图像。 该应用旨在表明使用这两种技术时对渲染性能(每帧毫秒数)的影响。 尽管本文适用于图形游戏开发人员,但这些概念适用于使用 OpenGL 4.3 及更高版本的所有应用。 示例代码用 C ++ 编写,专为 Windows* 8.1 和 10 设备而设计。
要求
构建和运行示例应用需要具备以下条件:
采用第六代智能英特尔® 酷睿™ 处理器(代号为 Skylake)的电脑
OpenGL 4.3 或更高版本
Microsoft Visual Studio* 2013 或更高版本
相比图像,纹理具有更出色的渲染性能
使用纹理而非图像可帮助 OpenGL 实现最佳的渲染性能。 通过轮流使用纹理和 2D 图像,附带的应用证明了这一结论。 每种技术目前实现的性能(以每帧毫秒数进行显示),与每秒帧数一起显示在控制台窗口中。 按下空格键可轮流显示各种组合,方便您进行比较。 进行切换时,图像会显示动画效果,可视化表示切换操作。
测量纹理时使用了下列组合:
GL_TEXTURE_MAX_LEVEL
GL_TEXTURE_BASE_LEVEL
GL_TEXTURE_MAG_FILTER
GL_TEXTURE_MIN_FILTER
为公平衡量使用图像时的性能,该应用计算了纹理中与纹理采样硬件在纹理 mipmap 链中处理的图像大小最接近的图像。 然后使用该大小的图像。 您可以在 reshape() 函数中看到计算结果。 这意味着屏幕图像越大,应用在 mipmap 链中使用的图像就越大。 反之亦然。
Skylake 处理器图形
第六代智能英特尔酷睿处理器提供卓越的 2D 和 3D 图形性能,最高可达 1152 GFLOPS。 其多核架构可提高性能并增加每个时钟周期的指令数。
与前几代相比,这些处理器具有许多新的优势,可显著提升整体计算性能和视觉性能。 示例增强功能包括 GPU,结合性能更高的 CPU,GPU 可提供相比前代英特尔® 处理器高出最多 40% 的图形性能。 第六代智能英特尔酷睿处理器经过重新设计,可提供更高保真度的视频输出,更高分辨率的视频播放,以及对更低功耗系统的更加无缝的响应能力。 Skylake 支持 4K 视频播放和扩展的超频,是游戏开发人员的理想之选。
GPU 内存访问包含原子最小值、最大值以及共享本地内存或全局内存中 32 位浮点值的比较和交换。 这一新架构还为到同一地址的紧接原子提供了性能改进。 平铺资源包括对部分驻留(稀疏)的大型纹理和缓冲区的支持。 读取未映射磁贴会返回零,并且对其的写入操作将被丢弃。 此外还有用于固定 LOD 和获取操作状态的新着色器指令。 现在还支持较大的纹理和缓冲区。 (例如,您最大可使用 128k x 128k x 8B 的细化 2D 纹理。)
由图形 API 提供支持时,无边界资源可将一个着色器可使用的动态资源数量从大约 256 个增加至 2,000,000 个。 这一改变可降低与更新绑定表相关的开销,为 程序员 提供更高的灵活性。
执行单元也改进了本地 16 位浮点支持。 使用半精度时,这种增强的浮点支持可带来功耗和性能方面的双重优势。
显示功能进一步提供了多平面重叠选项,拥有在显示时缩放、转换、颜色校正和构成多个曲面的硬件支持。 曲面可来自使用不同更新频率和分辨率的单独交换链(例如,在放大、较低分辨率的帧渲染基础上组合的全分辨率 GUI 元素),从而提供显著增强。
其架构支持最多三个切片的 GPU(提供 72 个 EU)。 这一架构还提供了更高的功率门控和时钟域灵活性,这是值得利用的。
构建和运行应用
按照下面的步骤编译和运行示例应用。
下载包含示例应用源代码的 ZIP 文件,将其解压到工作目录下。
双击打开 lesson3_textureVsImage/lesson3.sln 文件,启动 Microsoft Visual Studio 2013。
选择 /,构建应用。
构建成功后,您可以在 Visual Studio 中运行示例。
应用运行时,主窗口将打开,您将看到一个使用纹理或图像组合渲染的图像,以及 Microsoft Visual Studio 2013 控制台窗口中显示的性能测量结果。 按空格键切换至下一种模式,查看性能差异。 切换模式时,图像将呈现动画显示效果以直观地反映变化。 按 ESC 便可退出应用。
代码亮点
该示例使用纹理或图像… 查看全文
了解更多相关内容,请关注CSDN英特尔开发专区!
Intel技术双周刊已全面开启:订阅请点击这里。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 分析 AGI 纹理数据并提升 GPU 性能
- 通过共享内存优化 Flutter 外接纹理的渲染性能,实时渲染不是梦
- OpenGL ES 入门之旅 -- GLSL纹理单元和纹理翻转解决策略
- OpenGL ES入门: 渲染金字塔 - 颜色、纹理、纹理与颜色混合填充以及GLKit实现
- WebGL 纹理详解
- WebGL 纹理颜色原理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
挑战程序设计竞赛
秋叶拓哉、岩田阳一、北川宜稔 / 巫泽俊、庄俊元、李津羽 / 人民邮电出版社 / 2013-7-1 / CNY 79.00
世界顶级程序设计高手的经验总结 【ACM-ICPC全球总冠军】巫泽俊主译 日本ACM-ICPC参赛者人手一册 本书对程序设计竞赛中的基础算法和经典问题进行了汇总,分为准备篇、初级篇、中级篇与高级篇4章。作者结合自己丰富的参赛经验,对严格筛选的110 多道各类试题进行了由浅入深、由易及难的细致讲解,并介绍了许多实用技巧。每章后附有习题,供读者练习,巩固所学。 本书适合程序设计......一起来看看 《挑战程序设计竞赛》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
Markdown 在线编辑器
Markdown 在线编辑器