OpenGL ES - Embedded 3D Graphics Algorithm Standard
OpenGL ES - Embedded 3D Graphics Algorithm Standard

With the leak of Android 4.3 in succession, we finally saw OpenGL ES 3.0 on Nexus 4. When it comes to OpenGL ES, we may know little about it, but OpenGL should be impressive to many game players. Although it doesn't appear as frequently as DirectX and needs updating, there are always one or two games that need updating. OpenGL ES can be understood as a compact version of OpenGL, which is mostly used for mobile platform products. This issue of Lei Feng's Science Popularization will talk about OpenGL ES - embedded 3D graphics algorithm standard.

What is OpenGL?

OpenGL (Full Write Open Graphics Library) is a specification that defines a cross programming language and cross platform application program interface (API), which is used to generate two-dimensional and three-dimensional images. This interface consists of nearly 350 different function calls, which are used to draw complex three-dimensional scenes from simple graphics. The other program interface system is Direct3D only for Microsoft Windows. OpenGL is commonly used in CAD, virtual reality, scientific visualization program and electronic game development. The efficient implementation of OpenGL (using graphics acceleration hardware) exists in Windows, many UNIX platforms and MacOS. These implementations are generally provided by the display device manufacturer and are very dependent on the hardware provided by the manufacturer. The open source code base Mesa is a purely software based graphical API, and its code is compatible with OpenGL. The OpenGL specification is maintained by the OpenGL Architecture Review Board (ARB) established in 1992. ARB consists of companies that are particularly interested in creating a unified, universally available API. According to the official website of OpenGL, the voting members of ARB in June 2002 include 3Dlabs, Apple Computer, ATI Technologies, Dell Computer, Evans&Sutherland, Hewlett Packard, IBM, Intel, Matrox, NVIDIA, SGI and Sun Microsystems, Microsoft was one of the founding members, but it withdrew in March 2003 (Microsoft once tried to integrate DirectX and OpenGL, but finally gave up. Microsoft's DirectX strategy was to promote DOS game developers to turn to Windows. Since then, it has been bound to Windows to serve PC games, so it only supports Windows).

 

OpenGL ™ is the most widely accepted 2D/3D graphics API in the industry. Since its birth, it has spawned thousands of excellent applications on various computer platforms and devices. OpenGL ™ is independent of Windows operating system or other operating systems, and is also network transparent. In the fields of CAD, content creation, energy, entertainment, game development, manufacturing, pharmaceutical industry, virtual reality and other industries, OpenGL ™ helps programmers to develop high-performance and powerful graphics processing software with high visual expressiveness on PC, workstation, supercomputer and other hardware devices.

 

 

What is OpenGL ES?

OpenGL ES (OpenGL for Embedded Systems) is a subset of OpenGL 3D graphics API, designed for embedded devices such as mobile phones, PDAs and game consoles. OpenGL ES is tailored from OpenGL. It removes many non absolutely necessary features such as glBegin/glEnd, complex primitives such as GL_QUADS and GL_POLYGONS. After years of development, there are two versions of OpenGL ES 1. x for fixed pipeline hardware and OpenGL ES 2. x for programmable pipeline hardware. OpenGL ES 1.0 is based on OpenGL 1.3 and OpenGL ES 1.1 is based on OpenGL 1.5. They support common and common lite profiles, respectively. The lite profile only supports fixed point real numbers, while the common profile supports both fixed point and floating point numbers. OpenGL ES 2.0 is defined by reference to the OpenGL 2.0 specification. The common profile was released in 2005-8, introducing support for programmable pipelines.

Open GL ES 3.0

In August 2007, OpenGL ES 1. x was built into the original iPhone and Android; In October 2009, OpenGL ES 2.0 was built into iPhone 3GS and Android 2.2. As a result, the share of OpenGL ES in the mobile market has increased significantly, from 20% in 2006 to more than 90% this year. At yesterday's SIGGRAPH 2012 conference, the Khronos Group announced a new version of OpenGL ES 3.0.

 

OpenGL ES 3.0 brings many new features:
1. More buffer objects are supported. In OpenGL ES 2.0, the specification of buffer objects is ambiguous. Buffer objects with the same name have slight differences in the actual rendering. To solve this problem, OpenGL ES 3.0 has formulated a more detailed format specification. The new version of OpenGl ES also adds support for Uniform Buffer Object.
2. The new version of GLSL ES 3.0 coloring language supports 32-bit integer and floating point data types and operations. The previous version of the shading language only supports the ones with lower precision. This can speed up the calculation and require less resources, but when the complexity of the shader increases, errors will also increase. At the same time, the syntax of the new coloring language is closer to GLSL.
3. It supports Occlusion Query and Geometry Instancing. Through occlusion query, the GPU can know which objects are completely occluded by other objects in the 3D scene, and these completely occluded objects will not be rendered by the GPU. Geometry instantiation is a technique to create different instance objects by giving different spatial positions, colors or textures to geometry with the same vertex data. These two features can save hardware resources and improve the performance of 3D graphics rendering.
4. Added support for multiple textures. Including floating point texture, depth texture, vertex texture, and so on.
5. Multiple Render Targets lets GPU render multiple textures at once.
6. MSAA Render To Texture enables 3D objects to have no burrs on the edges, which can improve the image effect.
7. Use a unified texture compression format ETC: One of the persistent problems that has hindered the development of OpenGL for many years is the lack of a unified texture compression format, including S3TC, GPUs, PVPRTC, ETC, and so on. Because there is no unified standard, developers have to repeatedly compress textures for many times because of different hardware environments - especially for Android developers, this process is painful (there are also a lot of troubles for users, such as the need to identify which material to use when installing game data packets). Obviously, the unified texture compression format can improve developers' development efficiency. But in reality, things like the unification of standards have never progressed faster. It depends on how developers and manufacturers will react later.

 

Upgrading Android 4.3 to Open GL ES is undoubtedly a good start. A large number of new features of OpenGL ES 3.0 are fully supported, which will greatly improve the graphics features of mobile platforms and improve the graphics effect of games.

 

 

Share:
Igao7 fork
edit
Back to Mars! (…………%……&%G2&¥(@#*&)&%*————%&*¥)
Share Weibo Share WeChat
 Aigoji WeChat

Aigoji WeChat

 WeChat

WeChat

Recommended products

Sorry, the product you are looking for is not available in the product library

on trial