地学可视化 复习

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1、科学计算可视化:通过研制计算机工具、技术和系统,把实验或数值计算获得的大量抽象数据转换为人的视觉可以直接感受的计算机图形图像,从而可进行数据探索和分析,是帮助科学家理解信息的计算方法。2、地学可视化:是将科学计算可视化应用于地球科学观察,对地学实验数据以及模型计算数据进行图形表达、显示和分析,以便于探索地学规律。3、颜色模型:(1)面向硬件的颜色模型:RGB模型(加色)(灰色的RGB值)CMY模型(Cyan青、Magenta品红、Yellow黄)(减色)(2)面向用户的颜色模型HSV模型H(Hue)色彩,S(Saturation)饱和度,V(Value)明度4、视觉通道:大脑接受外部世界视觉信息的通道、定性:什么,哪里定量:多少、大小、先后5、地学可视化基本方法(1)颜色映射法:适用于2D/3D标量场及2D/3D实体的可视化。先建立一张数值转换为颜色的颜色映射表,然后再将标量场或实体的属性值转化为颜色表的索引值(2)等值线提取法:适用于2D标量场的三维可视化。根据设定的阈值在2D标量场数据中寻找等值点,将所有的等值点连成一个封边的曲线(3)高度映射法:适用于2D标量场及时空数据的三维可视化。将二维标量场中的值或时空数据的时间信息转换为二维平面坐标上的高度信息再加以显示。(4)等值面提取法:适用于3D标量场的三维可视化。根据设定的阈值在3D标量场数据的三维空间中寻找所有等值点,将所有的等值点连成一个封边的曲面(5)直接体绘制法:适用于3D标量场及真3D实体模型的三维可视化采用光线贡献积分模型,直接计算三维空间采样点对结果图像的贡献,以揭示可视化目标的内部结构。(6)间接体绘制法:适用于3D实体及3D标量场的三维可视化。通过构建中间几何图元实现三维数据的可视化(7)真实感三维图形绘制法:几乎贯穿于所有三维可视化方法中,尤其是数字城市、虚拟现实等的三维可视化。围绕可视化对象的体特征和质特征,利用消隐、光照模型、明暗处理、纹理处理等技术对目标对象进行可视化,使得可视化结果与真实世界的物体想媲美。·体特征:投影变形、空间遮挡、阴影等要素。·质特征:物体表面材质的光反射、折射、光学强度及属性内容构造三维场景的几何描述。(造型)投影转换为二维透视图。(投影)确定可见面。(消隐)计算可见面的颜色。(光照)OpenGL中怎么生成真实感三维图形6、光照模型:当光照射到物体表面时,光线可能被吸收、反射和透射。被物体吸收的部分转化为热,反射、透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,需要建立一些数学模型来替代复杂的物理模型,这些模型就称为明暗效应模型或者光照(明)模型。光照模型分类:(1)局部光照模型:假定物体是不透明的,只考虑光源的直接照射,而将光在物体之间的传播效果笼统地模拟为环境光。(2)整体光照模型:可以处理物体之间光照的相互作用的模型称为整体光照模型局部光照模型:局部光照模型模拟物体表面的对光的反射作用。物体被定义为不透明物体,只考虑物体对直接光的反射,物体间的光反射作用采用环境光来表示。光源被定义为点光源,反射分为镜面反射(SpecularReflection)和漫反射(DiffuseReflection)典型代表:Phong光照模型整体光照模型:从视点观察到的物体A表面的亮度来源于三方面的贡献:(1)光源直接照射到A的表面,然后被反射到人眼中的光产生的。(2)光源或其它物体的光经A物体折射到人眼中的光产生的。(3)物体B的表面将光反射到物体A的表面,再经物体A的表面反射到人眼中产生的。局部光照模型仅考虑了(1)phong光照模型:由物体表面上一点P反射到视点的光强I为环境光的反射光强Ie、理想漫反射光强Id、和镜面反射光Is的总和。nsdpaasdeRVKNLKIKIIIII环境光:在空间中近似均匀分布,即在任何位置、任何方向上强度一样,记为Ia环境光反射系数Ka:在分布均匀的环境光照射下,不同物体表面所呈现的亮度未必相同,因为它们的环境光反射系数不同Is为镜面反射光强Ip点光源的亮度Ks是与物体有关的镜面反射系数。n为镜面反射指数phong存在的问题:显示出的物体(如塑料)没有质感环境光是常量,没有考虑物体之间相互的反射光镜面反射的颜色是光源颜色,与物体的材料无关镜面反射的计算在入射角很大时会产生失真7、三维数据模型分类:TIN模型:用连续但不重叠的不规则三角网,来描述三维物体的表面;Grid模型:采用规则的网格来描述三维物体表面。等高线模型:采用等值线来描述三维物体表面边界表示模型(B-Rep):一个实体可以通过它的面的集合来表示,而每一个面又可以用边来描述,边通过点表示,点通过三个坐标值来定义。线框模型(WireFrame):把目标空间轮廓上两两相邻的采样点或特征点用直线连接起来,形成一系列多边形,然后把这些多边形面拼接起来形成一个多边形网格来模拟三维物体的表面断面模型:传统地质制图方法的计算机实现,即通过平面图或剖面图来描述矿床,以记录地质信息。构造实体几何模型(CSG):预定义一些形状规则的基本体元,由体元之间的几何变换和正则布尔操作(并、交、差),组合成复杂形体。体素模型(Voxel):2Dgrid模型的扩展,以一组规则的3D体素来剖分所要模拟的空间。TEN模型:用互不相交的直线将3D空间中无重复的散乱点集两两连接形成三角面片,再由互不穿越的三角面片构成四面体格网TIN-CSG混合模型:TIN描述地形,CSG描述建筑物,适于城市应用。生成真实感图形的步骤:1.构造三维场景的几何描述。(造型)2.投影转换为二维透视图。(投影)3.确定可见面。(消隐)4.计算可见面的颜色。(光照)其他混合模型什么是OpenGL:OpenGL是一个功能强大的开放图形库(OpenGraphicsLibrary),是图形与硬件的接口,包含250个函数,用户使用这些函数来建立模型机进行三维交互。什么是三维图形借口3DAPI:3DAPI:ApplicationProgrammingInterface,是许多程序的大集合。一个3DAPI能让编程人员所设计的3D软件只要调用其API内的程序,让API自动和硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,从而大幅度地提高了3D程序的设计效率。常见的3DAPI:SGI公司的OpenGL、Microsoft公司的Direct3D、Apple公司的Quick-Draw3D、3Dfx公司的Glide、Autodesk公司的HeidiOpenGL的库:核心库glgl.hopengl32.libopengl32.dll115描述、平移、旋转、缩放、光照、纹理、材质、像素、位图、文字处理等实用库gluglu.hglu32.libglu32.dll43主要功能包括绘制二次曲面、NURBS曲线曲面、复杂多边形以及纹理、矩阵管理等,是由OpenGL基本库函数来编写的辅助库auxglaux.hglaux.libglaux.dll31一些基本的窗口管理函数、事件处理函数和一些简单模型的制作函数等,例如,定义窗口的大小、处理键盘时间、鼠标击键事件、绘制多面体等等。工具库glutglut.hglut32.libglut.dll30可以创建一个或多个OpenGL窗口,响应、处理用户的交互操作、简单的弹出式菜单以及一些内置的绘图和字体处理功能。专用库wgl16主要用于连接OpenGL和Window的应用,用来管理显示列表,字体位图和绘图描述表系统扩展的函数库glx针对X-windowsOpenGL是怎么实现三维图形绘制的?世界坐标系中的三维物体三维几何变换投影三维剪裁视口变换屏幕坐标系中的图形显示。几何变换过程:1.模型/造型变换:它确定模型的位置和方向,对模型进行旋转、平移和缩放。用到三个子函数:glTranslate*(x,y,z)、glRotate*(x,y,z)、glScale*(x,y,z)。每个函数都会产生一个矩阵,并右乘当前矩阵。2.视图变换:它类似将照相机指向物体,即确定视点(观察点)的位置和观察方向。一般用的函数为glu封装的函数:voidgluLookAt(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,---------观察点GLdoublecentrex,GLdoublecentrey,GLdoublecentrez,--视线方向:从eye指向centreGLdoubleupx,GLdoubleupy,GLdoubleupz------------视图体自下而上的方向)3.投影变换:确定一个取景体积:①确定物体投影到屏幕的方式,及是透视投影还是正交投影。②确定从图形上裁剪掉的范围。4.视口变换:视口就是窗口中矩形绘图区域。用窗口管理器在屏幕上打开一个窗口时,已经自动把视口设为整个窗口的大小,可以用glViewport命令设定一个较小的绘图区。voidglViewport(GLintx,GLinty,GLintwidth,GLintheight);(x,y):视区左下角点width,height:视区的宽和高纹理映射:也叫做纹理贴图,把一幅图像贴到三维物体的表面上,来增强真实感glBeginglEndglColor平行投影glOrtho(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublenear,GLdoublefar);透视投影1:voidglFrustum(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublenear,GLdoublefar);透视投影2:voidgluPerspective(GLdoublefovy,GLdoubleaspect,GLdoublezNear,GLdoublezFar);视口变换voidglViewport(GLintx,GLinty,GLintwidth,GLintheight);(x,y):视区左下角点width,height:视区的宽和高gluLookAt(GLdobleeyex,GLdoubleeyey,GLdoubleeyez,GLdoublecenterx,GLdoublecentery,GLdoublecenterz,GLdoubleupx,GLdoubleupy,GLdoubleupz);它选取eyex,eyey,eyez确定相机的位置,然后centerx,centery,centerz规定往哪里看,看的方向用在那里的一个点的坐标表示,upx,upy,upz是观察者(相机)头顶朝向,用头顶指向的方向向量示。平移voidglTranslate{fd}(TYPEx,TYPEy,TYPEz);旋转voidglRotate{fd}(TYPEangle,TYPEx,TYPEy,TYPEz);(角度,绕哪个轴)缩放voidglScale{fd}(TYPEx,TYPEy,TYPEz)(沿三个轴缩放的比例因子)压栈voidglPushMatrix(void)前弹栈voidglPopMatrix(void)后光照glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_SMOOTH);//设置参数GLfloatlight_position[]={1.0,1.0,1.0,0.0};//第四个参数为0,方向性光源,前三个参数指定方向。若第四个参数不为0,则为位置光源,前三个参数指定位置。GLfloatlight_ambient[]={0.0,0.0,0.0,1.0};//环境光GLfloatlight_diffuse[]={1.0,1.0,1.0,1.0};//漫反射GLfloatlight_specular[]={1.0,1.0,1.0,1.0};//镜面反射GLfloatlmodel_ambient[]={0.1,0.1,0.1,1.0};//光照模式中用到的参数//用glLightfv设置光源属性(指定光

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功