计算机图形学方面有关论文范文资料,与计算机图形学基础相关论文答辩
本论文是一篇计算机图形学方面有关论文答辩,关于计算机图形学基础相关开题报告范文。免费优秀的关于计算机图形学及计算机及数据结构方面论文范文资料,适合计算机图形学论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。
5110;者更高版本的OpenGL库,那么只能使用OpenGL扩展.很多参考书上都会提到OpenGL2.0,OpenGL2.1,但是微软对OpenGL的支持只到1.1,1.1以后微软就不再支持了,为什么,因为微软更想发展自家的DirectX.所以如果想使用OpenGL1.1以上的功能或者函数,只能使用OpenGL扩展,这些扩展是一些OpenGL团体或个人开发出来的能Windows上使用的OpenGL1.1以后的一些功能及函数.所以,在Windows上根本就没有什么OpenGL2.0的头文件或库文件了,OpenGL1.1以后的东西都已经以扩展的形式存在了,而且,并没有一个统一的标准,你可以使用glex,glew,glee等等.是否能用扩展和显卡的功能有关,constGLubyte*glGetString(GLenumname)我们以GL_EXTENSIONS为参数调用该函数,就能获得当前显卡所支持的所有扩展,像下面这样:constGLubyte*str等于glGetString(GL_EXTENSIONS),cout<,<,str<,<,endl,输出的各个扩展之间以空格分隔,如果这些扩展中包含GL_ARB_imaging,那么你就可以使用glBlendEquation这个函数了.当然,这样查询的只是gl扩展,还可以用gluGetString获得glu扩展.在判断了显卡所支持的扩展以后,就可以使用该扩展中所包含的函数了.
4.1使用glext
这里下载:(graphics.ethz.ch/pointsho...lext_8h-source.)
a)头文件的包含这个文件并不是Windows系统中原有的,需要到网上下载.使用的时候有一点要注意,如果程序中还用到了glut.h文件,那么一定要把glext.h放在glut.h的后面,因为glext.h要用到gl.h,而glut.h中包含了gl.h,如果顺序搞错了,编译的时候会有一大堆错误,正确的顺序如下:
#include<,iostream>,
#include<,windows.h>,
#include<,GL/glut.h>,
#include<,GL/glext.h>,
b)获取函数指针
先定义函数指针,PFNGLBLENDEQUATIONPROCglBlendEquation等于NULL,
再获取函数地址,使用wglGetProcAddress函数,注意这一句要加在使用glBlendEquation函数的语句之前才有效,最后后面紧跟着使用glBlendEquation的函数语句,切记不要加在所有子程序的外面,否则获取的指针是无效的
glBlendEquation等于(PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation"),
例如可以这样加:
PFNGLBLENDEQUATIONPROCglBlendEquation等于(PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation"),
switch(key)
{case'a':
case'A'://Note:glBlendEquationisasubsetofGL_ARB_imaging,pleasecallglGetString
//firsttoconfirmwhetheryourvideocardsupportthisextension.牋牋牋牋牋glBlendEquation(GL_FUNC_ADD),外面,否则获取
break,
牋牋焘ase's':firm
牋牋焘ase'S':firm
牋牋牋牋牋glBlendEquation(GL_FUNC_SUBTRACT),ortthi
牋牋牋牋牋break,Equatio
4.2使用glew
glew也是一个扩展库,包含了OpenGL中许多核心及扩展函数,现在的版本是1.3.5,支持OpenGL2.1,可以到这里下载:glew.sourcefe./上面的方法可能有些麻烦,如果已经下载了glew库的话,那么可以直接使用该扩展,但是使用之前首先要确定你的显卡是否支持该扩展.方法如下:首先还是要判断显卡是否支持该扩展,我们这里假定已经支持,1).包含头文件glew.h,注意这里和上面不同,这回glut.h要放在glew.h的后面了像下面这样#include<,GL/glew.h>,
#include<,GL/glut.h>,然后就可以在程序中直接使用glBlendEquation了,其他扩展的判断和使用方法与此类似.最后还有一点切记!那就是还要调用glewInit(),来初始化一下方可使用扩展,如下:GLenumerr等于glewInit(),
if(GLEW_OK!等于err){MessageBoxA(NULL,"error","MyWindow",1),}你现在可以使用扩展了!
(整理文章)
Linux下OpenGL开发
环境是Fedora7首先需要安装OpenGL的开发环境.现在Linux下有很多OpenGL的实现,Fedora7中已经附带了Mesa,这是OpenGL一个开源的实现.安装Fedora时如果选中了开发环境,那么Mesa可能就已经安装好了.如果你和我一样安装的时候没有选择开发,那么,可以通过yum来在线安装Mesa:首先查找Mesa相关的包:yumlistmesa*返回结果应该是和Mesa相关的Lib以及开发包.
引用:
InstalledPackagesmesa-libGL.i3866.5.2-13.fc7installedmesa-libGL-devel.i3866.5.2-13.fc7installedmesa-libGLU.i3866.5.2-13.fc7installedmesa-libGLU-devel.i3866.5.2-13.fc7installedmesa-libGLw.i3866.5.1-2.fc7installedmesa-libGLw-devel.i3866.5.1-2.fc7installedmesa-libOSMesa.i3866.5.2-13.fc7installedmesa-libOSMesa-devel.i3866.5.2-13.fc7installedmesa-source.i3866.5.2-13.fc7installed
然后安装这些包:yuminstallmesa*安装完成后,我们就拥有了一个基础的OpenGL开发环境了.但是仅仅是基础的开发环境是不够的,一般来讲,我们还要安装一个叫做Glut的库,这是一个OpenGL的辅助库,可以让我们创建与平台无关的OpenGL窗口.因此,安装Glut也是必要的.Glut有很多种实现,在这里我用的是freeglut,是我在Fedore7的源中找到的.当然还有其他的实现.查找Glut库的命令如下:yumlist*glut*返回结果是
引用:
Loading"installonlyn"pluginInstalledPackagesfreeglut.i3862.4.0-11.fc7installedfreeglut-devel.i3862.4.0-11.fc7installedAvailablePackageshugs98-glut.i3862006.09-3.fc7fedora
然后可以从结果中选择自己偏爱的库进行安装,我选的是freeglut,安装命令是yuminstallfreeglut*安装成后,我们就可以开始写我们第一个Linux下的OpenGL程序了.
引用:
1/*light.c2此程序利用GLUT绘制一个OpenGL窗口,并显示一个加以光照的球.3*/4/*由于头文件glut.h中已经包含了头文件gl.h和glu.h,所以只需要include此文件*/5#include<,GL/glut.h>,6#include<,stdlib.h>,78/*初始化材料属性,光源属性,光照模型,打开深度缓冲区*/9voidinit(void)10{11GLfloatmat_specular[]等于{1.0,1.0,1.0,1.0},12GLfloatmat_shininess[]等于{50.0},13GLfloatlight_position[]等于{1.0,1.0,1.0,0.0},1415glClearColor(0.0,0.0,0.0,0.0),16glShadeM
上一页 3 4 5 6 7 8 9 10 11 12 下一页
计算机图形学方面有关论文范文资料,与计算机图形学基础相关论文答辩参考文献资料: