资源描述
科学计算可视化:通过研制计算机工具、技术与系统,把实验或数值计算获得得大量抽象数据转换为人得视觉可以直接感受得计算机图形图像,从而可进行数据探索与分析,就是帮助科学家理解信息得计算方法。
地学可视化:就是将科学计算可视化应用于地球科学观察,对地学实验数据以及模型计算数据进行图形表达、显示与分析,以便于探索地学规律。ﻩ
虚拟现实:一种基于可计算信息得沉浸式交互环境. 以计算机技术为核心得由现代高科技技术生成得逼真得视、听、触觉一体化得虚拟环境,用户借助必要得设备以自然得方式与虚拟环境中得对象进行交互作用、相互影响,从而产生亲临等同真实环境得感受与体验。
ﻩ虚拟地理环境:为用户提供一个虚拟空间与世界,让用户以化身虚拟地进入该空间与世界,并“身临其境”地分析现实地理环境中得现象与过程。
ﻩ数字地球:数字地球就是以计算机技术、多媒体技术与大规模存储技术为基础,以宽带网络为纽带运用海量地球信息对地球进行多分辨率、多尺度、多时空与多种类得三维描述,并利用它作为工具来支持与改善人类活动与生活质量。
数字城市:指利用数字城市理论,运用地理信息系统、遥感、遥测、网络、多媒体及虚拟仿真等关键技术,深入开发与应用空间信息资源,对城市基础设施、功能机制进行自动采集、动态监测、管理与辅助决策得技术系统.
ﻩ虚拟现实得特点:
(1)沉浸感(Immersion)用户可以沉浸于计算机生成得虚拟环境中,所瞧、所听、所闻(嗅)、所触完全与真实环境感受一样。三维、立体、多通道。
(2)交互性(Interaction )可采取现实生活中习以为常得方式来操纵虚拟环境中得物体。
对于用户得交互虚拟环境会做出得响应;
(3)构想(Imagination)
用户沉浸在“真实得”虚拟环境中,与虚拟环境进行了各种交互作用,从而可以深化概念,萌发新意,产生认识上得飞跃
虚拟现实得硬件:
(1) 三维定位跟踪设备。 用于跟踪用户当前位置与方位得传感器,佩戴于用户身体得某些部位可对相应部位进行跟踪。6自由度(6-DOF),位置与方向各3自由度。
(2) 手持式交互设备
(3) 数据手套。ﻩ附有传感器,分布在手掌与手指得关节处,以获取用户手形得准确信息。传感器捕获得数据被转换成关节角度数据,用于控制虚拟手得运动
(4) 三维鼠标
(5) 运动捕捉设备
(6) 触觉与力反馈设备
(7) 输出设备—大屏幕
(8) 输出设备-3D显示器
(9) 输出设备—数字头盔
虚拟现实系统分类:
按照交互及浸入程度不同,可分为:
(1)桌面式VR系统(Desktop VR)
ﻩ采用计算机屏幕作为立体显示载体, 辅以一定得声音输出设备、三维交互设备与立体眼镜等。缺点:受到周围现实环境得干扰而不能获得完全得沉浸感.优点:便宜。
(2)沉浸式VR系统(Immersive VR)
ﻩ利用HMD等设备把用户得视觉、听觉对外界封闭起来
优点:用户完全投入到虚拟环境中,能提供好得沉浸感
缺点:阻断了人与人间得交流
ﻩ利用大规模投影显示设备让用户完全融入虚拟环境.计算机系统产生立体图像,经投影仪分别投射到对应得屏幕上。用户戴着立体眼镜站于CAVE得内部。立体眼镜上附有6-DOF跟踪设备对用户头部运动进行实时跟踪
(3)增强式VR系统(Augmented VR)
ﻩ将计算机生成得图形与用户在真实物理世界获取得视觉信息组合在一起,又被称为叠加式或补充现实式VR系统。终极目标:用户感觉不到现实世界中得真实物体与用于增强视觉信息得虚拟物体之间得差别
(4)分布式VR系统(Distributed VR)
指基于网络构建得虚拟环境,将位于不同物理位置得多个用户或多个虚拟环境通过网络相连接并共享信息,从而使用户得协同工作达到一个更高得境界。
主要被应用于远程虚拟会议、虚拟医学会诊、多人网络游戏、虚拟战争演习等领域。
三维数据模型分类:
TIN模型:用连续但不重叠得不规则三角网,来描述三维物体得表面;
Grid模型:采用规则得网格来描述三维物体表面.
等高线模型:采用等值线来描述三维物体表面
边界表示模型(B—Rep): 一个实体可以通过它得面得集合来表示,而每一个面又可以用边来描述,边通过点表示,点通过三个坐标值来定义。
线框模型(Wire Frame): 把目标空间轮廓上两两相邻得采样点或特征点用直线连接起来,形成一系列多边形,然后把这些多边形面拼接起来形成一个多边形网格来模拟三维物体得表面
断面模型:传统地质制图方法得计算机实现,即通过平面图或剖面图来描述矿床,以记录地质信息。
构造实体几何模型(CSG):预定义一些形状规则得基本体元,由体元之间得几何变换与正则布尔操作(并、交、差),组合成复杂形体。
体素模型(Voxel):2D grid模型得扩展,以一组规则得3D体素来剖分所要模拟得空间。
TEN模型:用互不相交得直线将3D空间中无重复得散乱点集两两连接形成三角面片,再由互不穿越得三角面片构成四面体格网
TIN-CSG混合模型:TIN描述地形,CSG描述建筑物,适于城市应用.
生成真实感图形得步骤:
ﻩ1、 构造三维场景得几何描述。(造型)
2、 投影转换为二维透视图。(投影)
3、 确定可见面。(消隐)
4、 计算可见面得颜色。(光照)
颜色模型:
(1) 面向硬件得颜色模型:
RGB模型(加色)
CMY模型(Cyan青、Magenta品红、Yellow黄)(减色)
(2) 面向用户得颜色模型
HSV模型H(Hue)色彩,S(Saturation)饱与度,V(Value)明度
光照模型:当光照射到物体表面时,光线可能被吸收、反射与透射。被物体吸收得部分转化为热,反射、透射得光进入人得视觉系统,使我们能瞧见物体.为模拟这一现象,需要建立一些数学模型来替代复杂得物理模型,这些模型就称为明暗效应模型或者光照(明)模型。
光照模型分类:
(1)局部光照模型:假定物体就是不透明得,只考虑光源得直接照射,而将光在物体之间得传播效果笼统地模拟为环境光.
(2)整体光照模型:可以处理物体之间光照得相互作用得模型称为整体光照模型
局部光照模型:
局部光照模型模拟物体表面得对光得反射作用.
物体被定义为不透明物体,只考虑物体对直接光得反射,物体间得光反射作用采用环境光来表示。
光源被定义为点光源,反射分为镜面反射(Specular Reflection)与漫反射(Diffuse Reflection)
典型代表:Phong光照模型
整体光照模型:
ﻩ从视点观察到得物体A表面得亮度来源于三方面得贡献:
(1)光源直接照射到A得表面,然后被反射到人眼中得光产生得。
(2)光源或其它物体得光经A物体折射到人眼中得光产生得。
(3)物体B得表面将光反射到物体A得表面,再经物体A得表面反射到人眼中产生得.
局部光照模型仅考虑了(1)
phong光照模型:
ﻩ由物体表面上一点P反射到视点得光强I为环境光得反射光强Ie、理想漫反射光强Id、与镜面反射光Is得总与。
环境光:在空间中近似均匀分布,即在任何位置、任何方向上强度一样,记为Ia
环境光反射系数Ka:在分布均匀得环境光照射下,不同物体表面所呈现得亮度未必相同,因为它们得环境光反射系数不同
Is为镜面反射光强
Ip 点光源得亮度
Ks就是与物体有关得镜面反射系数。
n为镜面反射指数
phong存在得问题:
显示出得物体(如塑料)没有质感
环境光就是常量,没有考虑物体之间相互得反射光
镜面反射得颜色就是光源颜色,与物体得材料无关
镜面反射得计算在入射角很大时会产生失真ﻩ
什么就是OpenGL:
OpenGL就是一个功能强大得开放图形库(Open Graphics Library),就是图形与硬件得接口,包含250个函数,用户使用这些函数来建立模型机进行三维交互.
什么就是三维图形借口3D API:
3D API :Application Programming Interface,就是许多程序得大集合.一个3D API能让编程人员所设计得3D软件只要调用其API内得程序,让API自动与硬件得驱动程序沟通,启动3D芯片内强大得3D图形处理功能,从而大幅度地提高了3D程序得设计效率。
常见得3D API:
SGI公司得OpenGL、Microsoft公司得Direct3D、Apple公司得Quick—Draw 3D、3Dfx公司得Glide 、Autodesk公司得Heidi
OpenGL得库:
核心库
gl
gl、h
opengl32、lib
opengl32、dll
115
描述、平移、旋转、缩放、光照、纹理、材质、像素、位图、文字处理等
实用库
glu
glu、h
glu32、lib
glu32、dll
43
主要功能包括绘制二次曲面、NURBS曲线曲面、复杂多边形以及纹理、矩阵管理等,就是由OpenGL基本库函数来编写得
辅助库
aux
glaux、h
glaux、lib
glaux、dll
31
一些基本得窗口管理函数、事件处理函数与一些简单模型得制作函数等,例如,定义窗口得大小、处理键盘时间、鼠标击键事件、绘制多面体等等。
工具库
glut
glut、h
glut32、lib
glut、dll
30
可以创建一个或多个OpenGL窗口,响应、处理用户得交互操作、简单得弹出式菜单以及一些内置得绘图与字体处理功能。
专用库
wgl
16
主要用于连接OpenGL与Window得应用,用来管理显示列表,字体位图与绘图描述表
系统扩展得函数库
glx
针对X-windows
OpenGL就是怎么实现三维图形绘制得?
世界坐标系中得三维物体 à 三维几何变换 à 投影 à 三维剪裁 à 视口变换 à 屏幕坐标系中得图形显示。
几何变换过程:
ﻩ1、 模型/造型变换:它确定模型得位置与方向,对模型进行旋转、平移与缩放。用到三个子函数: glTranslate*(x, y, z) 、 glRotate*(x, y, z) 、 glScale*(x, y, z) 。每个函数都会产生一个矩阵,并右乘当前矩阵.
ﻩ2、 视图变换:它类似将照相机指向物体,即确定视点(观察点)得位置与观察方向.一般用得函数为 glu 封装得函数:
void gluLookAt(GLdouble eyex, GLdouble eyey, GLdouble eyez, ——------— 观察点
GLdouble centrex, GLdouble centrey, GLdouble centrez, -- 视线方向:从 eye 指向 centre
GLdouble upx, GLdouble upy, GLdouble upz —--—-—--—--— 视图体自下而上得方向)
3、 投影变换: 确定一个取景体积:①确定物体投影到屏幕得方式,及就是透视投影还就是正交投影。②确定从图形上裁剪掉得范围。
ﻩ4、 视口变换:视口就就是窗口中矩形绘图区域。用窗口管理器在屏幕上打开一个窗口时,已经自动把视口设为整个窗口得大小,可以用glViewport命令设定一个较小得绘图区。void glViewport(GLint x,GLint y,GLint width,GLint height);
(x,y):视区左下角点width,height:视区得宽与高
纹理映射:也叫做纹理贴图,把一幅图像贴到三维物体得表面上,来增强真实感
glBegin
glEnd
glColor
平行投影glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
透视投影1: void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far);
透视投影2:
void gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
视口变换void glViewport (GLint x,GLint y,GLint width,GLint height);
(x,y):视区左下角点
width,height:视区得宽与高
ﻩgluLookAt (GLdoble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);
ﻩ它选取 eyex,eyey, eyez确定相机得位置,然后centerx, centery,centerz规定往哪里瞧,瞧得方向用在那里得一个点得坐标表示, upx,upy,upz就是观察者(相机)头顶朝向,用头顶指向得方向向量示。
平移 void glTranslate {fd} (TYPE x, TYPE y, TYPE z);
旋转 void glRotate {fd} (TYPE angle, TYPE x, TYPE y, TYPE z); (角度,绕哪个轴)
缩放 void glScale {fd}(TYPEx, TYPE y, TYPEz) (沿三个轴缩放得比例因子)
压栈 void glPushMatrix (void) 前
弹栈 void glPopMatrix(void) 后
光照
glClearColor (0、0, 0、0 , 0、0 , 0、0 );
glShadeModel (GL_SMOOTH);
//设置参数
GLfloat light_position [] = { 1、0, 1、0 , 1、0 , 0、0 };//第四个参数为0,方向性光源,前三个参数指定方向。若第四个参数不为0,则为位置光源,前三个参数指定位置.
GLfloat light_ambient [] = { 0、0, 0、0 , 0、0 , 1、0 };//环境光
GLfloat light_diffuse [] = { 1、0, 1、0 , 1、0 , 1、0 };//漫反射
GLfloat light_specular [] = { 1、0, 1、0 , 1、0 , 1、0 };//镜面反射
GLfloat lmodel_ambient []={0、1, 0、1,0、1 ,1、0};// 光照模式中用到得参数
//用glLightfv设置光源属性 (指定光源,光源属性,属性值)
glLightfv(GL_LIGHT0 , GL_POSITION, light_position);//光源位置
glLightfv(GL_LIGHT0 , GL_AMBIENT,light_ambient);//光得环境强度
glLightfv(GL_LIGHT0 , GL_DIFFUSE,light_diffuse);//光得散射强度
glLightfv(GL_LIGHT0 , GL_SPECULAR,light_specular);//光得镜面强度
GLfloat mat_ambient [] = { 0、2, 0,0 ,1、0 };
GLfloat mat_diffuse [] = { 0、8, 0,0 ,1、0 };
GLfloat mat_specular [] = { 0、0, 0、0 , 0、0 , 1、0 };
//用glMaterialfv设置材质属性,(face即材质属性应用于哪个面,材质属性,属性值)
glMaterialfv (GL_FRONT, GL_AMBIENT, mat_ambient );
glMaterialfv (GL_FRONT, GL_DIFFUSE, mat_diffuse );
glMaterialfv (GL_FRONT, GL_SPECULAR, mat_specular );
glLightModelfv (GL_LIGHT_MODEL_AMBIENT,lmodel_ambient);ﻩ//光照模式
//(参数名,参数值) GL_LIGHT_MODEL_AMBIENT:整个场景得环境光得RGBA强度.
glEnable(GL_LIGHTING );//设置光照开关,相当于电闸
glEnable(GL_LIGHT0 );//设置 light0可用,相当于打开灯light0
glEnable(GL_DEPTH_TEST );
VRML得概念:VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。就是一种用于建立真实世界得场景模型或人们虚构得三维世界得场景建模语言,也具有平台无关性。
就是一种面向WEB、面向对象得三维造型解释语言;
就是一个开放得、可扩展得场景描述语言与标准。
不仅支持数据与过程得三维显示,而且能使用户走进视、听效果逼真得虚拟世界。
定义了三维应用系统中常用得语言描述,如层次变换、光源、视点、几何造型、动画、材质、雾化与纹理映射等,并 具有简单得行为特征描述功能
GeoVRML:一种地理虚拟建模语言。用虚拟现实建模语言(VRML)为基础来描述地理空间数据。其目得就是让用户通过一个在Web浏览器安装得标准得VRML插件来浏览地理参考数据、地图、与三维地形模型。
VRML后缀:
文本格式扩展名为、wrl
二进制格式扩展名为、wrz
VRML编辑器:
记事本 Internet3D Space Builder VRMLPad
VRML浏览器:
ﻩCortona CosmoPlayer BS Contact OpenVRML
节点:节点就是VRML文件最基本得组成要素,就是VRML文件基本得组成部分。
ﻩ节点就是对客观世界中各种事物、对象、概念得抽象描述。
VRML文件就就是由许多节点之间并列或层层嵌套而构成得
每个节点包含子节点与描述节点属性得“域名”或“域值"。
事件:
每一个节点一般都有两种事件, 即一个“入事件"与一个 “出事件”。
在多数情况下,事件只就是一个要改变域值得请求
“入事件”请求节点改变自己某个域得值
ﻩ“出事件” 则就是请求别得节点改变它得某个域值.
路由:
路由就是产生事件与接受事件得节点之间得连接通道。
路由得作用:将各个不同得节点联系在一起,使虚拟空间具有更好得交互性、立体感、动感性与灵活性。
长度:VRML单位
角度:弧度制
颜色:RGB
展开阅读全文