OpenGL ES
文章平均质量分 90
sada09
看帖回帖互相勉励,共同进步
展开
-
Android OpenGL ES 开发教程(9):绘制点Point
上一篇介绍了OpenGL ES能够绘制的几种基本几何图形:点,线,三角形。将分别介绍这几种基本几何图形的例子。为方便起见,暂时在同一平面上绘制这些几何图形,在后面介绍完OpenGL ES的坐标系统和坐标变换后,再介绍真正的3D图形绘制方法。在Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架 创建了示例应用的程序框架,并提供了一个“Hello Wor转载 2012-11-29 11:05:32 · 866 阅读 · 0 评论 -
Android OpenGL ES 开发教程(13):阶段小结
之前介绍了什么是 OpenGL ES ,OpenGL ES 管道的概念,什么是EGL,Android中OpenGL ES的开发包以及GLSurfaceView,OpenGL ES所支持的基本几何图形:点,线,面,已及如何使用这些基本几何通过构成较复杂的图像(20面体)。Android OpenGL ES 开发教程(1):导言 Android OpenGL ES 开发教程(2):关于Open转载 2012-11-29 11:21:51 · 863 阅读 · 0 评论 -
Android OpenGL ES 开发教程(11):绘制三角形Triangle
三角形为OpenGL ES支持的面,同样创建一个DrawTriangle Activity,定义6个顶点使用三种不同模式来绘制三角形:Java代码 float vertexArray[] = { -0.8f, -0.4f * 1.732f, 0.0f, 0.0f, -0.4f * 1.732f, 0.0f, -0.4f, 0.4f * 1.73转载 2012-11-29 11:17:46 · 628 阅读 · 0 评论 -
Android OpenGL ES 开发教程(10):绘制线段Line Segment
创建一个DrawLine Activity,定义四个顶点:Java代码 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 * 1.732f, 0.转载 2012-11-29 11:15:23 · 638 阅读 · 0 评论 -
Android OpenGL ES 开发教程(8):基本几何图形定义
在前面Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架 我们创建了示例程序的基本框架,并提供了一个“Hello World”示例,将屏幕显示为红色。本例介绍OpenGL ES 3D图形库支持的几种基本几何图形,本篇部分内容与Android OpenGL ES 简明开发教程三:3D绘图基本概念 类似。通常二维图形库可以绘制点,线,多边形,圆弧,路转载 2012-11-29 10:42:47 · 707 阅读 · 0 评论 -
Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换
Viewing和Modeling 变换关系紧密,对应到相机拍照为放置三角架和调整被拍物体位置及角度,通常将这两个变换使用一个modelview 变换矩阵来定义。对于同一个坐标变换,可以使用不同的方法来想象这个变换,比如将相机向某个方向平移一段距离,效果等同于将被拍摄的模型(model)向相反的方向平移同样的距离(相对运动)。两个不同的空间想象方法对于理解坐标变换各有其优缺点。你可以使用适合自己理解转载 2012-11-30 13:57:17 · 733 阅读 · 2 评论 -
Android OpenGL ES 开发教程(26):设置光照效果Set Lighting
上一篇简单介绍了OpenGL中使用的光照模型,本篇结合OpenGL ES API说明如何使用光照效果:设置光源定义法线设置物体材料光学属性光源OpenGL ES中可以最多同时使用八个光源,分别使用0到7表示。OpenGL ES光源可以分为平行光源(Parallel light source), 代表由位于无限远处均匀发光体,太阳可以近似控制平行光源。点光源(Spot l转载 2012-11-30 15:13:23 · 777 阅读 · 0 评论 -
Android OpenGL ES 开发教程(25):OpenGL光照模型
前面绘制球体时Android OpenGL ES 开发教程(22):绘制一个球体 ,为了能看出3D效果,给场景中添加光源。如果没有光照,绘出的球看上去和一个二维平面上圆没什么差别,如下图,左边为有光照效果的球体,右边为同一个球体但没有设置光源,看上去就没有立体效果,因此OpenGL 光照效果对显示3D效果非常明显。在OpenGL 光照模型中光源和光照效果可以细分为红,绿,蓝三个部分,光源由转载 2012-11-30 15:12:48 · 577 阅读 · 0 评论 -
Android OpenGL ES 开发教程(21):定义3D模型的前面和后面
OpenGL ES 使用也只能使用三角形来定义一个面(Face),为了获取绘制的高性能,一般情况不会同时绘制面的前面和后面,只绘制面的“前面”。虽然“前面”“后面”的定义可以应人而易,但一般为所有的“前面”定义统一的顶点顺序(顺时针或是逆时针方向)。 只绘制“前面”的过程称为”Culling”。下面代码设置逆时针方法为面的“前面”:Java代码 gl.glFront转载 2012-11-30 14:59:51 · 725 阅读 · 0 评论 -
Android OpenGL ES 开发教程(20):颜色Color
OpenGL ES 支持的颜色格式为RGBA模式(红,绿,蓝,透明度)。颜色的定义通常使用Hex格式0xFF00FF 或十进制格式(255,0,255), 在OpenGL 中却是使用0…1之间的浮点数表示。 0为0,1相当于255(0xFF)。我们在Android OpenGL ES 开发教程(19):绘制迷你太阳系 绘制了红太阳,蓝地球,白月亮。使用的是glColor4f 来指定颜色的. 这转载 2012-11-30 14:50:34 · 662 阅读 · 0 评论 -
Android OpenGL ES 开发教程(19):绘制迷你太阳系
前面介绍了3D坐标系统和3D坐标变换以及在OpenGL ES中坐标变换的过程,并与相机拍照片的过程做类比,以便更好的理解这OpenGL中构造3D模型的一部步骤:本例提供绘制一个迷你太阳系系统作为前面知识的总结,这个迷你太阳系,有一个红色的太阳,一个蓝色的地图和一个白色的月亮构成:太阳居中,逆时针自转。 地球绕太阳顺时针公转,本身不自转。 月亮绕地球顺时针公转,自身逆时针自转。 为简转载 2012-11-30 14:49:00 · 703 阅读 · 0 评论 -
Android OpenGL ES 开发教程(18):Viewport变换
摄影师调整好相机和被拍摄物体的位置角度(modelview) ,对好焦距(projection)后,就可以按下快门拍照了,拍好的照片可以在计算机上使用照片浏览器查看照片,放大,缩小,拉伸,并可以将照片显示窗口在屏幕上任意拖放。对应到3D绘制就是Viewport 变换,目前的显示器大多还是2D的,viewport(显示区域)为一个长方形区域,并且使用屏幕坐标系来定义:OpenGL ES 中使转载 2012-11-30 14:24:25 · 756 阅读 · 0 评论 -
Android OpenGL ES 开发教程(17):投影变换Projection
前面ModelView变换相当于拍照时放置相机和调整被拍物体的位置和角度。投影变换则对应于调整相机镜头远近来取景。下面代码设置当前Matrix模式为Projection投影矩阵:gl.glMatrixMode(GL_PROJECTION);gl.glLoadIdentity(); 后续的坐标变换则针对投影矩阵。投影变换的目的是定义视锥(viewing volume),视锥一方转载 2012-11-30 14:05:35 · 583 阅读 · 0 评论 -
Android OpenGL ES 开发教程(15):通用的矩阵变换指令
Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的。这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) Android OpenGL ES支持的一些矩阵运算及操作。OpenGL ES 中使用四个分量(x,y,z,w)来定义空间一个点,使用4个分量来描述3D坐标称为齐次坐标 :所谓齐次坐标就是将一个原本是转载 2012-11-30 10:39:25 · 694 阅读 · 0 评论 -
Android OpenGL ES 开发教程(6):GLSurfaceView
Android OpenGL ES 相关的包主要定义在javax.microedition.khronos.opengles GL 绘图指令 javax.microedition.khronos.egl EGL 管理Display, surface等 android.opengl Android GL辅助类,连接OpenGL 与Android View,Activity javax转载 2012-11-29 10:28:06 · 1016 阅读 · 0 评论 -
Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架
有了前面关于Android OpenGL ES的介绍,可以开始创建示例程序OpenGLDemos。使用Eclipse 创建一个Android项目Project Name: OpenGLDemos Build Target: Android 1.6 ( >1.5 即可) Application Name: Android OpenGL ES Demos Package Name: com转载 2012-11-29 10:42:11 · 1308 阅读 · 1 评论 -
Android OpenGL ES 开发教程(12):绘制一个20面体
前面介绍了OpenGL ES所有能够绘制的基本图形,点,线段和三角形。其它所有复杂的2D或3D图形都是由这些基本图形构成。本例介绍如何使用三角形构造一个正20面体。一个正20面体,有12个顶点,20个面,30条边构成:创建一个DrawIcosahedron Activity, 定义20面体的12个顶点,和20个面如下:static final float X=.5257转载 2012-11-29 11:19:18 · 578 阅读 · 0 评论 -
Android OpenGL ES 开发教程(14):三维坐标系及坐标变换初步
OpenGL ES图形库最终的结果是在二维平面上显示3D物体(常称作模型Model)这是因为目前的打部分显示器还只能显示二维图形。但我们在构造3D模型时必须要有空间现象能力,所有对模型的描述还是使用三维坐标。也就是使用3D建模,而有OpenGL ES库来完成从3D模型到二维屏幕上的显示。这个过程可以分成三个部分:坐标变换,坐标变换通过使用变换矩阵来描述,因此学习3D绘图需要了解一些空间转载 2012-11-29 11:23:19 · 817 阅读 · 0 评论