- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
;;(1)跨平台特性
OpenGL与硬件、窗口和操作系统是相互独立的。为了构成一个完整功能的图形处理系统,其设计实现共分 5 层:图形硬件、操作系统、窗口系统、 OpenGL和应用软件。
因而, OpenGL可以集成到各种标准窗口和操作系统中。例如,操作系统包括UNIX,Windows NT, Windows 95/98, DOS等;窗口系统包括X Windows, Microsoft Windows等。
OpenGL图形函数定义独立于任何程序设计语言,在各种编程语言中,如C,C++,FORTRAIN,Ada和Java等,都可以调用OpenGL的库函数。;(2)应用的广泛性
OpenGL是目前最主要的二、三维交互式图形应用程序开发环境,已成为业界最受推荐的图形应用编程接口。自从1992年发表以来,OpenGL已被广泛地应用于CAD/CAM、三维动画、数字图像处理以及虚拟现实等领域,Kinetix公司的3D Studio Max就是突出的代表。无论是在PC机上,还是在工作站甚至是大型机和超级计算机上,OpenGL都能表现出它的高性能和强大威力。
;(3)网络透明性
建立在客户/服务器模型上的网络透明性是OpenGL的固有特性,它允许一个运行在工作站上的进程在本机或通过网络在远程工作站上显示图形。利用这种性质能够均衡各工作站的工作负荷,共同承担图形应用任务。
(4)高质量和高性能
无论是在CAD/CAM、三维动画还是可视化仿真等领域,OpenGL高质量和高效率的图形生成能力都能得到充分的体现。在这些领域中,开发人员可以利用OpenGL制作出效果逼真的二、三维图像来。;(5)出色的编程特性
?? OpenGL在各种平台上已有多年的应用实践,加上严格的规范控制,因此OpenGL具有良好的稳定性。
OpenGL具有充分的独立性与易使用性等。
;;;;;;;;OpenGL初步编程;OpenGL初步编程;程序清单1.1:在窗口内绘制一个矩形
//GLRect.c
#include windows.h
#include gl/glut.h
#includegl/gl.h
#includegl/glu.h
// 函数RenderScene用于在窗口中绘制需要的图形
void RenderScene(void)
{
//用当前清除色清除颜色缓冲区,即设定窗口的背景色
glClear(GL_COLOR_BUFFER_BIT);
//设置当前绘图使用的RGB颜色
glColor3f(1.0f, 0.0f, 0.0f);
//使用当前颜色绘制一个填充的矩形
glRectf(100.0f, 150.0f, 150.0f, 100.0f);
//刷新OpenGL命令队列
glFlush();
};// 函数ChangeSize是窗口大小改变时调用的登记函数
void ChangeSize(GLsizei w, GLsizei h)
{
if(h == 0) h = 1;
//设置视区尺寸
glViewport(0, 0, w, h);
// 重置坐标系统,使投影变换复位
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 建立修剪空间的范围
if (w = h) glOrtho (0.0f, 250.0f, 0.0f, 250.0f*h/w, 1.0f, -1.0f);
else glOrtho (0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
//函数SetupRC用于初始化,常用来设置场景渲染状态
void SetupRC(void)
{
// 设置窗口的清除色为白色
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
};void main(void)
{
//初始化GLUT库OpenGL窗口的显示模式
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
// 创建一个名为GLRect的窗口
glutCreateWindow(GLRect);
// 设置当前窗口的显示回调函数和窗口再整形回调函数
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
SetupRC();
//启动主GLUT事件处理循环
glutMainLoop();
};GLRect
您可能关注的文档
- 如何更好的设计理财计划.pptx
- 货币资金及应收款.pptx
- 经济学原理——劳动者行为与人力资本理论.pptx
- 简单再生产学习.pptx
- 内科护理学慢性支气管炎.pptx
- 过程控制补偿控制.pptx
- 第二简单电路.pptx
- 二章节作用于传出神经系统药物.pptx
- 可爱卡通模板.pptx
- 级毕业班优生励志动员会.pptx
- 甘肃省白银市会宁县第一中学2025届高三3月份第一次模拟考试化学试卷含解析.doc
- 2025届吉林市第一中学高考考前模拟生物试题含解析.doc
- 四川省三台县芦溪中学2025届高三下第一次测试生物试题含解析.doc
- 2025届江苏省启东市吕四中学高三适应性调研考试历史试题含解析.doc
- 浙江省宁波市十校2025届高三二诊模拟考试历史试卷含解析.doc
- 甘肃省甘南2025届高考生物必刷试卷含解析.doc
- 河北省石家庄市一中、唐山一中等“五个一”名校2025届高考历史四模试卷含解析.doc
- 江西省南昌市进贤一中2025届高考生物考前最后一卷预测卷含解析.doc
- 甘肃省白银市会宁县第四中学2025届高三第二次模拟考试历史试卷含解析.doc
- 宁夏银川市宁夏大学附属中学2025届高考化学押题试卷含解析.doc
文档评论(0)