随笔分类 -  Docs for Mac OS/iOS OS

The tech docs about Mac OS/iOS OS.
摘要:原文地址:http://vormplus.be/blog/article/opengl-es-for-iphone-drawing-a-circle-part-iii第三节分我们将要学习怎样优化可以让我们的app运行流畅。前面的例子中,每次view调用draw方法的时候都会计算一次顶点。这是很浪费cpu的,因为这些顶点的值并没有被改变。如果我们只在程序加载的时候计算一次顶点效果会更好。把下面的代码片段加入EAGLView.h中的@interface部分,同时把drawView方法里面的相同代码删除。使类的所有方法都可使用这两个值。GLfloat vertices[722];GLfloat co 阅读全文
posted @ 2013-02-07 17:54 度娘818 阅读(232) 评论(0) 推荐(0)
摘要:原文地址:http://vormplus.be/blog/article/opengl-es-for-iphone-drawing-a-circle-part-ii在上一篇中,我们学习了怎么在iPhone上绘制一个圆,在这一篇中,我们将学习怎么样绘制一个更好的圆。添加随机颜色在实际使用中经常使用随机颜色,在iPhone上可以很容易的实现这个功能。我们可以把圆周分成360等份,在绘制圆时我们要把每一等分都分配一种随机颜色。每个随机颜色的值由4部分组成,分别是red、green、blue和alpha,所以我们需要一个数组来存储圆的每一等份的4个值。下面的代码创建了一个GLfloat类型的数组,用来 阅读全文
posted @ 2013-02-07 17:52 度娘818 阅读(209) 评论(0) 推荐(0)
摘要:原文地址:http://vormplus.be/blog/article/opengl-es-for-iphone-drawing-a-circle-part-i从Processing(译者注:processing是个编程语言,下同)转到iPhone开发是个痛苦的过程。OpenGL的实现有些不同,而且文档很少。我从Dave Mark and Jeff Lamarche 写的“Beginning iPhone Development”以及iPhone Development blog上学到不少。在这几篇文章中我想分享我学到的一些知识。可以把这个教程作为iPhone生成设计的入门来阅读,让我们开始 阅读全文
posted @ 2013-02-07 17:50 度娘818 阅读(247) 评论(0) 推荐(0)
摘要:在上一节中,我们分析了OBJ格式。OBJ格式优点是文本形式,可读性好,缺点也很明显,计算机解析文本过程会比解析二进制文件慢很多。OBJ还有个问题是各种3D建模工具导出的布局格式还不太一样,face还有多边形(超过三边形),不利于在OpenGL ES里面加载。 .3ds文件是OBJ的二进制形式,并且多很多信息。有一个C语言写的开源库可以用来加.3ds文件,这就是lib3ds。GPL的license,直接使用在商业程序里面可能不太理想。这不妨碍我们这篇文章的分析。 教程截图: demo继承于我的另一篇教程:Xcode创建的默认iOS OpenGL ES 2.0 project代码分析的OpenGL 阅读全文
posted @ 2013-02-07 17:48 度娘818 阅读(767) 评论(0) 推荐(0)
摘要:版权声明:iTyran原创作品,谢绝转载!否则将追究法律责任。 在iOS的3D开发中常常需要导入通过3DS MAX之类的3D设计软件生成的模型。因为OpenGL ES是不能直接读取这些文件的,所以常常需要开发人员增加接口来导入。通常的做法是在建模软件中建立3D模型之后在OpenGL ES中导入并进行控制。 3DS MAX通常的保存格式有*.max(现在生成的版本的格式),*.3ds(低版本的3ds Max生成的格式),*.ASC(ASC File Explorer),*.ASE(ASCII Scene Explorer),*.OBJ等文件格式。其他的软件保存的格式也是不尽相同的,同样的,这些软 阅读全文
posted @ 2013-02-07 17:47 度娘818 阅读(1129) 评论(0) 推荐(0)
摘要:版权声明:iTyran原创作品,谢绝转载!否则将追究法律责任。 在上一篇文章[iTyran原创]Xcode创建的默认iOSOpenGL ES 2.0 project代码分析中,我跳过了- (void)update函数里面的矩阵变换分析,在这里我们来研究下这里干了些什么事情。 1.预备知识。OpenGL ES 中有两套矩阵,都是4×4的GLfloat矩阵。一个叫modelview matrix ,你大部分时间都会与之打交道。它是你用来对虚拟世界进行变换的矩阵。要对虚拟世界中的物体进行旋转,转移或尺寸变化,你都需要对此矩阵进行修改。 另一个矩阵用来创建根据设定的视口(参考从零开始学习Op 阅读全文
posted @ 2013-02-07 17:45 度娘818 阅读(1974) 评论(0) 推荐(0)
摘要:前面iTyran翻译、转载的OpenGL教程都是使用文章作者自己的project,并没有提及默认的工程。默认工程的代码比较多,不利于刚开始初学入门。进过几天的研究,摸清楚了大部分的逻辑,在这与大家共同探讨学习。 工程居于xcode4.2 for iOS5创建,做了部分修改。下载地址:http://ityran.com/thread-672-1-1.html 预备知识:完成了从零开始学习OpenGL ES 和 OpenGL ES2.0–Iphone开发指引 的学习。 1.使用GLKView简化OpenGL初始化。在前面的教程里面,介绍了如何从一个UIView来建立OpenGL工程,里面做了很多初 阅读全文
posted @ 2013-02-07 17:42 度娘818 阅读(679) 评论(0) 推荐(0)
摘要:注:原作者没有完成骨骼动画的章节,这是我们找到的最后一篇了在进入下一篇关于骨骼动画的文章之前,让我们先花点时间来了解一个马上会使用到的新数据类型:四元数[译者注:关于四元数的概念可以参考这个链接:点我]。我们用四元数存储单一骨骼在3个轴线上的旋转信息,换句话说,存储的是骨骼指向的方向。在下一部分介绍的仿真骨骼动画中,你将会看到,模型的顶点是同一个或多个骨骼相关联的,当骨骼移动时它们也会随之变化。相对于将欧拉角信息存储在3个GLfloats变量或一个 Vector3D 变量里来说, 使用四元数有2个优点:1.四元数不会造成万向节死锁(gimbal lock),但是欧拉角容易造成万向节死锁,使用四 阅读全文
posted @ 2013-02-07 16:35 度娘818 阅读(259) 评论(0) 推荐(0)
摘要:最初这篇教程我并不打算作为第9章发布,原计划是第10章。在深入了解Opengl ES 2.0 和着色器之前,我想讨论下更基础的:动画。注意:你可以在这里找到这篇教程的配套代码,新版本的代码已经在西部时间10:14更新了,更新的代码里面修正了一个不能动画的错误。目前为止,想必你已经看过了opengles最基本的动画形式。通过随时间改变rotate, translate, scale(旋转、移动和缩放)等,我们就可以使物体“动起来”。我们的第一个项目 the spinning icosahedron就是这种动画的一个例子。我们把这种动画叫做简单动画。然而,不要被“简单动画”这个名称迷糊,你可以实现 阅读全文
posted @ 2013-02-07 16:14 度娘818 阅读(1038) 评论(0) 推荐(0)
摘要:Technote 2230提出了很多用OpenGL ES来提升iphone程序性能的建议。我们现在远远不能深刻理解OpenGL ES所以你需要学习以下内容。不信?是真的,试试看,我等着你的读后感。好,就这样定了?副标题为“优化顶点数据”,这里有一些算法上的建议用来"submit strip-ordered indexed triangles with per vertex data interleaved"。当苹果给出这些建议的时候,他们通常有一些非常好的理由,让我们看看如何使用它。首先让我们了解它的意思。让我们把这句话分解开来:Strip Ordered:换句话说,如果你 阅读全文
posted @ 2013-02-07 15:49 度娘818 阅读(306) 评论(0) 推荐(0)
摘要:我在从零开始学习OpenGL ES之四 – 光效 一文中使用了一个普通GLfloat数组。由于它没有使用任何非OpenGL定义的数据结构,所以是最为普通和方便的方式。但在此我使用在第一部分中定义的Vertex3D, Vector3D和 Color3D数据结构重写了 setupView:方法。并不是这种方法“更好”,但是它是一种不同的方式。当我第一次学习OpenGL时,我发现使用顶点,颜色和三角形的术语比可变长度浮点数组更容易理解。如果你和我一样,那么你会发现这个版本更容易理解。除了使用自定义数据结构外,我还减少了环境光元素的数量并将光源向右移动了一点。然后使用Vector3DMakeWithS 阅读全文
posted @ 2013-02-07 15:43 度娘818 阅读(223) 评论(0) 推荐(0)
摘要:本文是原创,如果有写得不对的地方,欢迎指正,共同进步!先看看ab总的流程图,有个总体印象。第二步:ab简介采用 apache 版本为:apache-­‐2.2.22 使用: 在 ubuntu 系统下: ./ab  -n  1000  -c  50  -p  post.txt   http://127.0.0.1:9090/query  发送 1000 个请求,每次发 50 个,post 的内容在post.txt 里。 提要: ab  [  -A  auth-username:password  ]  [  -b  windowsize  ] 阅读全文
posted @ 2013-02-07 11:07 度娘818 阅读(2510) 评论(1) 推荐(0)
摘要:在OpenGL ES中另一种为多边形定义颜色创建材质的方法是将纹理映射到多边形。这是一种很实用的方法,它可以产生很漂亮的外观并节省大量的处理器时间。比如说,你想在游戏中造一个砖墙。你当然可以创建一个具有几千个顶点的复杂物体来定义每块砖以及砖之间的泥灰。或者你可以创建一个由两个三角形构成的方块(四个顶点),然后将砖的照片映射上去。简单的几何体通过纹理映射的方法比使用材质的复杂几何体的渲染快得多。功能启动为使用纹理,我们需要打开OpenGL的一些开关以启动我们需要的一些功能:glEnable(GL_TEXTURE_2D);glEnable(GL_BLEND);glBlendFunc(GL_ONE, 阅读全文
posted @ 2013-02-06 17:05 度娘818 阅读(336) 评论(0) 推荐(0)
摘要:在上一篇文章,我们讨论了光效的设定以及光效的各种属性。我们还讨论了光的三要素:散射光,环境光和高光。如果你还不是完全清楚,那么我们来复习一下,在定义材质时大量的用到这些要素。作为本文的起点,我们使用了原文中球体绘制的项目文件。我们不再使用二十面体而是转向球体是因为球体是展示光和材质不同要素之间相互作用的最佳形状。颜色是什么这可能是对小学美术课的复习。为什么现实世界会有颜色?是什么造成的?我们看得见的光被称为光的可见频谱。根据不同的波长我们可以感知到不同的颜色。在可见光谱的一端是低波长高频率的紫色和蓝色,而在另一端是低频高波长的橘色和红色:电磁波在这个范围之外,因此不是“可见光”,尽管这只是人工 阅读全文
posted @ 2013-02-06 16:40 度娘818 阅读(372) 评论(0) 推荐(0)
摘要:继续我们的iPhone OpenGL ES之旅,我们将讨论光效。目前,我们没有加入任何光效。幸运的是,OpenGL在没有设置光效的情况下仍然可以看见东西。 它只是提供一种十分单调的整体光让我们看到物体。但是如果不定义光效,物体看上去都很单调,就像你在第二部分程序中看到的那样。阴影模型(Shade Model)在深入讨论OpenGL ES是怎样处理光线之前,重要的是要了解OpenGL ES实际上定义了两种shade model,GL_FLAT和GL_SMOOTH。我们将不会讨论GL_FLAT,因为这只会让你的程序看上去来自九十年代:GL_FLAT方式渲染的一个二十面体。15年前的实时渲染技术从发 阅读全文
posted @ 2013-02-06 15:26 度娘818 阅读(311) 评论(0) 推荐(0)
摘要:现在你已经知道OpenGL是怎样绘图的了,让我们回头谈谈一个很重要的概念:OpenGL视口(viewport)。 许多人对3D编程还很陌生,那些使用过像Maya, Blender, 或 Lightwave之类3D图形程序的人都试图在OpenGL虚拟世界中找到“摄像机”。但OpenGL并不存在这样的东西。它所有的是在3D空间中定义 可见的物体。虚拟世界是没有边界的,但计算机不可能处理无限的空间,所以OpenGL需要我们定义一个可以被观察者看到的空间。如 果我们从大部分3D程序具有的摄像机对象的角度出发来考虑,视口端点的中心就是摄像机。也就是观察者站的位置。它是一个观察虚拟世界的虚拟窗口。观察者可 阅读全文
posted @ 2013-02-06 15:06 度娘818 阅读(309) 评论(0) 推荐(0)
摘要:我曾写过一些文章介绍iPhone OpenGL ES编程,但大部分针对的是已经至少懂得一些3D编程知识的人。作为起点,请下载我的OpenGL Xcode项目模板,而不要使用Apple提供的模板。你可以解压到下面位置安装此模板:/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application/已经有大量有关OpenGL的好教程和书籍。但是,却没有多少是关于OpenGL ES,而且没有(至少在我撰写此文时)是专门针对学习iPhone上3D编程的。因为大部分有关学习OpenGL的材 阅读全文
posted @ 2013-02-06 14:01 度娘818 阅读(258) 评论(0) 推荐(0)
摘要:原文:http://blog.csdn.net/yanghuiliu/article/details/7030384cocos2d-x 调用CMMotionManager,获取三轴陀螺仪数据分类:AR虚拟现实技术cocos2d-x游戏引擎2011-12-01 13:003287人阅读评论(3)收藏举报猴子原创,转载请注明出处。谢谢!原文地址:http://blog.csdn.net/yanghuiliu/article/details/7030384陀螺仪 从Iphong4开始,iphone4装载了陀螺仪。据乔布斯所介绍,该装置可以让iPhone4感知人体的移动方向,结合重力感应、加速感应.. 阅读全文
posted @ 2013-02-04 13:59 度娘818 阅读(637) 评论(0) 推荐(0)
摘要:原文链接:http://blog.csdn.net/aiyongyyy/article/details/7986810分类:ios 陀螺仪 CoreMotion2012-09-17 16:18715人阅读评论(2)收藏举报以前在iphone中要得到加速度时,只能使用Accelerometer模块得到重力加速度分量,然后通过滤波得到加速度值。其实在ios中有一个陀螺仪模块,CoreMotion,使用更方便。CoreMotion中主要有以下几个模块初始化CoreMotion[html]view plaincopy#import<CoreMotion/CoreMotion.h>CMMo 阅读全文
posted @ 2013-02-04 13:12 度娘818 阅读(1150) 评论(0) 推荐(0)
摘要:如何在IOS中使用3D UI – CALayer的透视投影例子代码可以在http://www.ityran.com/thread-3607-1-1.html下载 iOS的UI是基于UIView类的,我们能看到的每个UI元素都是UIView或者UIView的子类。View按树形结构组织起来,树根是UIWindow。View负责界面的交互和显示,其中显示部分由CALayer来完成。每个UIView包含一个CALayer实例。可以这么认为,UIView本身是不可见的,我们能看到的都是CALayer,UIView只是负责对CALayer进行管理。 UIView的显示设置都是对CALayer属性的封装. 阅读全文
posted @ 2013-01-25 16:07 度娘818 阅读(394) 评论(0) 推荐(0)