[理学]计算机图形学 第八章 OpenGL程序设计基础.pptVIP

[理学]计算机图形学 第八章 OpenGL程序设计基础.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]计算机图形学 第八章 OpenGL程序设计基础.ppt

2、用到的函数(续) 纹理分量数目 或内部格式 纹理函数 GL_REPLACE GL_DECAL GL_MODULATE GL_BLEND 1或 GL_LUMINANCE Cv=Lt Av=Af undefined Cv=LtCf Av=Af Cv=(1-Lt)Cf+CcLt Av=Af 2或 GL_LUMINANCE_ALPHA Cv=Lt Av=At undefined Cv=LtCf Av=AtAf Cv=(1-Lt)Cf+CcLt Av=AfAt 3或 GL_RGB Cv=Ct Av=Af Cv=Ct Av=Af Cv=CtCf Av=Af Cv=(1-Ct)Cf+CcCt Av=Af 4或 GL_RGBA Cv=Ct Av=At Cv=(1-At)Cf+AtCt Av=Af Cv=CtCf Av=AtAf Cv=(1-Ct)Cf+CcCt Av=AfAt C和L表示彩色和亮度;A表示不透明度;下标f、t、c、v分别表示片段、纹理、纹理环境色和结果。 2、用到的函数(续) (7)启动纹理功能,绘制场景,给出顶点的纹理坐标和几何坐标其中纹理坐标可以直接指定,也可以启用自动计算坐标功能。 1)glEnable(GL_TEXTURE_2D); //同时只能启动一种纹理 2)glEnable(GL_TEXTURE_1D); 3)void gTexCoord{1234}{sifd}[v](TYPE coords); 4)void glTexGen{if}[v](GLenum coord, GLenum pname, TYPE param); coord:GL_S、GL_T、 GL_R、 GL_Q pname:参数名 param:参数值 GL_TEXTURE_GEN_MODE GL_OBJECT_LINEAR、GL_EYE_LINEAR、GL_SPHERE_MAP GL_OBJECT_PLANE 数组:对象坐标系的四个系数,对应GL_OBJECT_LINEAR GL_EYE_PLANE 数组:眼坐标系的四个系数数组, GL_EYE_LINEAR 注意: param是GL_SPHERE_MAP时,不需要设置系数,而是使用眼坐标系中的特定公式见MSDN。 5)glEnable(GL_TEXTURE_GEN_S)、glEnable(GL_TEXTURE_GEN_T)、… 3、图象读取的方便函数 (1)AUX_RGBImageRec* auxRGBImageLoad(LPCSTR); (2)AUX_RGBImageRec* auxDIBImageLoad(LPCSTR); typedef struct _AUX_RGBImageRec { GLint sizeX, sizeY; unsigned char *data; } AUX_RGBImageRec; OpenGL实用库(GLU)支持对NURBS曲线、曲面的绘制。 然而在底层(核心库GL)OpenGL只支持对Bezier曲线和曲面的绘制,这种实现方式基于以下结论: (1)Any polynomial form can be converted to Bezier form by proper generation of control points.(基函数) (2) NURBS曲线曲面是其控制点在齐次坐标空间中的B样条曲线曲面在原空间的投影。 OpenGL对Bezier曲线和曲面的支持是通过所谓的求值程序(evaluator)机制实现的。 查看工程:gl_6_1 六 OpenGL中的曲线和曲面 1、OpenGL中的求值程序(Evaluator) 求值程序生成基于Bernstein基的Bézier曲线和曲面 。实际上它是OpenGL中唯一的生成曲线和曲面的核心图形函数,且具有良好的硬件支持。如果要使用求值程序绘制基于其它基函数的曲线和曲面,必须知道如何将所使用的基转换为Bézier基。 要使用求值程序,首先需要定义曲线并使其生效,然后用glEvalCoord1()或glEvalCoord2()命令生成曲线、曲面上的点坐标。这两个函数代替glVertex*()命令,可以用来绘制表现曲线、曲面的点、线段、面片。 其它的几个函数可以用来进一步自动生成一系列的点,这些点的参数是等间距的,可以产生参数规则的网格。 (1)一维求值程序(一维Bézier) 1)定义一维求值程序: void glMap1{fd}( GLenum target, TYPE u1, TYPE u2, GLint stride, GLint order, const TYPE *points ); target:既是求值程序要产生的数据内容,也是points中存放的数据内容。其可能的

文档评论(0)

cai + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档