OpenGL ES 2.0是OpenGL三维图形API的子集,针对手机、PAD和游戏主机等嵌入式设备设计,而小编带来的OpenGL ES 2.0是其2.0版本,这一版本主要针对可编程管线硬件,参照OpenGL 2.0的规范定义的。OpenGL ES 2.0是一个定义了跨编程语言、跨平台的编程接口的规格,用于三维图像,也就是说小编带来的这个东西其实并不是软件,而是一个功能强大的方便调用的底层图形库。
OpenGL ES 2.0具有免费,跨平台等特点,功能完善的2D和3D图形应用程序接口API能够针对多种嵌入式系统做出专门设计,包括移动电话、手持设备、家电设备等等如果用户为一些手机、游戏机等嵌入式设备做开发,那么这个OpenGL ES 2.0是必不可少的。
- 支持iPad, iPhone3GS 和后续版本,以及iPodTouch3代和后续版本。
- 支持Android平台从Android 2.2版本开始。
- 支持Android NDK从Android 2.0版本开始。
- 支持BlackBerryPlayBook黑莓。
- 支持Pandora潘多拉控制台的3D库。
- 被WebGL支持:浏览器支持OpenGL
- 支持少数新款Nokia诺基亚手机,比如N900上的Maemo和N8上的Symbian3塞班3系统。
- 支持多款三星手机,包括Galaxy S和Wave。
- 使用开发插件可以支持Palm webOS。
- 支持Archos 爱可视上网本:70 IT, 101 IT
大大提高不同消费电子设备的3D图形渲染速度;
在嵌入式系统上实现了全面可编程的3D图形;
把三维空间中的对象通过投影、光栅化转换为二维图像,然后呈现到屏幕上。
1、Shader(就是一段程序Program)
Shader是一段执行在GPU上的程序(所以Shader也可以叫做Program),此程序使用OpenGL ES SL语言来编写。它是一个描述顶点或像素特性的简单程序。
- 1.1Pixel Shader
Pixel Shader(像素着色器)就是众所周知的Fragment Shader,它计算每个像素的颜色和其它属性。它通过应用光照值、凹凸贴图,阴影,镜面高光,半透明等处理来计算像素的颜色并输出。它也可改变像素的深度(z-buffering)或在多个渲染目标被激活的状态下输出多种颜色。一个Pixel Shader不能产生复杂的效果,因为它只在一个像素上进行操作,而不知道场景的几何形状。
- 1.2 Vertex Shader
对于发送给GPU的每一个Vertex(顶点),都要执行一次Vertex Shader(顶点着色器)。其功能是把每个顶点在虚拟空间中的三维坐标变换为可以在屏幕上显示的二维坐标,并带有用于z-buffer的深度信息。Vertex Shader可以操作的属性有:位置、颜色、纹理坐标,但是不能创建新的顶点。
Vertex Shader输入数据如下:
1)Attributes: 通过顶点数组(vertex arrays)提供的每个顶点数据
2)Uniforms: Vertex Shader使用的常量数据
3)Samplers: Vertex Shader使用的一个表示纹理类型的Uniforms,在Vertex Shader中是可选的
4)Shader program: Vertex Shader程序源码或可执行文件,它描述了将在顶点上执行的操作
Vertex Shader输出为:varying variables(Vertex Shader的输出变量,作为Fragment Shader的输入。必须与Fragment Shader中的输入Varying一一对应。)
gl_Position: 是每个点固有的Varying,表示点的空间位置。
- 1.3 Geometry Shader
Geometry Shader是一个相对新的Shader类型。它在Driect3D 10和OpenGL 3.2中开始引入,在OpengGL 2.0+中作为扩展使用。它的输入为:点、线和三角形;其输出为点、线带和三角形带。
2、Shading Language
Shading Language仅适合于为GPU编程,编程工具为Cg(Nvidia开发),Cg编译器可以输出Direct3X或OpenGL Shader程序。
3、Shading 算法
- 3.1 插值技术(可以和任何照明模型组合):
Flat shading
Gouraud shading
Phong shading
- 3.2 照明模型 (可以和任何插值技术组合):
Blinn–Phong
Cook–Torrance (microfacets)
Lambert
Minnaert
Oren–Nayar (Rough opaque diffuse surfaces)
Phong
Ward anisotropic
4、原语汇编(Primitive Assembly)
在管道(pipeline)中,执行完Vertex Shader之后,就执行原语汇编。一个原语(primitive)就是一个可以使用OpenGL ES画图命令进行绘制的几何对象。
在原语汇编阶段,被Vertex Shader处理输出的顶点被组合进行一个单独可被绘制的几何原语(如:点、线和三角形)。然后对几何原语执行以下两种操作:
Clipping(裁剪): 只保留在可视空间范围内的原语
Culling(选择): 基于面向前或后,进行原语的选择
在裁剪和选择之后,其下一个阶段为进行Geometry Shader(如果存在)或光栅化处理。
5、光栅(Rasterization)
光栅处理的目标:把原语转换为一系列二维fragments,这些二维fragments将被Fragment Shader处理,且这些二维fragments表示可被绘制在屏幕上的像素。
6、 Fragment Shader
对每个光栅化产生的fragment执行一次Fragment Shader,其输入内容如下:
Varying variables:Vertex Shader的输出,且由光栅化单元对每个fragment使用插值方法产生
Uniforms:Fragment Shader使用的常量数据
Samplers:一个表示纹理的常量数据
Shader program:Fragment shader程序源码或可执行文件,它描述了将在fragment上执行的操作。
展开内容
9.1/2.44G
Infragistics Ultimate是由国外精心研发的一款非常专业,功能强大易用的web设计编程开发程序应用。也是一款面向所有UX设计师和开发人员基础设施UI控件和工具的最佳解决方案。
9.1/3.76M
seraph脚本编辑器是一款行内顶尖的脚本控制软件,不知道大家接触过鼠标点击器没有,其中有一个功能就是脚本来实现的,而seraph脚本编辑器就是这样的一样脚本生成器,设置键盘上的任意一个按键,然后seraph脚本编辑器就会直接生产脚本代码,非常的使用且方便!
android ndk开发工具(Native Development Kit)
9.0/628.62M
android ndk开发工具又叫:ndk、Native Development Kit。是一款专门为安卓系统设计的安卓开发环境。主要作用是为用户开发安卓原生应用起到提供框架的作用。
9.0/1.97M
signtool GUI中文版是一款强大的软件数字签名工具,文件签名是一件重复繁琐,有浪费时间,而微软的代码签名工具signcode又只能一次签一个文件完全没什么效果。
10.0/5.91M
和平精英绿洲启元编辑器是由腾讯游戏光子工作室发布的开发者工具。绿洲启元是基于《和平精英》创作出的新玩法模式,创作者们可以通过绿洲启元来释放自己的无限创意,将《和平精英》从传统的FPS玩法模式中解放出来,衍生出更加多样化的精彩玩法。
9.6/15.2M
Android逆向助手是针对安卓平台而开发的一款逆向辅助软件,也是当前apk反编译工具中非常不错的一款工具。目前支持的功能有进行apk反编译打包签名;dex/jar互转替换提取修复;so反编译;xml、txt加密;字符串编码等。
9.0/21.75M
VisualVM是一个专门用于监控Java的虚拟机JVM的监控工具,大家都知道java的环境下许多东西都是命令行的形式,而这款工具能够让用户获得一个图形界面来方便你快捷的查看多个java应用程序的相关信息。
Microsoft.NET Runtime(微软NET运行库)
9.1/217.88M
Microsoft.NET Runtime(微软.NET运行时)是Windows操作系统用于.NET构建的应用程序所需的基础类型库组件。小编这次给大家带来的是微软NET 5.0运行时离线版,这次的版本更新非常重视 .NET 的统一性,微软希望 .NET Framework 开发者
9.0/25.55M
易语言大家都知道,是国产的一款能够使用中文进行开发的语言,这款易语言助手电脑版是一些使用易语言开发的用户制作的一款能够让我们的用户更好的进行易语言的学习和编程的软件,你可以通过这款助手查看各种代码,还有许多易语言开发者们自己通过时间为大家带来的例程。
查看
9.0/1.6M
junit4 jar包官方版是junit框架中的第四代,也是最新的一代,同样的也是有史以来最大改进的一代,其主要的目的就是利用java5的Annotation特性简化测试用例的编写,让用户能够快速的完成测试工作,多数的Java开发环境已经继承了我们的junit作为单元测试的工具,
9.1/811.47M
Adobe RoboHelp中文版是一款功能非常强大且操作简单使用方便的帮助文件制作软件,它的出现,推动了网页设计的发展,已成为网页开发设计的标准,使web开发人员在HTML网页制作方面变得更加容易。
9.0/33.09M
在开发Java程序时,用户会遇到许多仅凭Java不能够完成的开发工作,这个hibernate是非常不错的开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,能够将POJO和数据库表建立映射关系,是一个非常不错的全自动orm框架。
9.0/48.49M
groovy是一种基于JVM的开发语言,也是一种功能强大的可选类型和动态语言,具有静态类型和静态编译功能,适用于java品台,旨在通过简洁,熟悉且易于学习的语法提高开发人员的工作效率,该语言还结合了Python、Ruby和Smalltalk的许多强大的特性。
9.0/180.39M
Apifox电脑版官方版是一个API 文档、API 调试、API Mock、API 自动化测试一体化协作平台,定位 Postman + Swagger + Mock + JMeter。
Telerik Collection for .NET 2023(.Net开发插件)
9.1/3.36G
Telerik(.Net开发插件)是一款著名的.NET Web第三方控件,包含在线HTML编辑,文本输入,数据视图。Telerik 专注于微软.Net平台的表示层与内容管理控件,提供高度稳定性和丰富性能的组件产品DevCraft,并可应用在非常严格的环境中,创建数据丰富的Web应
8.9/55.38M
sencha touch官方版是一款适用于最前沿的Touch Web的移动开发框架,该框架是沐浴前世界上第一个基于HTML5开发的Mobile App框架,框架基于javascript开发,所以如果用户是一位使用java进行Web应用开发的程序员,那么不费吹灰之力即可完全掌握用法
8.9/359K
layui框架是目前国内最优秀的一款经典模块化前段框架,也是一款带着浓烈情怀的国产前端UI框架,这款框架深受前段开发人员的青睐,追求极简,又不失丰盈的内在,是一款非常实用的轻量级前端开发框架。
9.0/23.98M
node.js其实就是一个Javascript的运行环境,大家做过相关了解的应该都知道Javascript,换句话来说就是一种直译式脚本语言,但是它不能直接运行。所以小编大家带来了node.js。node.js对是对Google V8引擎进行了封装。所以让V8引擎执行Javasc