zoukankan      html  css  js  c++  java
  • OpenGL在Qt界面下的应用(helloworld)

    今天突然想做一个OpenGL的稍微大一点的应用了,比如地形模拟,粒子系统之类的,思来想去,决定用Qt做界面(方便)

    推荐一个:http://115.com/file/c26jpxv1#

    NeHe的教程在Qt里面的实现。

    如果Qt没有在你电脑上,建议看看这个http://www.cnblogs.com/leisure/archive/2012/02/13/2349797.html

    Qt界面相对于MFC、win32来说链接库方面设置简单多了。

    具体步骤:

    1.新建Qt项目.

    Qt在方方面面做了好多集成,但是是可选的,下一步选上OpenGL库,如果害怕不兼容,也可以选上 Qt3支持。NeHe里面是Qt3的。所以选上

    第二步,包含头文件:

    两个头文件比较重要:

    #include <qgl.h>//这个库用来设置基本的OpenGL设置 如版本检测 句柄的完成,像素格式设置等等(估计是)

    #include <QtGui/qevent.h>Qt定义的窗口事件

    第三步 重写虚函数

    void initializeGL();

    void paintGL();

    void resizeGL( int width, int height );

    初始化函数、绘画函数、以及窗口重置函数。

    第四步

     1 void NeHeWidget::initializeGL()
     2 {
     3     glShadeModel( GL_SMOOTH );
     4     glClearColor( 0.0, 0.0, 0.0, 0.0 );
     5     glClearDepth( 1.0 );
     6     glEnable( GL_DEPTH_TEST );
     7     glDepthFunc( GL_LEQUAL );
     8     glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
     9 }
    10 
    11 void NeHeWidget::paintGL()
    12 {
    13     glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    14     glTranslated(0,0,-13);
    15     glColor3f(1.0f,1.0f,0.0f);
    16      glutSolidTeapot(5.0);
    17     glLoadIdentity();
    18 }
    19 
    20 void NeHeWidget::resizeGL( int width, int height )
    21 {
    22     if ( height == 0 )
    23     {
    24         height = 1;
    25     }
    26     glViewport( 0, 0, (GLint)width, (GLint)height );
    27     glMatrixMode( GL_PROJECTION );
    28     glLoadIdentity();
    29     gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 );
    30     glMatrixMode( GL_MODELVIEW );
    31     glLoadIdentity();
    32 }

    第五步

    编译,运行。

    (待续......)


    作者:leisure
    原文出自:http://www.cnblogs.com/leisure/
    感谢园子,感谢各位支持。本文版权归伟征和博客园共有,欢迎转载@ 但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    只是想分享,欢迎拍砖!促进我成长

  • 相关阅读:
    数据结构 【实验 串的基本操作】
    Ioc容器依赖注入-Spring 源码系列(2)
    定时任务管理中心(dubbo+spring)-我们到底能走多远系列47
    jvm内存增长问题排查简例
    Ioc容器beanDefinition-Spring 源码系列(1)
    SPI机制
    java工厂-积木系列
    java单例-积木系列
    利用spring AOP 和注解实现方法中查cache-我们到底能走多远系列(46)
    java 静态代理-积木系列
  • 原文地址:https://www.cnblogs.com/leisure/p/2465535.html
Copyright © 2011-2022 走看看