CN110533759A - 基于Android的3D图像显示方法 - Google Patents
基于Android的3D图像显示方法 Download PDFInfo
- Publication number
- CN110533759A CN110533759A CN201810520694.XA CN201810520694A CN110533759A CN 110533759 A CN110533759 A CN 110533759A CN 201810520694 A CN201810520694 A CN 201810520694A CN 110533759 A CN110533759 A CN 110533759A
- Authority
- CN
- China
- Prior art keywords
- opengl
- android
- class
- rendering
- textures
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明主要在Android手机操作系统应用OpenGL以及相关技术,来实现图形的3D建模和展示工作。说明了利用OpenGL ES实现三维图形绘制的最基本的编程框架及方法,以及OpenGL中的投影、光照、材料等最重要的技术的应用方法。本发明实现了3D图像显示和渲染处理。
Description
技术领域
本发明属于计算机图形技术领域,是一种基于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模型的图片的引用操作封装在这个类中,在后期的编程之中我们直接调用这个类的静态变量的方式来读取我们需要的图片信息,这样的封装可以节省大量的代码重复,可以让代码可读性大大的提高。
Claims (1)
1.一种基于Android的3D图像显示方法,其特征在于包括以下步骤:
步骤1:Android开发环境的搭建。
步骤2:建模流程及所用到的知识。
步骤3:OpenGL的应用,图形的具体绘制。这里主要运用SkyBox类来实现天空盒子的建造和绘图。
步骤4:图形渲染处理。在OpenGL ES上完成基本图形的绘制之后,要对这几个立体图形进行渲染。首先,要增加光源,因为任何颜色只有在有光照的情况下才会被我们的眼睛接收。所以要对整个3D图形进行加光。然后要对其四周进行贴图处理。选取实物的图形惊醒贴图。但是湖需要有水波荡漾的样子,所以不进行贴图而是直接运用OpenGL中的知识直接对其处理。光照处理,纹理贴图处理,法向量的处理。
步骤5:构造贴图。GLImage.java类主要是建了一系列的静态变量用来初始化我们的贴图信息,也就是说我们将对3D模型的图片的引用操作封装在这个类中,在后期的编程之中我们直接调用这个类的静态变量的方式来读取我们需要的图片信息,这样的封装可以节省大量的代码重复,可以让代码可读性大大的提高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810520694.XA CN110533759A (zh) | 2018-05-25 | 2018-05-25 | 基于Android的3D图像显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810520694.XA CN110533759A (zh) | 2018-05-25 | 2018-05-25 | 基于Android的3D图像显示方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110533759A true CN110533759A (zh) | 2019-12-03 |
Family
ID=68657904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810520694.XA Pending CN110533759A (zh) | 2018-05-25 | 2018-05-25 | 基于Android的3D图像显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533759A (zh) |
-
2018
- 2018-05-25 CN CN201810520694.XA patent/CN110533759A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6707458B1 (en) | Method and apparatus for texture tiling in a graphics system | |
WO2013078859A1 (zh) | 一种三维界面显示装置、方法及终端 | |
CN101477700B (zh) | 面向Google Earth与Sketch Up的真三维立体显示方法 | |
CA2391673A1 (en) | Image-based methods of representation and rendering of three-dimensional object and animated three-dimensional object | |
CN103077552B (zh) | 一种基于多视点视频的三维展示方法 | |
CN101477702B (zh) | 计算机显卡的植入式真三维立体驱动方法 | |
CN101021952A (zh) | 一种实现三维视频特效的方法及装置 | |
CN101477701A (zh) | 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法 | |
Choromański et al. | Development of virtual reality application for cultural heritage visualization from multi-source 3D data | |
CN106664399A (zh) | 3维显示器及数据产生方法 | |
TW201237801A (en) | Method for processing three-dimensional image vision effects | |
CN101686336B (zh) | 三维场景中计时装置的显示方法 | |
CN101540056B (zh) | 面向ERDAS Virtual GIS的植入式真三维立体渲染方法 | |
CN102693065A (zh) | 立体影像视觉效果处理方法 | |
Wang et al. | Research and design of digital museum based on virtual reality | |
CN101521828B (zh) | 面向esri三维gis模块的植入式真三维立体渲染方法 | |
CN110533759A (zh) | 基于Android的3D图像显示方法 | |
WO2018013373A1 (en) | Preserving scene lighting effects across viewing perspectives | |
CN101511034A (zh) | 面向Skyline的真三维立体显示方法 | |
Chen et al. | 360 degree crosstalk-free viewable 3D display based on multiplexed light field: theory and experiments | |
CN101482978B (zh) | 面向envi/idl的植入式真三维立体渲染方法 | |
CN101488229A (zh) | 面向pci三维分析模块的植入式真三维立体渲染方法 | |
CN101488232B (zh) | 面向C Tech软件的植入式真三维立体显示方法 | |
Brogni et al. | An interaction system for the presentation of a virtual egyptian flute in a real museum | |
de Lima et al. | A model for real time ocean breaking waves animation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191203 |
|
WD01 | Invention patent application deemed withdrawn after publication |