OpenGL的美名虽然诱惑着无数学习者的心,但若没人指点
就象你学C时第一次写"Hello,World!"程序,也会遇到很多困难。
1.现在对初学者的示例程序是基于GLUT的(OpenGL Utility Toolkit)
但VC6和VS2005的include目录下都没有gl/glut.h,只有gl/gl.h和gl/glu.h.
所以要从www.opengl.org去下载。不知道什么原因,我的电脑不能正常打开
这个网站,所以另外找了个地方下载:
http://www.openglsource.com/download/download.htm
2.下载回来的glut-3.7.6-bin.zip 解压后,将glut.h复制到VC6安装
目录的include/gl/目录下;glut32.lib复制到VC6安装目录的lib目录下;
glut32.dll复制到windows/system32目录下,然后就可以编译运行下
面的程序了:
*/
/*
* helloGL.c
* This is a simple, introductory OpenGL program.
*/
#include <GL/glut.h>
#include <stdlib.h>
void display(void)
{
/* clear all pixels */
glClear (GL_COLOR_BUFFER_BIT);
/* draw white polygon (rectangle) with corners at
* (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)
*/
glColor3f (1.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (0.25, 0.25, 0.0);
glVertex3f (0.75, 0.25, 0.0);
glVertex3f (0.75, 0.75, 0.0);
glVertex3f (0.25, 0.75, 0.0);
glEnd();
/* don't wait!
* start processing buffered OpenGL routines
*/
glFlush ();
}
void init (void)
{
/* select clearing color */
glClearColor (0.0, 0.0, 0.0, 0.0);
/* initialize viewing values */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
/*
* Declare initial window size, position, and display mode
* (single buffer and RGBA). Open window with "hello"
* in its title bar. Call initialization routines.
* Register callback function to display graphics.
* Enter main loop and process events.
*/
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250, 250);
glutInitWindowPosition (100, 100);
glutCreateWindow ("hello");
init ();
glutDisplayFunc(display);
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}