04 2015 档案

摘要:Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的。这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作。OpenGL ES 中使用四个分量(x,y,... 阅读全文
posted @ 2015-04-24 11:39 Anita-ff 阅读(822) 评论(0) 推荐(0) 编辑
摘要:OpenGL ES图形库最终的结果是在二维平面上显示3D物体(常称作模型Model)这是因为目前的打部分显示器还只能显示二维图形。但我们在构造3D模型时必须要有空间现象能力,所有对模型的描述还是使用三维坐标。也就是使用3D建模,而有OpenGL ES库来完成从3D模型到二维屏幕上的显示。这个过程可以... 阅读全文
posted @ 2015-04-24 11:05 Anita-ff 阅读(4135) 评论(0) 推荐(0) 编辑
摘要:前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形。其它所有复杂的2D或3D图形都是由这些基本图形构成。本例介绍如何使用三角形构造一个正20面体。一个正20面体,有12个顶点,20个面,30条边构成:创建一个DrawIcosahedron Activity, 定义20面体的12个顶... 阅读全文
posted @ 2015-04-24 10:02 Anita-ff 阅读(775) 评论(0) 推荐(0) 编辑
摘要:三角形为OpenGL ES支持的面,同样创建一个DrawTriangle Activity,定义6个顶点使用三种不同模式来绘制三角形:float vertexArray[] = { -0.8f, -0.4f * 1.732f, 0.0f, 0.0f, -0.4f * 1.732f, 0.0f, -0... 阅读全文
posted @ 2015-04-23 14:51 Anita-ff 阅读(747) 评论(0) 推荐(0) 编辑
摘要:创建一个DrawLine Activity,定义四个顶点:float vertexArray[] = { -0.8f, -0.4f * 1.732f, 0.0f, -0.4f, 0.4f * 1.732f, 0.0f, 0.0f, -0.4f * 1.732f, 0.0f, 0.4f, 0.4f *... 阅读全文
posted @ 2015-04-23 11:03 Anita-ff 阅读(1666) 评论(0) 推荐(0) 编辑
摘要:上一篇介绍了OpenGL ES能够绘制的几种基本几何图形:点,线,三角形。将分别介绍这几种基本几何图形的例子。为方便起见,暂时在同一平面上绘制这些几何图形,在后面介绍完OpenGL ES的坐标系统和坐标变换后,再介绍真正的3D图形绘制方法。在Android OpenGL ES(六):创建实例应用Op... 阅读全文
posted @ 2015-04-22 17:27 Anita-ff 阅读(1362) 评论(0) 推荐(0) 编辑
摘要:引自:http://blog.csdn.net/hgl868/article/details/69716241. OpenGL ES 简介Android 3D引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API,由Khronos公司维护。在PC领域,一直有两... 阅读全文
posted @ 2015-04-22 15:35 Anita-ff 阅读(468) 评论(0) 推荐(0) 编辑
摘要:在前面Android OpenGL ES(六):创建实例应用OpenGLDemos程序框架我们创建了示例程序的基本框架,并提供了一个“Hello World”示例,将屏幕显示为红色。本例介绍OpenGL ES 3D图形库支持的几种基本几何图形,通常二维图形库可以绘制点,线,多边形,圆弧,路径等等。O... 阅读全文
posted @ 2015-04-21 11:04 Anita-ff 阅读(562) 评论(0) 推荐(0) 编辑
摘要:有了前面关于Android OpenGL ES的介绍,可以开始创建示例程序OpenGLDemos。使用Eclipse 创建一个Android项目Project Name: OpenGLDemosBuild Target: Android 1.6 ( >1.5 即可)Application Name:... 阅读全文
posted @ 2015-04-21 09:58 Anita-ff 阅读(497) 评论(0) 推荐(0) 编辑
摘要:Android OpenGL ES 相关的包主要定义在javax.microedition.khronos.opengles GL 绘图指令javax.microedition.khronos.egl EGL 管理Display, surface等android.opengl Android GL辅... 阅读全文
posted @ 2015-04-20 17:18 Anita-ff 阅读(2114) 评论(0) 推荐(0) 编辑
摘要:OpenGL ES的javax.microedition.khronos.opengles 包定义了平台无关的GL绘图指令,EGL(javax.microedition.khronos.egl )则定义了控制displays ,contexts 以及surfaces 的统一的平台接口。Display... 阅读全文
posted @ 2015-04-20 16:42 Anita-ff 阅读(664) 评论(0) 推荐(0) 编辑
摘要:OpenGL ES是个跨平台的3D图形开发包规范,最常见的实现是采用C语言实现的,Android OpenGL ES 实现上是使用Java 语言对底层的C接口进行了封装,因此在android.opengl javax.microedition.khronos.egl ,javax.microedit... 阅读全文
posted @ 2015-04-20 16:37 Anita-ff 阅读(468) 评论(0) 推荐(0) 编辑
摘要:大部分图形系统都可以比作工厂中的装配线(Assemble line)或者称为管道(Pipeline)。前一道的输出作为下道工序的输入。主CPU发出一个绘图指令,然后可能由硬件部件完成坐标变换,裁剪,添加颜色或是材质,最后在屏幕上显示出来。OpenGL ES 1.x 的工序是固定的,称为Fix-Fun... 阅读全文
posted @ 2015-04-20 16:30 Anita-ff 阅读(673) 评论(0) 推荐(0) 编辑
摘要:在学习Android OpenGL ES开发之前,你必须具备Java 语言开发经验和一些Android开发的基本知识,但并不需要有图形开发的经验,本教程也会涉及到一些基本的线性几何知识,如矢量,矩阵运算等。此外Android SDK 中有关OpenGL ES API的开发文档android.open... 阅读全文
posted @ 2015-04-20 16:24 Anita-ff 阅读(587) 评论(0) 推荐(0) 编辑
摘要:Android上对OpenGl的支持是无缝的,所以才有众多3D效果如此逼真的游戏,在Camera的一些流程中也有用到GLSurfaceView的情况。本文记录OpenGL在Android上的入门级示例,绘制一个三角形和正方形。尽管功能简单,可是我捣腾了好几个晚上,大量网上文章上的代码都有点问题,不是... 阅读全文
posted @ 2015-04-20 14:54 Anita-ff 阅读(2549) 评论(0) 推荐(0) 编辑
摘要:voidsetMaterial(constGLfloatmat_diffuse[4],GLfloatmat_shininess){staticconstGLfloatmat_specular[]={0.0f,0.0f,0.0f,1.0f};staticconstGLfloatmat_emission... 阅读全文
posted @ 2015-04-17 16:12 Anita-ff 阅读(989) 评论(0) 推荐(0) 编辑
摘要:增加了两个文件,showline.c,showtext.c。分别为第二个和第三个示例程序的main函数相关部分。在ctbuf.h和textarea.h最开头部分增加了一句#include附件中一共有三个示例程序:第一个,飘动的“曹”字旗。代码为:flag.c,GLee.c,GLee.h第二个,带缓冲... 阅读全文
posted @ 2015-04-13 17:14 Anita-ff 阅读(3626) 评论(0) 推荐(0) 编辑
摘要:,立方体是很简单,但是这里只是拿立方体做一个例子,来说明OpenGL在绘制方法上的改进。从原始一点的办法开始一个立方体有六个面,每个面是一个正方形,好,绘制六个正方形就可以了。glBegin(GL_QUADS); glVertex3f(...); glVertex3f(...); ... 阅读全文
posted @ 2015-04-13 11:41 Anita-ff 阅读(3707) 评论(0) 推荐(1) 编辑
摘要:到今天为止,正式的OpenGL已经有九个版本。(1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1)每个OpenGL版本的推出,都增加了一些当时流行的或者迫切需要的新功能。同时,到现在为止,OpenGL是向下兼容的,就是说如果某个功能在一个低版本中存在,则在更... 阅读全文
posted @ 2015-04-10 17:29 Anita-ff 阅读(2711) 评论(0) 推荐(1) 编辑
摘要:状态机就是一种存在于理论中的机器,它具有以下的特点:1. 它有记忆的能力,能够记住自己当前的状态。2. 它可以接收输入,根据输入的内容和自己的状态,修改自己的状态,并且可以得到输出。3. 当它进入某个特殊的状态(停机状态)的时候,它不再接收输入,停止工作。理论说起来很抽象,但实际上是很好理解的。首先... 阅读全文
posted @ 2015-04-10 17:19 Anita-ff 阅读(1331) 评论(0) 推荐(0) 编辑
摘要:片断测试其实就是测试每一个像素,只有通过测试的像素才会被绘制,没有通过测试的像素则不进行绘制。OpenGL提供了多种测试操作,利用这些操作可以实现一些特殊的效果。我们在前面的课程中,曾经提到了“深度测试”的概念,它在绘制三维场景的时候特别有用。在不使用深度测试的时候,如果我们先绘制一个距离较近的物体... 阅读全文
posted @ 2015-04-10 16:55 Anita-ff 阅读(3572) 评论(1) 推荐(0) 编辑
摘要:我们可以将像素数据按照矩形进行缩小和放大,但是还不足以满足我们的要求。例如要将一幅世界地图绘制到一个球体表面,只使用glPixelZoom这样的函数来进行缩放显然是不够的。OpenGL纹理映射功能支持将一些像素数据经过变换(即使是比较不规则的变换)将其附着到各种形状的多边形表面。纹理映射功能十分强大... 阅读全文
posted @ 2015-04-09 17:18 Anita-ff 阅读(6921) 评论(1) 推荐(1) 编辑
摘要:计算机保存图象的方法通常有两种:一是“矢量图”,一是“像素图”。矢量图保存了图象中每一几何物体的位置、形状、大小等信息,在显示图象时,根据这些信息计算得到完整的图象。“像素图”是将完整的图象纵横分为若干的行、列,这些行列使得图象被分割为很细小的分块,每一分块称为像素,保存每一像素的颜色也就保存了整个... 阅读全文
posted @ 2015-04-09 11:15 Anita-ff 阅读(748) 评论(0) 推荐(0) 编辑
摘要:混合是一种常用的技巧,通常可以用来实现半透明。但其实它也是十分灵活的,你可以通过不同的设置得到不同的混合结果,产生一些有趣或者奇怪的图象。混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样... 阅读全文
posted @ 2015-04-08 17:14 Anita-ff 阅读(1195) 评论(0) 推荐(0) 编辑
摘要:我们已经知道,使用OpenGL其实只要调用一系列的OpenGL函数就可以了。然而,这种方式在一些时候可能导致问题。比如某个画面中,使用了数千个多边形来表现一个比较真实的人物,OpenGL为了产生这数千个多边形,就需要不停的调用glVertex*函数,每一个多边形将至少调用三次(因为多边形至少有三个顶... 阅读全文
posted @ 2015-04-08 16:35 Anita-ff 阅读(554) 评论(0) 推荐(0) 编辑
摘要:从生理学的角度上讲,眼睛之所以看见各种物体,是因为光线直接或间接的从它们那里到达了眼睛。人类对于光线强弱的变化的反应,比对于颜色变化的反应来得灵敏。因此对于人类而言,光线很大程度上表现了物体的立体感。请看图1,图中绘制了两个大小相同的白色球体。其中右边的一个是没有使用任何光照效果的,它看起来就像是一... 阅读全文
posted @ 2015-04-08 15:07 Anita-ff 阅读(5245) 评论(0) 推荐(0) 编辑
摘要:假设某动画一共有n幅画面,则它的工作步骤就是:显示第1幅画面,然后等待一小段时间,直到下一个1/24秒显示第2幅画面,然后等待一小段时间,直到下一个1/24秒……显示第n幅画面,然后等待一小段时间,直到下一个1/24秒结束如果用C语言伪代码来描述这一过程,就是:for(i=0; i// 太阳、地球和... 阅读全文
posted @ 2015-04-03 11:43 Anita-ff 阅读(975) 评论(0) 推荐(0) 编辑
摘要:我们生活在一个三维的世界——如果要观察一个物体,我们可以:1、从不同的位置去观察它。(视图变换)2、移动或者旋转它,当然了,如果它只是计算机里面的物体,我们还可以放大或缩小它。(模型变换)3、如果把物体画下来,我们可以选择:是否需要一种“近大远小”的透视效果。另外,我们可能只希望看到物体的一部分,而... 阅读全文
posted @ 2015-04-02 11:40 Anita-ff 阅读(4199) 评论(0) 推荐(1) 编辑
摘要:OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式。无论哪种颜色模式,计算机都必须为每一个像素保存一些数据。不同的是,RGBA模式中,数据直接就代表了颜色;而颜色索引模式中,数据代表的是一个索引,要得到真正的颜色,还必须去查索引表。1. RGBA颜色RGBA模式中,每一个像素会保存以下... 阅读全文
posted @ 2015-04-01 11:37 Anita-ff 阅读(1548) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示