OpenGL常见问题
OpenGL基本观念(一) OpenGL是个定义了一个跨编程语言、跨平台的编程接口的规格,它广泛应用于二、三维图象的生成。 OpenGL仍然是唯一能够取代微软对3D图形技术的完全控制的api。
OpenGL基本观念(二) OpenGL被设计为只有输出功能的,所以它只提供渲染功能。 核心api没有窗口系统、音频、打印、键盘/鼠标或其它输入设备的概念。 但是它允许进行渲染的代码完全独立于它运行的操作系统,允许跨平台开发。 GLUT库能够以可移植的方式提供基本的窗口功能。
问题 1 用VC6.0写一个OpenGL的控制台程序,最少的配置是哪些步骤? 解答: 在window XP下使用VC6安装GLUT 问题 1 用VC6.0写一个OpenGL的控制台程序,最少的配置是哪些步骤? 解答: 在window XP下使用VC6安装GLUT 下载glutdlls37beta并解压 复制glut32.dll和glut.dll到…\windows\system32 复制glut.h到...\Microsoft Visual Studio\VC98\Include\GL 复制glut32.lib和glut.lib到…\Microsoft Visual Studio\VC98\Lib
#include <GL/glut.h> void renderScene(void) { //绘制一个简单的二维的三角形 glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,0.0,0.0); glBegin(GL_TRIANGLES); //GL_LINE_STRIP glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0); glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); //初始化glut glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); //设置窗口的模式-深度缓存,单缓存,颜色模型 glutInitWindowPosition(100,100); //设置窗口的位置 glutInitWindowSize(320,320); //设置窗口的大小 glutCreateWindow("3D Tech- GLUT Tutorial"); //创建窗口并赋予title glutDisplayFunc(renderScene);//调用renderScene把绘制传送到窗口 glutMainLoop(); //进入循环等待
问题 2 在没使用GLUT的情况下, 在VC6.0下如何配置OpenGL? 解答: 在你文件头加上 问题 2 在没使用GLUT的情况下, 在VC6.0下如何配置OpenGL? 解答: 在你文件头加上 #include <gl\gl.h> #include <gl\glu.h> #include <gl\glaux.h> 进入Project菜单,选Settings项,弹出 Settings 对话框,选Link项,在 Libraries 栏目中加入OpenGL库:opengl32.lib glu32.lib glaux.lib
问题 3 一般来说,VC6和VS.NET里面就带有GL的基本库 所以开发者在VC下可以使用 GL的平台简介: 问题 3 GL的平台简介: 基于OpenGL标准开发的应用程序必须运行于32位Windows 平台下,如WindowsNT或Windows95环境;而且运行时还需有动态 链接库OpenGL32.DLL、Glu32.DLL,一般在…\WINDOWS\system32里面(注:window2000以上系统均带有OPENGL32.DLL和glu32.dll) 一般来说,VC6和VS.NET里面就带有GL的基本库 VC6:…\Microsoft Visual Studio\VC98\Include\GL VS.NET.2005:…\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl 一般是Gl.h,Glaux.h,Glu.h Lib里也有:OpenGL32.lib,GLu32.lib,GLaux.lib 所以开发者在VC下可以使用 #include <gl\gl.h> // Header File For The OpenGL32 Library #include <gl\glu.h> // Header File For The GLu32 Library #include <gl\glaux.h>// Header File For The Glaux Library
同时OpenGL也适应别的OS和语言 在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应用。可跟据需要下载相关的开发包。
问题 4 OpenGL的几个常用库简介: 1、基本库(又称为核心库,对应的头文件gl.h),用来描述图元、属性、几何变换等。 问题 4 OpenGL的几个常用库简介: 1、基本库(又称为核心库,对应的头文件gl.h),用来描述图元、属性、几何变换等。 2、 实用函数库( OpenGL Utility,对应的头文件glu.h),用来设置观察和投影矩阵等,可以描述复杂对象,以及完成复杂任务。 3、实用函数工具包( OpenGL Utility Toolkit,对应的头文件glut.h),提供了与任意屏幕窗口系统进行交互的函数库。
问题 5 OpenGL的几个常用库的编程风格? 1、基本库( gl.h ): 问题 5 OpenGL的几个常用库的编程风格? 1、基本库( gl.h ): glBegin, glClear, glCopyPixels, GLint 2、 实用函数库( glu.h ) : gluOrtho2D 3、实用函数工具包(glut.h) : glutInit, glutInitWindowsPosition
问题 6 如何使用MFC+OpenGL编程? 解答: 1、演示程序。 2、 MFC下OpenGL编程与控制台程序没有本质上的差别。 问题 6 如何使用MFC+OpenGL编程? 解答: 1、演示程序。 2、 MFC下OpenGL编程与控制台程序没有本质上的差别。 3、详细参考:http://www.cnblogs.com/phinecos/articles/834916.html
问题 7 如何循序渐进学习OpenGL? 建议: 1、读已有的程序,在其基础上修改运行,推荐redbook.zip。 问题 7 如何循序渐进学习OpenGL? 建议: 1、读已有的程序,在其基础上修改运行,推荐redbook.zip。 2、读经典的OpenGL教程,推荐Openglredbook。 3、针对性的研究问题,查阅资料,深入学习。
问题 8 进一步的学习资料? web: specification : book: 问题 8 进一步的学习资料? web: OpenGL 官方主页:http://www.opengl.org OpenGL 2.1 Reference:http://www.opengl.org/sdk/docs/man GLUT:http://www.opengl.org/resources/libraries/glut/ NEHE的在线GL教程:http://nehe.gamedev.net MFC+OpenGL使用指南: http://www.cnblogs.com/phinecos/articles/834916.html specification : The OpenGL Utility Toolkit (GLUT) Programming Interface (PDF) OpenGL 2.1 specification (PDF) book: OpenGL Shading Language Openglredbook
参考资料 http://www.8ttt8.com/jishu/w8207.htm http://www.cnblogs.com/phinecos/articles/834916.html http://baike.baidu.com/view/9222.htm