- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摇图形学编程-华信教育资源网
第2章摇 图形学编程
本书讲解计算机图形学的方法是面向编程的, 因此我们想让读者尽可能快地开始编写图形
程序。 为此,将介绍一个最小的应用程序编程接口(API)。 读者利用这个API足以编写出许多有
趣的二维和三维图形程序,还可以熟悉一些图形学中的基本概念。
我们把二维图形看成是三维图形的特殊情形。 有了这样的看法,就可以开始编写程序,尽
管这一章很少涉及三维概念。 本章编写的二维图形程序不需要修改就可以在三维图形系统里
执行。
我们把绘制Sierpinski镂垫作为在这一章学习图形学编程的例子,这是一个简单的问题,但
读者从中可以学到不少东西。 从这个例子可以看到,使用少数几个图形函数就能生成一幅有趣
的、复杂得出人意料的图像。 我们将使用的API是WebGL,但是所讨论的基础概念足够广泛,可
以包含绝大多数现代图形系统。 特别地,WebGL需要的JavaScript代码很容易转换为C或C++代
码以便用于桌面版OpenGL。 我们在这一章介绍的功能足以让读者编写出基本的二维和三维图形
程序,虽然这些程序还不能和用户交互。
2.1摇 Sierpinski镂垫
我们将绘制Sierpinski镂垫作为图形学编程的示例。 Sierpinski镂垫是一个有趣的图形,它有
很长的历史,在分形几何这样的领域中是重要的研究对象。 我们可以按递归和随机的方式来定
义Sierpinski镂垫,但当迭代的次数趋于无限时,它的性质是完全确定的,而并不随机。 我们从
Sierpinski镂垫的二维版本开始,不过在2.10节中会看到,Sierpinski镂垫的三维版本与二维版本
几乎相同。
假定从空间中的三个点开始。 只要这些点不是共线的,它们就定义了一个唯一的三角形,而
淤
且也定义了一个唯一的平面。 我们假定这个平面是z =0,并且这些点在某个方便的坐标系 下的
坐标是(x ,y ,0),(x ,y ,0)和(x ,y ,0)。 Sierpinski镂垫的构造过程如下:
1 1 2 2 3 3
1.在三角形内随机选择一个初始点p =(x,y,0)。
2.随机选择3个顶点之一。
3.找出p 和随机选择的这个顶点之间的中点q。
4.在显示器上把这个中点q所对应的位置用某种标记(比如小圆圈)显示出来。
5.用这个中点q替换p。
6.转步骤2。
这样,每当计算出一个新的点,就把它显示在输出设备上。 这个过程如图2.1所示,其中p0
是初始点,p 和p 是该算法首先生成的两个点。
1 2
在编写程序之前,读者可以尝试在纸上画画执行该算法会生成什么样的图形,可能读者会对
得到的结果感到惊奇。
淤 在第4章,将把坐标系的概念扩展到更一般的标架。
30 交互式计算机图形学———基于WebGL的自顶向下方法(第七版)
这个图形程序的算法具有如下的伪代码形式:
图2.1摇 Sierpinski镂垫的生成
摇 摇 可以非常容易地把这种伪代码形式转换成一个真正的程序。 然而,即便从这个抽象层面来
看图形程序,它还存在另外两种形式的算法。 首先考虑如下的伪代码形式:
在上面的算法中,首先把所有的点计算出来,然后再把它们存储在一个数组或其他数据结构中。
之后可以通过一个函数调用显示所有的点。 这种方法不需要将每次生成的点都发送到图形处理
单元中,从而减少了时间开销,但需要存储所有的数据,因此增加了空间开销。 第一个算法采用
的策略称为立即绘制模式(immediatemodegraphics),到目前为止,这种模式依然是图形绘制的标
准方法,尤其是对交互式性能要求很高的图形程序。 使用立即模式所带来的问题是我们并没有
使用额外的内存空间来存储需要绘制的几何数据。 对于第一个算法,如果需要再次显示这些点
的话,那么就必须重新计算这些点才能将它们显示出来。
对于第二个算法,因为数据存储在一个数据结构中,所以不用重新计算就可以再次显示这些
数据。 也许要显示的这些点发生了属性上的变化(比如点的颜色或大小),这时只需要把存储这
些数据的数组重新发送到图形处理单元而不需要重新生成这些点。 这种操作方法称为延迟绘制
模式(ret
您可能关注的文档
最近下载
- 医疗器械 质量手册 ISO 13485 QRS 820 (通过FDA、NMPA、CE的审批 版.pdf VIP
- 2023年高考政治试卷(海南)(解析卷).pdf VIP
- 2024年洗煤厂工人操作培训教材3篇.docx VIP
- 机械原理智慧树知到期末考试答案章节答案2024年兰州理工大学.docx VIP
- 咸祥朱氏家谱述略.PDF VIP
- 直播营销全套PPT课件.pptx
- IEC61215ed3-1翻译中英文对照.pdf VIP
- 2024年AI大模型+知识库市场全景报告.pdf VIP
- IEC61215-2016-2-CN地面光伏组件-测试内容.pptx VIP
- IEC 61215-2:2016地面用光伏组件—设计鉴定和定型—第2部分:试验程序(2)(2).pdf VIP
文档评论(0)