OpenGL-ES

OpenGL ES 扫盲贴----简单教程

什么是OpenGL ES?OpenGL ES (为OpenGL for Embedded System的缩写)为适用于嵌入式系统的一个免费二维和三维图形库,为桌面版本OpenGL 的一个子集。OpenGL ES 定义了一个在移动平台上能够支持OpenGL最基本功能的精 ...

什么是OpenGL ES?

OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。

为桌面版本OpenGL 的一个子集。

OpenGL ES 定义了一个在移动平台上能够支持OpenGL最基本功能的精简标准,以适应如手机,PDA或其它消费者移动终端的显示系统。

Khronos Group 定义和管理了OpenGL ES标准。

OpenGL 与 OpenGL ES的关系OpenGL ES 是基于桌面版本OpenGL 的:

OpenGL ES 1.0 基于OpenGL 1.3 , 在2003年发布

OpenGL ES 1.1 基于OpenGL 1.5 , 在2004年发布

OpenGL ES 2.0 基于OpenGL2.0, 在2007年发布

如此精美绝伦的图片怎么来的?

请仔细看题图图片,这不是照片,这样精美绝伦的图片是PowerVR Wizard GPU利用实时光线追踪技术实现的效果,它达到了照片集的效果!在今年的GDC 2016上会进行演示。这是我们的剧透!

相比传统利用台式GPU实现光线追踪,PowerVR Wizard GPU的能效提升了50倍!这是其他的演示效果

我们用最新的OpenGL ES 3.2 API 来创建 Dwarf Hall

来参加GDC2016的开发者们将在Imagination的展位看到很多基于Vulkan 图形和计算应用演示,下图就是一副日落的演示。

视频:PowerVR工具介绍--PVRShaman

PVRShaman视频展示了其主要功能。这是一个着色程序,使用PowerVR对象数据(POD)文件和PowerVR效果(PFX)格式,可以对用于OpenGL ES 2.0和3.0的着色器进行视觉原型设计和分析。视频还阐述了PVRShaman界面的主要元素,集中展示POD文件如何进行视觉化和着色处理。

分析和优化使用PowerVR GPU的Cocos2d-x游戏引擎

最近,我们与ChukongTechnologie合作,开发Cocos2d-x游戏引擎。我们将对此更新一系列相关文章,本文是第一篇。本文中,我将简单概述基于图形演示即Fantasy Warrior 3D的Cocos2d-x的分析和优化过程。

何为Cocos2d-x?

Cocos2d-x是一套用C++编写的开源及跨平台游戏开发工具。其引擎是世界上最流行的开源游戏引擎,且根据最新的AppBrain数据,这也是Google Play使用的继Unity之后第二大流行的游戏引擎。

引擎历来都是2 D。然而过去几年里,ChukongDUI1引擎多元化,并添加3 D渲染来扩充其广受欢迎的2 D工具集。

何为Fantasy Warrior 3D?

Fantasy Warrior 3D是一款使用Cocos2d-x 3.4的展示项目。其在Cocos2d-x中是导入演示,覆盖了多个3D核心功能:
• Sprite3D
• 动画3D
• 网格
• 布告板
• 摄像机
• 灯光
• 新音频引擎

新一代图形编程接口Vulkan简介(二)

新一代图形接口Vulkan简介(一)

1. 统一接口

Vulkan为跨平台跨设备的图形编程提供了统一的接口。这个统一接口可以理解为以下几个方面:

Vulkan可以支持不同的操作系统平台,不同的GPU产品。操作系统包括Linux,Windows和Android等。支持Vulkan的GPU厂家有Imagination,AMD, Intel, NVIDIA, ARM, VIVANTE, QUALCOMM等主流厂商。
使用Vulkan编程时,应用是链接一样的图形库,引用同样的头文件。无论应用运行在哪里,只需要编写同一份代码,不再像OpenGL一样需要定义Windows/Android/Linux等相关的预处理宏来处理操作系统相关的代码。
OpenGL作为一个发展多年的图形接口,导致任何一个渲染绘制的效果都会有多种不同的实现方式,而且不同的方式在不同的GPU平台上面性能也不尽相同。这让应用程序员非常难于抉择。Vulkan大幅减少这种功能实现的方式,只为应用提供最有效率的方式。这样应用编程变得简单而且不需要考虑不同GPU平台的性能问题。而GPU厂商负责为这种单一的实现方式来优化其内部实现,使其达到最佳性能。

新一代图形接口Vulkan简介(一)

1. Khronos工业组织标准介绍

Khronos Group团队成立于2000年1月,由包括3Dlabs, ATI, Discreet, Evans & Sutherland, Intel, NVIDIA, SGI 和 Sun Microsystems 在内的多家国际知名多媒体行业领导者创立,致力于发展开放标准的应用程序接口API,以实现在多种平台和终端设备上的媒体创作、加速和回放。

Khronos Group

目前该组织包括了所有国际知名的游戏引擎厂商,GPU厂商,PC厂商和移动芯片厂商等等。在3D图形领域,Khronos负责OpenGL,OpenGL ES,WebGL,OpenCL,以及新一代接口Vulkan等图形编程接口标准的制定。

PowerVR图形SDK v4.0及工具终于问世

PowerVR图形SDK v4.0终于问世!v4.0冠以全新的框架,将给现有的实用程序带来一系列改进,是迄今为止我们发布的最重要的版本。

配备全新的框架后,v4.0旨在帮助开发人员从OpenGL ES向新一代的图形API如Vulkan过渡。该框架经过重新编写,跨平台跨API,将成为构建渲染和打造游戏引擎的架构。它应用现代技术、优化PowerVR架构并利用可用的扩展。使用我们的开放标准POD 、PVR和PFX资产容器格式将非常容易,通过加载代码和紧密映射到这些格式上的资产即可。

新框架中应用了颇受欢迎的SDK示例,以作使用参考。我们还修改了SDK演示,利用了新的资产、场景等。

此外,我们亦对PowerVR工具套件的后端和用户界面进行了系列改进。实用工具已经实现了一些新的功能,详细如下。

PowerVR SDK

PowerVR框架

PowerVR框架

Vulkan:扩展到多个线程

我们发布了系列有关Vulkan的文章——希望您已阅读其他文章或已关注我们的在线研讨会。

本文将讨论扩展到多个线程的重要性,以及Vulkan如何实现这一目标。

CPU瓶颈——redux

现代CPU有多个内核,在此我不过多讨论。为了获得特定CPU的最佳性能,通过多线程来充分利用这些额外的内核至关重要。如果不有效利用这些内核,你会局限于单个内核的性能——很多性能(效率)不能被合理利用。之前,我编写了相关代码,即GPU在CPU上保持无期限等待状态,以此作为具有高CPU消耗的低效API函数。但即使高消耗,这一问题也可能通过传播到多个线程而有所缓和。

如果您细看我们Gnome Horde 演示上的CPU图表,您会发现即便是相同的内容,OpenGL ES的峰值仍会高很多。内核0和内核1在不断消耗,性能也大为降低。但有四个Intel CPU内核在Nexus player上可用,且其中两个似乎处于备用闲置状态。实际上,确有三个内核在给定时间内处于闲置状态。您看到两个内核状态活跃的唯一原因是,操作系统在内核之间进行线程跳跃,以试图保持芯片冷却。

Vulkan:显示的操作和稳定的Frame Times(节选2)

续上篇

 Vulkan采用的是显示策略

Vulkan致力于为老式API面临的隐式操作模式问题提供一种显示操作的选择。不再会有任何隐式的依赖问题,内存分配完全靠应用程序来处理。API中所有模块都是显示机制的,只有这样的组合才会解决问题,任何孤立的一块都是无意义的。

 显示的内存分配

相比OpenGL ES,在Vulkan中资源的分配方法则更加的显示化。例如,如果想创建一幅图片并分配存储空间,如一下步骤:
1. 根据格式,大小等要求创建一个图片对象
2. 查询图片对象所需要的存储空间
3. 选取一块合适的内存空间/堆空间用于分配
4. 分配存储空间
5. 将此存储空间与图片对象绑定

以上步骤一点也不繁杂:例如你可以分配一块大的存储空间,然后将其分块与不同的资源进行绑定。像以往分配很多小的存储片区的方法对性能是有负面影响的。在一些平台上,你可以创建的存储空间片区数量是有限制的,否则会出现系统内存溢出等问题。

 显示的数据传输

Vulkan:显示的操作和稳定的Frame Times(节选1)

欢迎访问我的“Vulkan系列博客”的倒数第二篇文章,谢谢一直以来的支持—还有一篇就要结束了。

在这篇文章中我将做一些分析来说明Vulkan为什么是一个显示的API,以及这些特性意味着什么。很多地方已经提到Vulkan是一个底层的API,从某种角度来看确实如此,但是对于开发者以及处理跨厂商兼容等很多方面还仍是比较抽象的。

Vulkan

大多数人真正想表达的意思是:Vulkan是一个显示的API,你需要准确的告诉它你想要什么,而不是依赖默认配置或者驱动来实现你的想法。

Vulkan

由于不是显示的,老版本的API经常面临很多令人头疼的问题,很难进行调试,有时候甚至是不可能的,更别提修复和解决问题了。

同步内容
--电子创新网--
粤ICP备12070055号