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

     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);

 } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值