基于Android的3D图像显示方法

文档序号:1773233 发布日期:2019-12-03 浏览:22次 >En<

阅读说明:本技术 基于Android的3D图像显示方法 (3D rendering display methods based on Android ) 是由 林琳 于 2018-05-25 设计创作,主要内容包括:本发明主要在Android手机操作系统应用OpenGL以及相关技术,来实现图形的3D建模和展示工作。说明了利用OpenGL ES实现三维图形绘制的最基本的编程框架及方法,以及OpenGL中的投影、光照、材料等最重要的技术的应用方法。本发明实现了3D图像显示和渲染处理。(The present invention is mainly in Android phone operating system application OpenGL and the relevant technologies, the 3D modeling and displaying work of Lai Shixian figure.Illustrate the application method using most important technologies such as the OpenGL ES most basic programming framework and method for realizing 3 D image drawing and projection, illumination, materials in OpenGL.The present invention realize 3D rendering show and rendering processing.)

基于Android的3D图像显示方法

技术领域

本发明属于计算机图形技术领域,是一种基于Android手机系统3D图像显示方法。

背景技术

通常所说的在计算机里呈现三维图形,是指在平面的2D环境下呈现图形的三维效果。和我们平常生活中不同的是,在现实的三维空间里,有真实的距离、空间感觉。然而在计算机里,我们只是做到了大体上的像真实的三维世界,所以基本上说计算机所实现的3D图形,仅仅是让人视觉效果上感受到和真实的相同。人眼的最大的特点就是看景象是近大远小,以此形成立体的感觉。计算机呈现效果通过平面的(2D),但我们之所以能够看到好似真实景象相同的三维效果,是因为显示在计算机显示屏上的色彩灰度不同从而让人的眼睛造成实物上的幻觉,从而让二维的计算机显示屏感知作为三维的图像来显示。

3D图像立体技术有着强大的生命力。可以无限开拓的市场空间,制作技术广阔的市场前景,成熟完备的工艺技术,数字化的应用技术使立体图像制品有着强大无限的生命力。我们可以预见其市场前景非常的广阔。但是作为一项相对的高科技产业,立体成像技术是一种综合的交叉技术。它要综合多种材料的科技技术,操作较难,技术也是特别的困难。所以其成品在国内也只是刚刚的开始。

发明内容

本发明的目的在于基于Android系统下,利用OpenGL裁剪定制而来的OpenGL ES,来实现3D图像的绘制与显示。

为实现上述目的,本发明的技术方案是:基于Android的3D图像显示方法,包括以下步骤:

步骤1:搭建Android开发环境。

步骤2:建模流程。在本次设计之中,我们是想利用Android3D绘图技术来再现立体的图像,所以展现的形式就是先绘制一个立方体的box,然后在立方体的内部的内壁上贴上学院四周的景象图片,在绘制完立方体的box以后,我们在立方体的内部开始着手绘制长方体的教学楼,波光凌凌的水面,和教学楼前面的鼎,我们将这三大景物都绘制在box的内部,我们先是将教学楼和鼎放置在水面的上面,然后水面悬浮在box的半空之中,这样做的目的也是为了图像的景深考虑的,为了更好的让视图有3D感,然后在各个景物的外壁都贴上相应的贴图。

步骤3:建模所用到的知识。首先是图形的旋转,这里我们要用到旋转变换,也就是让一个图形在我们特定的空间内实现旋转的一种过程。这里我们一点要理解顺时针、逆时针的旋转,因为我们要特别的注意角度问题。但是我们不需要特别的担心,OpenGL ES中会有对应的函数来帮我们实现。接着是图形的缩放变换,也就是让图形成正比例的放大缩小,因为我们需要在真机上进行演示,而现在都是触屏手机,所以我们可以在显示器上得到多于两个的触感点。所以我们完全可以对图片进行放大和缩小。最后是图形之间的相对位置关系,首先要选择一个适宜的参照物来确定空间坐标系的原点。对应的我们在OpenGL ES中也要确定坐标原点,还有整体图形的朝向。

步骤4:图形的具体绘制。运用SkyBox类来实现天空盒子的建造和绘图。天空盒子的六个面的平面图形数据对象进行初始化。这里对平面的大小和纹理图片的选择都进行了具体的设定。这样我们就会的到盒子的六个平面了,然后我们在对六个平面进行平移和旋转就可以得到完整的天空盒子了。

步骤5:图形渲染处理。在OpenGL ES上完成基本图形的绘制之后,要对这几个立体图形进行渲染。首先,我们要增加光源,因为任何颜色只有我们在有光照的情况下才会被我们的眼睛接收。所以我们要对整个3D图形进行加光。然后我们要对其四周进行贴图处理。我们选取实物的图形惊醒贴图。

步骤6:构造贴图。

本发明的优点和积极效果是:

相较于现有基于Android的3D图象显示方法,本发明的有益效果:嵌入式设备的工作环境大部分是恶劣的,其中对震动、温度、冲击、湿度、酸碱腐蚀度都会有极高的要求。而OpenGL ES作为OpenGL的嵌入式系统的版本,它主要是运用于手机、控制台游戏机、平板电脑等类型上的OpenGL版本。它由OpenGL剪裁而来,和OpenGL对比,相对的简化及没有了OpenGL中一些比较复杂的特性。从而可以在尽量节省电能的情况下还要高效完成界面交互的工作。

附图说明

图1为建模流程图。

图2为渲染流程图。

具体实施方式

以下结合附图对本发明实施例做进一步详述:

一种基于Android的3D图像显示方法,包括以下步骤:

相关定义:

(1)OpenGL。是一个高级的三维计算机图形模型库,最初由美国SGI公司开发,目的是为图形工作站提供强大的三维图形机制。

(2)OpenGL ES(OpenGL for Embedded Systems)。是OpenGL三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。OpenGL ES是从OpenGL裁剪的定制而来的,去除了glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要的特性。

步骤1:搭建Android开发环境。

步骤2:建模流程。首先是BOX模块;接着是波光粼粼的3D水面模块;然后是教学楼的长方体3D景物模块;最后是3D鼎模块的绘制模块。

步骤3:建模所用到知识。图形的旋转。图形的缩放。图形之间的相对位置关系。

步骤4:图形的具体绘制。

步骤5:图形渲染处理。在GLRender.java中,利用initLight0()方法对光源进行了初始化,对图形进行了渲染,

光照处理。LED使得看上去更加坚实的对象。如果没有光,大部分建筑像的三维物体。因此,光对于三维物体非常重要。在OpenGL ES中,有两个来源,产生的照明效果,光导光定位。光对应于导光的光源,在空间中的无限远位置的光导的所有方向是相同的。对应于光的某一位置的光源的光的定位。此外,当您设置的照明效果,我们需要设置一些光源,如颜色的属性。OpenGL ES的允许三种颜色GL_AMBIENT联合使用不同的参数,GL_DIFFUSE,GL_SPECULAR。

步骤6:构造贴图。GLImage.java类主要是建了一系列的静态变量用来初始化我们的贴图信息,也就是说我们将对3D模型的图片的引用操作封装在这个类中,在后期的编程之中我们直接调用这个类的静态变量的方式来读取我们需要的图片信息,这样的封装可以节省大量的代码重复,可以让代码可读性大大的提高。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:环境光信息确定方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!