第五章 3真实感图形技术.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7 图形技术基础-真实感图形技术 7.4 隐藏线和隐藏面的消除 7.4.1 隐藏线和隐藏面问题 7.4.2 消隐算法中的基本测试方法 投影变换 最小最大测试 包含性测试 深度测试 可见性测试 最小最大测试 这种测试也叫重叠测试或边界盒测试。用来检查两个多边形是否重叠。 包含性测试 包含性测试是检查一个给定的点是否位于给定的多边形或多面体内。 夹角求和算法,计算从测试点方向看的每条有向边所对的角度,如果角度和等于0,则点在多边形外;如果角度和为 ,则该点在多边形内。 深度测试 Z缓冲器算法是所有图像空间算法中最简单的一种隐藏面消除算法。在象素级上以近物取代远物. 优点:1)简单稳定,利于硬件实现 2)不需要整个场景的几何数据 缺点: 1)需要一个额外的Z缓冲器 2)在每个多边形占据的每个像素处都要计算深度值,计算量大 7.5 图形标准 为了能够让交互式图形系统在不同的计算机和图形设备之间进行移植,制定图形软件的标准是非常必要的。 可移植性包括: 应用程序在不同系统之间的可移植性 应用程序与图形设备的无关性 图形数据的可移植性 程序员的可移植性 图形标准是一组由基本图元(点、线、面)和属性(线型、颜色等)构成的标准通用图形系统。它们以子程序的形式支持应用图形系统。应用程序通过调用这些图形标准子程序,即可生成图形和图像,并通过交互显示设备实现图形的输入输出。 标准图形系统有: 二维图形核心系统GKS(graphics kernel system) 三维图形核心系统GKS-3D(graphics kernel system-3D) 程序员级层次交互式图形系统PHIGS(programmer hiberarchy interface graphics system) 3.5 图形标准 图形程序库OpenGL 作为标准图形软件接口,是由几百个指令或函数组成。 OpenGL功能有: 绘制三维物体 观察物体 指定颜色模式 光照 增强图像效果 管理位图和图像 纹理映射 制作动画 交互技术 OpenGL编程 三维变换 真实感显示 图形显示 正平行投影 实例 编写程序 // //////////////////////////////////////////////////////// // 编写OpenGL程序 // //////////////////////////////////////////////////////// 新建工程文件 在VC界面上, 从菜单File?New: 建立MFC应用程序 选择工程文件类型,并填写工程文件名称 配置工程文件 添加OpenGL库 增加成员变量COpenGLPlatView?m_hRC 增加成员变量COpenGLPlatView?m_hRC 增加变量: 记录OpenGL渲染句柄 a handle to an OpenGL rendering context 增加成员函数COpenGLPlatView::OnCreate 修改COpenGLPlatView::OnCreate代码 int COpenGLPlatView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here // //////////////////////////////////////////////////////////////// // New codes begin: 修改COpenGLPlatView::OnCreate代码 // The PIXELFORMATDESCRIPTOR structure describes // the pixel format of a drawing surface. PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd 1, // version number PFD_DRAW_TO_WINDOW | // support window PFD_SUPPORT_OPENGL | // support OpenGL PFD_DOUBLEBUFFER,

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档