- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三维曲面的呈现研究――基于VC++ OpenGL
(华中师范大学 信息技术系,湖北 武汉 430079)
摘要:OpenGL是性能卓越的图形处理工具,能够灵活地生成各种曲线和曲面,并进行曲线和曲面的呈现。但在大量数据量存在的条件下,要实时显示三维曲面是较困难的。该文对OpenGL三维曲面的呈现原理进行分析,并提出采用双缓存机制和消隐技术等可以提高图形绘制速度和刷新速度,从而将图形实时显示。
关键词:曲面构造;坐标变换;双缓存;消隐;实时显示
中图分类号:TP311文献标识码:A文章编号:1009-3044(2009)28-8047-03
Study of Three-dimensional Surface Rendering Based on VC++ OpenGL
YANG Hui
(Department of Information Technology, Huazhong Normal University, Wuhan 430079, China)
Abstract: OpenGL is a high performance graphics processing tools which can flexibly generate a variety of curves and surfaces, and for rendering curves and surfaces. However, under the condition of large amounts of data’s existence, it’s difficult to display three-dimensional surface in real-time.This paper analyzed the principles of three-dimensional surface rendering,and applied the double-buffering mechanism and blanking technique to improve the graphics rendering speed and refresh rate, thus it will graph and display in real-time.
Key words: generation of surfaces; coordinate transformation; double-buffering; blanking technique; real-time display
OpenGL是性能卓越的图形处理工具,利用OpenGL可以灵活地生成各种曲线和曲面,并将三维曲面呈现到二维的屏幕上。
1 基于OpenGL三维图形显示原理
OpenGL将三维图形通过顶点序列或是像素点进行描述,并进行透视、光照等操作,最终转换成缓存区中的图像数据,利用该数据进行着色,然后输出。OpenGL将三维曲面显示到二维屏幕的主要步骤可归纳为:
1) 构造三维曲面绘制模型:选用插值方法,构造参数曲面函数,计算控制点,进行曲面的构造。
2) 选择视点和透视方式,初步确定要呈现到二维屏幕上的投影图。
3) 利用消隐技术,进一步确定投影图中哪些线或面是可见的,哪些是不可见的,使投影图具有立体感。
4) 绘制图形,并输出。
2 基于OpenGL三维曲面的构造
OpenGL通过一种求值器的机制来产生曲线和曲面[1],该机制可以灵活生成各种曲线和曲面,并且求值器能在任何度的曲线及曲面上计算指定数目的点。然后OpenGL利用曲线和曲面上的点生成标准OpenGL图元。
对于曲线,OpenGL中使用glMap1*()函数来创建一维求值器,该函数原型及各参数含义如下:
void glMap1(
GLenum target,// 指定的控制点;
TYPE u1,TYPE u2,// u1、u2定义参数u的范围,通常为0―1;
GLint stride, //跨度,即两个控制点间的偏移量;
GLint order, //阶数;
const TYPE *points// points指针可以指向控制点集
)
求值器定义后必须要启动求值器,启动函数是glEnable(GLenum targe),参数targe与glMap1*()的第一个参数一致。一旦启动求值器后,就可以构造近似曲线。通过调用计算坐标函数glEvalcoord1*( TYPE u)替换所有对函数glVertex*()的调用,与glVertex*()使用二维、三维和四维坐标不同,gl
文档评论(0)