



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简答题1、 OpenGL左右手坐标系、向量、三维几何变换左右手坐标系渲染出来的2D图像结果是不一样的,左右颠倒。从定义可知,左右手的区别就是z轴一正一负,当然z取反就转换了。要在透视前的最后一步上加上反转的语句也就是viewMatrix.appendScale(1,1,-1)这样所有的顶点就都会反转了。标准向量变换是从对象坐标系变换到视觉坐标系,它是用来计算光照的。标准向量的变换中,视觉矩阵(view matrix)是GL_MODELVIEW逆矩阵的转置矩阵和标准向量(Normal vector是)相乘所得。几何变换是将一个几何图形按照一定的规则或规律变换为另一个新的几何图形,包括二维几何变换和三维几何变换,最基本的三种变换是平移、旋转和缩放。2、 OpenGL5大变换1) 视点变换:相当于设置视点的位置和方向,OpenGL实用库提供了函数gluLookAt( )来指定视点变换。2) 模型变换:在世界坐标系中进行的,包括模型平移:glTranslatefd(TYPE x, TYPE y, TYPE z),模型旋转:glRotatefd( TYPE angle, TYPE x, TYPE y, TYPE z),模型缩放:glScalefd( TYPE x, TYPE y, TYPE z)3) 投影变换:目的是定义一个视景体,使视景体外多余的部分裁剪掉,最终进入图像的只是视景体内的有关部分,包括透视投影和正射投影。透视投影函数:void glFrustum( )和void gluPerspective( ),正射投影函数:void glOrtho()和void gluOrtho2D()。4) 视口变换:将视景体内投影的物体显示在二维的视口平面上。相关函数:glViewport()5) 裁剪变换:视景体定义了上下左右前后六个裁剪平面,用户还可以自己定义附加裁剪平面,以去掉场景中无关的目标。相关函数:void glClipPlane()3、 怎么绘制一个图形、一个三角面片、一个四面体,给坐标写代码三角形glBegin(GL_TRIANGLES);glVertex2f(0,0.7);glVertex2f(-0.7,-0.7);glVertex2f(0.7,-0.7);glEnd();四面体GLfloatpyramid3=0.0,1.0,0.0,0.5,0.0,0.5,-0.5,0.0,0.5,-0.5,0.0,-0.5,0.0,0.0,-0.5;/定义顶点坐标glBegin(GL_TRIANGLE_FAN);/使用扇形三角形模式glNormal3f(0.0,0.447214f,0.894427f);/前平面法向量glVertex3fv(pyramid0); /前平面glVertex3fv(pyramid1);glVertex3fv(pyramid2); glNormal3f(-0.894427f,0.447214f,0.0);/左平面法向量glVertex3fv(pyramid3);/左平面glNormal3f(0.0,0.447214f,-0.894427f);/后平面法向量glVertex3fv(pyramid4);/后平面glNormal3f(0.894427f,0.447214f,0.0);/右平面法向量glVertex3fv(pyramid1);/右平面glEnd();/结束绘制立方体/ 将立方体的八个顶点保存到一个数组里面 static const float vertex_list3 = -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, -0.5f, 0.5f, -0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, ; / 将要使用的顶点的序号保存到一个数组里面 static const GLint index_list2 = 0, 1,2, 3,4, 5,6, 7,0, 2,1, 3,4, 6,5, 7,0, 4,1, 5,7, 3,2, 6; / 绘制立方体void DrawCube(void)int i,j;glBegin(GL_LINES); for(i=0; i12; +i) / 12 条线段for(j=0; j0点在平面前方,ax+by+cz+d0点在平面后方。为了判断一个点是否包含在平截头体内部,需要将点的坐标代入6个平面的平面方程式中,如果所有平面方程式的结果值都是正数的话,就表示这个点在平截头体内部。要想检验几个点构成的网络是否位于平截头体内部的话,要采用边界球体提出技巧,首先定义能包含整个网格的边界球体,然后判断该球体是否包含在平截头体内部。四叉树与平截头体结合:如果四叉树的父节点不在平截头体内部的话,那么子节点也不在平截头体内部,这时,只要检索父节点在平截头体内部的节点就行了,反复进行这个过程就可以快速地实现平截头体的剔除。基于四叉树的LOD表示:LOD是分阶段调整网格建模数据的精密度技术,与摄像机的距离近,使用精密的网格,距离远,使用简单的网格。LOD分割形成的阶段与四叉树的子节点分割十分相似,当摄像机和各个节点的中点距离不同时,与摄像机距离远的节点不进行子节点的渲染,只在各自阶段进行渲染,相对而讲,与摄像机越近、越是对下层子节点进行渲染。这样通过渲染位于不同层的节点来实现对特定区域不同分辨率的表示。2、 OSG场景场景管理:osg采用包围体层次来实现场景图形的管理,用一个场景树管理整个场景的相关信息,通过场景树可以方便的管理场景物体,并且在向底层接口提交绘制操作前进行一些软裁剪和绘制顺序调整工作。分层的树状数据结构来组织空间数据集,提升了渲染的效率。场景组成模块:1、osg核心库:osg库:基本数据类,负责提供基本场景图类、节点类、状态类、绘制类、数据类;osgUtil库:工具类库,提供通用的公用类;osgDB库:数据的读写库,提供一个文件工具类;osgViewer库:视窗管理库2、OSG工具库:osgFX库;osgParticle库;osgSim库;osgTerrain库;osgText库;osgShadow库3、OSG插件库4、OSG内省库BVH树:包围体层次树,采用自顶向下的结构,顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息。根节点和各个组节点都可以有零个或多个子成员。在场景图形的最底部,各个叶节点包含了够长场景中物体的实际几何信息。节点:OSG的场景结构树是一棵有向无环图 (Directed Acyclic Graph),可以多个父节点共享一个子节点。节点主要分三类:根节点,枝节节点,叶子节点。l Node:Node 类是场景图形中所有节点的基类。它包含了用于场景图形遍历、拣选、程序回调,以及状态管理的方法。l Group:Group 类是所有可分支节点的基类。它是场景图形空间组织结构的关键类。主要用于将多个子节点成组管理,允许用户程序为其添加任意数量的子节点,子节点本身也可以继续分法子节点,osg编程的核心部分,它使得用户应用程序可以有效组织场景图形中的数据,它的强大之处在于管理子节点的接口,还从Node出继承了管理父节点的接口。l Geode:Geode 类(即Geometry Node)相当于OSG 中的叶节点。它没有子节点,但是包含了osg:Drawable 对象,而osg:Drawable 对象中存放了将要被渲染的几何体。l LOD:LOD 类根据观察点与图像子节点的距离选择显示子节点。通常使用它来创建场景中物体的多个显示层级。l MatrixTransform:MatrixTransform 类包含了用于实施子节点几何体空间转换的矩阵,以实现场景对象的旋转、平移、缩放、倾斜、映射等操作。l Switch:Switch 类用布尔掩板来允许或禁止子节点的运作。用智能指针管理节点间的父子关系:由于OSG中与场景图形有关的大多数类均派生自Referenced类,因此OSG大量使用了智能指针来实现场景图形节点的管理。智能指针的使用为用户提 供了一种自动内存释放的机制,即,场景图形中的每一个节点均关联一个内存计数器,当计数器的计数减到零时,该对象将被自动释放。而用户如果希望释放整个场 景图形的节点的话,则只需要删除根节点,根节点以下的所有分支节点均会因此被自动删除,不用担心内存泄露的问题。 OSG节点的访问:OSG中节点的访问使用的是一种访问器模式。一个典型的访问器涉及抽象访问者角色(Visitor), 具体访问者(Concrete Visitor), 节点角色(Node)。OSG中访问者角色为NodeVisitor类,NodeVisitor 只是访问器角色的抽象接口,要使用访问器访问节点并执行自定义操作时,需要继承并重写apply()函数实现自定义功能。osg:Node类中的访问接口为 void accept(No
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年岗巴县教育系统招聘教师考试笔试试题(含答案)
- 2025年非高危行业生产经营单位主要负责人及安全管理人员安全生产知识和管理能力考试试卷(含答案)
- 面试即兴演讲试题及范例
- 2024血透治疗中的监护及护理要点试题及答案
- 新进员工岗前安全教育培训试题及答案
- 2025年新《公司法》知识竞赛题库(含答案)
- 2024年大学礼仪知识竞赛题库与答案
- 2024年公职人员考试时事政治考试题库(附答案)
- 北京户外徒步知识培训课件
- 2025年安全生产培训考试题及答案
- 第三章:堤防工程加固施工
- 蒂森CTU2调试说明附件
- GB/T 21837-2023铁磁性钢丝绳电磁检测方法
- SX-22163-QR345工装维护保养记录
- JJF 2025-2023高动态精密离心机校准规范
- 2023年航空职业技能鉴定考试-候机楼服务技能考试题库(含答案)
- 医院腹腔镜手术知情同意书
- p型半导体和n型半导体课件
- GB/T 748-2005抗硫酸盐硅酸盐水泥
- 走好群众路线-做好群众工作(黄相怀)课件
- 民间文学(全套课件)
评论
0/150
提交评论