OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
2016-12-02 22:45
861 查看
博客园
首页
新随笔
联系
管理
订阅
![](http://www.cnblogs.com/images/xml.gif)
随笔- 84 文章- 0 评论- 0
OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。
glut的搭建:
1.glut的下载:
(1).到 http://www.ibiblio.org/pub/packages/development/graphics/glut/ 下载 glut3.7
(2).到 http://www.opengl.org/resources/libraries/glut/glut_downloads.php 下载glut35.zip进行编译(注意编译前执行glutmake.bat),或直接下载glutdlls.zip
2.glut的配置
(1).将glut.h 放到Microsoft Visual Studio\VC\include\gl 目录下。(具体位置视自己编译器和安装位置而定, 可能的位置有Microsoft SDKs\Windows\v7.1A\Include\gl 或 Windows Kits\8.1\Include\um\gl ,路径中可能会有数字的改变,如果一直示例编译不过可以在这三个位置都放上)
(2).将glut.lib 和 glut32.lib 放到VC\bin 目录下(具体位置视自己编译器和安装位置而定)
(3). 32位系统: 将glut.dll 和 glut32.dll 放到c:\Windows\System32\
64位系统: 将glut.dll 和 glut32.dll 放到c:\Windows\SysWOW64\
3.编译器设置
在项目属性的连接项中添加 glut32.lib 和 glut.lib
4.第一个程序实例
工程选项中应确保是windows 而不是console
[cpp]
view plaincopyprint?
#include <GL/glut.h>
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//去掉控制台
void renderScene(void) //渲染函数
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.5, 0.0, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glEnd();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(300, 300);
glutCreateWindow("GLUT");
glutDisplayFunc(renderScene); //设置渲染函数
glutMainLoop();
}
如果仍旧无法解决问题,可以试试以下代码
[cpp]
view plaincopyprint?
#include <gl/glut.h>
#include <gl/GLU.h>
#include <gl/GL.h>
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib") //如果未找到这几个文件可以使用绝对路径,注意路径中'\'要改成 '\\'
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut.lib")
void renderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glVertex3f(6.0f, 2.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, 0.0f);
glEnd();
glTranslatef(3.0f, 0.0f, -1.0f);
glutSwapBuffers();
}
int main(int argc, char * argv[])
{
glutInit(&argc, (char**)argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(320, 320);
glutCreateWindow("Hello OpenGL");
glutDisplayFunc(renderScene);
glutIdleFunc(renderScene);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
return 0;
}
首页
新随笔
联系
管理
订阅
![](http://www.cnblogs.com/images/xml.gif)
随笔- 84 文章- 0 评论- 0
OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut是基本的窗口界面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,这就保证了我们编出的程序是跨平台的,如果用MFC或者Win32只能在windows操作系统上使用。选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量的使用glut库。glut的搭建:
1.glut的下载:
(1).到 http://www.ibiblio.org/pub/packages/development/graphics/glut/ 下载 glut3.7
(2).到 http://www.opengl.org/resources/libraries/glut/glut_downloads.php 下载glut35.zip进行编译(注意编译前执行glutmake.bat),或直接下载glutdlls.zip
2.glut的配置
(1).将glut.h 放到Microsoft Visual Studio\VC\include\gl 目录下。(具体位置视自己编译器和安装位置而定, 可能的位置有Microsoft SDKs\Windows\v7.1A\Include\gl 或 Windows Kits\8.1\Include\um\gl ,路径中可能会有数字的改变,如果一直示例编译不过可以在这三个位置都放上)
(2).将glut.lib 和 glut32.lib 放到VC\bin 目录下(具体位置视自己编译器和安装位置而定)
(3). 32位系统: 将glut.dll 和 glut32.dll 放到c:\Windows\System32\
64位系统: 将glut.dll 和 glut32.dll 放到c:\Windows\SysWOW64\
3.编译器设置
在项目属性的连接项中添加 glut32.lib 和 glut.lib
4.第一个程序实例
工程选项中应确保是windows 而不是console
[cpp]
view plaincopyprint?
#include <GL/glut.h>
#pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//去掉控制台
void renderScene(void) //渲染函数
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(0.5, 0.0, 0.0);
glVertex3f(0.0, 0.5, 0.0);
glEnd();
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(300, 300);
glutCreateWindow("GLUT");
glutDisplayFunc(renderScene); //设置渲染函数
glutMainLoop();
}
#include <GL/glut.h> #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//去掉控制台 void renderScene(void) //渲染函数 { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(0.0, 0.0, 0.0); glVertex3f(0.5, 0.0, 0.0); glVertex3f(0.0, 0.5, 0.0); glEnd(); glFlush(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 100); glutInitWindowSize(300, 300); glutCreateWindow("GLUT"); glutDisplayFunc(renderScene); //设置渲染函数 glutMainLoop(); }
如果仍旧无法解决问题,可以试试以下代码
[cpp]
view plaincopyprint?
#include <gl/glut.h>
#include <gl/GLU.h>
#include <gl/GL.h>
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glut32.lib") //如果未找到这几个文件可以使用绝对路径,注意路径中'\'要改成 '\\'
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut.lib")
void renderScene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glBegin(GL_TRIANGLES);
glVertex3f(6.0f, 2.0f, 0.0f);
glVertex3f(-1.0f, -1.0f, 0.0f);
glVertex3f(1.0f, -1.0f, 0.0f);
glEnd();
glTranslatef(3.0f, 0.0f, -1.0f);
glutSwapBuffers();
}
int main(int argc, char * argv[])
{
glutInit(&argc, (char**)argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100, 100);
glutInitWindowSize(320, 320);
glutCreateWindow("Hello OpenGL");
glutDisplayFunc(renderScene);
glutIdleFunc(renderScene);
glEnable(GL_DEPTH_TEST);
glutMainLoop();
return 0;
}
相关文章推荐
- OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
- OpenGL之路(一)OpenGL、gl、glu、glut的区别 + glut环境的搭建
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- jogl(三)OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- opengl中gl、glu、glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中的gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- OpenGL中gl,glu,glut的区别
- glew, glee与 gl, glu, glut, glx, glext的区别和关系【转】
- opengl环境搭建 (win7-32bit + vs2012 + freeglut + glew)