WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异简析

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异,从整体上看,应该是 gl 前缀在 WebGL 版指令中的省略,举例对比如下:

    glEnable(GL_CULL_FACE);
    glFrontFace(GL_CW);

    gl.enable(gl.CULL_FACE);
    gl.frontFace(gl.CW);

从上面的示例中,可以看出,C 版使用的是全局的函数,面向过程的用法,故无所属对象;

而 WebGL 中封装成对象的方法后,通过 gl 对象(WebGL 对象的实例)的方法的形式来调用封装于 WebGL 对象中封装的与 C 版对应的指令,故省略 C 版指令的 gl 前缀也是在情理之中的。

至于 gl 对象,是按如下方式创建的:

var gl;

function initGL(canvas) {
    try {
        gl = canvas.getContext("experimental-webgl");
        gl.viewportWidth = canvas.width;
        gl.viewportHeight = canvas.height;
    } catch (e) {
    }
    if (!gl) {
        alert("Could not initialise WebGL, sorry :-(");
    }
}

上面代码中的 canvas 是 html5 中的新增标签,通常使用其获取 2d 的上下文来进行绘图,在 WebGL 时代,新增了如上实现,能对 WebGL 进行支持。

    var canvas = document.getElementById("lesson13-canvas");
<canvas id="lesson13-canvas" style="border: none;" width="500" height="500"></canvas>

更多的差异,后续不断发现,再随时补充进来。

WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异简析

时间: 2024-10-25 18:07:43

WebGL 中 OpenGL ES 指令与 iOS 中 C 版指令的差异简析的相关文章

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ文件格式分析作者:yuezang - iTyran 在iOS的3D开发中常常需要导入通过3DS MAX之类的3D设计软件生成的模型.因为OpenGL ES是不能直接读取这些文件的,所以常常需要开发人员增加接口来导入.通常的做法是在建模软件中建立3D模型之后在OpenGL ES中导入并进行控制.    3DS MAX通常的保存格式有*.max(现在生成的版本的格式),*.3ds(低版本的3ds Max生成的格式)

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之二:lib3ds加载模型

[iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之二:lib3ds加载模型 作者:u0u0 - iTyran 在上一节中,我们分析了OBJ格式.OBJ格式优点是文本形式,可读性好,缺点也很明显,计算机解析文本过程会比解析二进制文件慢很多.OBJ还有个问题是各种3D建模工具导出的布局格式还不太一样,face还有多边形(超过三边形),不利于在OpenGL ES里面加载. .3ds文件是OBJ的二进制形式,并且多很多信息.有一个C语言写的开源库可以用来加.3ds文件,这就是l

Android OpenGL ES(十三)通用的矩阵变换指令 .

Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的.这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作. OpenGL ES 中使用四个分量(x,y,z,w)来定义空间一个点,使用4个分量来描述3D坐标称为齐次坐标 :所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示. 它有什么优点呢? 许多图形应用涉及到几何变换,主要包括平移.旋转

css中overflow滑动效果在IOS中不流畅

最近新作的一个项目中遇到一个问题,有一段很长的表格,手机显示器展示不全,需要做滑动继续展示的效果: OK,很简单,使用overflow-x:auto;谷歌模拟器一切正常,安卓正常,可是打完包在IOS上,滑动效果慢到完全跟随手指的移动而移动,这样是肯定不行的经过百度发现了解决之道: -webkit-overflow-scrolling: touch; 度娘说这句话是启动了硬件加速的特性,所以滑动起来会非常流畅:不过会影响性能:经过测试,发现影响看不出,果断选择用它: 完美解决~~~~~~~

[图形学]VS2017中OpenGL的下载及安装中的异常

1.放dll文件:C:\Windows\SysWOW64 或C:\Windows\windows32 2.lib和h:C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\ lib放在lib文件夹下. h放在include中的gl文件夹下,gl文件夹需要自行新建. 下载地址:https://files-cdn.cnblogs.com/files/inku/opengl%E6%96%87%E4%BB

在Android中使用OpenGL ES进行开发第(一)节:概念先行

一.前期基础是知识储备笔者计划写三篇文章来详细分析OpenGL ES基础的同时也是入门关键的三个点: ①OpenGL ES是什么?与OpenGL的关系是什么?——概念部分 ②使用OpenGL ES绘制2D/3D图形的第一步:定义图形:——运用部分 ③使用OpenGL ES绘制出②步骤中定义好的图形:——运用部分,难点所在 通过这三篇文章的分析,就像给万丈高楼垫定了基石,万丈高楼平地起,后面利用OpenGLES做各种效果,各种变换都是建立在这三步的图形编程理解之上的. 话不多说正文开始 (1)什么

[转] iOS OpenGL ES Guide

OpenGL ES 小结 概述 OpenGL ES (Open Graphics Library for Embedded Systems)是访问类似 iPhone 和 iPad 的现代嵌入式系统的 2D 和 3D 图形加速硬件的标准. 把程序提供的几何数据转换为屏幕上的图像的过程叫做渲染. GPU 控制的缓存是高效渲染的关键.容纳几何数据的缓存定义了要渲染的点.线段和三角形. OpenGL ES 3D 的默认坐标系.顶点和矢量为几何数据的描述提供了数学基础. 渲染的结果通常保存在帧缓存中.有两

iOS实现图形编程可以使用三种API(UIKIT、Core Graphics、OpenGL ES及GLKit)

这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一个pdf文件中进行图形和图像绘制.在屏幕图形环境中进行的绘制限定于在一个UIView类或其子类的实例中绘制,并直接在屏幕显示,在offscreen位图或PDF图形环境中进行的绘制不直接在屏幕上显示. 一.UIKIT API UIKIT是一组Objective-C API,为线条图形.Quartz图像

OpenGL ES //!&lt; iOS笔记一

学习地址:http://www.raywenderlich.com/3664/opengl-tutorial-for-ios-opengl-es-2-0 中文翻译:http://www.cnblogs.com/zilongshanren/archive/2011/08/08/2131019.html 关键词:vertex.fragment.shaders.buffer Xcode中OpenGL ES框架详情: