使用辅助库建立openGL编程环境

来源:互联网 发布:易酷cms 编辑:程序博客网 时间:2024/04/30 05:05

     openGL和Direct3D是当前主要的个人计算机3DAPI,它的最大特点是跨平台和可扩展.我在这里不想回顾它的发展历史,让我们直接进入正题,看看如何开始建立openGL程序框架.

一.使用辅助库

  这是最简单快速的建立openGL程序的方式,程序通过字符命令模式,可以在linux和windows等下运行.网上有许多介绍文章,这里不做详细介绍,而且这一般都不会使用,除非你是初学者.

      以下以Windows 下的Visual C++为例:

  1.工程中包含进相关库                        #paragma comment(lib,"glaux.lib")

  2.源代码前包括相关的头文件             #include <GL/glaux.h>

        3.调用相关函数编写openGL程序

    #paragma comment(lib,"opengl32.lib")                                             //包含openGL基本库,openGL程序一定有

    #paragma comment(lib,"glaux.lib")             //包含openGL辅助库,要用辅助函数才有

     #include "windows.h"                   //windows 下需要有,不然出错

    #include <GL/gl.h>                     //基本函数头文件

    #include <GL/glaux.h>                   //辅助函数头文件

    void myinit(void);

   void CALLBACK myReshape(GLsizei w,GLsizei h);

   void CALLBACK display(void);

    void myinit(void)

   {

       glClearColor(0.0,0.0,0.0,0.0);

       glClear(GL_COLOR_BUFFER_BIT);

   }

    void CALLBACK myReshape(GLsizei w,GLsizei h)

   {

      glViewport(0,0,w,h);

      glMatrixMode(GL_PROJECTION);

      glLoadIdentity();

      if(w<=h)

           glOrtho(-1.5,1.5,-1.5*(GLfloat)h/(GLfloat)w,

                      1.5*(GLfloat)h/(GLfloat)w,-10.0,10.0);

      else

           glOrtho(-1.5*(GLfloat)h/(GLfloat)w,

                      1.5*(GLfloat)h/(GLfloat)w,-1.5,1.5,-10.0,10.0);

      glMatrixMode(GL_MODELVIEW);

      glLoadIdentity();

     }

     void CALLBACK display(void)

   {

    glColor3f(1.0,1.0,0.0);

    auxWireSphere(1.0);

    glFlush();

    }

    void main(void)

    {

       auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);

       auxInitPosition(0,0,500,500);

       auxInitWindow("AUX_SAMPLE");

       myinit();

       auxReshapeFunc(myReshape);

       auxMainLoop(display);

 } 

原创粉丝点击