1.一個簡單的OpenGL程序


一、OpenGL介紹

  1.與C語言緊密結合。

    OpenGL命令最初就是用C語言函數來進行描述的,對於學習過C語言的人來講,OpenGL是容易理解和學習的。

    如果你曾經接觸過TC的graphics.h,你會發現,使用OpenGL作圖甚至比TC更加簡單。

  2.強大的可移植性。

    微軟的Direct3D雖然也是十分優秀的圖形API,但它只用於Windows系統(現在還要加上一個XBOX游戲機)。

    而OpenGL不僅用於 Windows,還可以用於Unix/Linux等其它系統,它甚至在大型計算機、各種專業計算機(如:醫療用顯示設備)上都有應用。

    並且,OpenGL 的基本命令都做到了硬件無關,甚至是平台無關。

  3.高性能的圖形渲染。

    OpenGL是一個工業標准,它的技術緊跟時代,現今各個顯卡廠家無一不對OpenGL提供強力支持,激烈的競爭中使得OpenGL性能一直領先。

二、簡單程序

  1.一個簡單的OpenGL程序,代碼如下:

//OpenGL要包含gl.h和glut.h,但glut文件中已經包含這兩個文件了
#include <GL/glut.h>

void myDisplay()
{
    //清除,GL_COLOR_BUFFER_BIT表示清除顏色,glClear函數還可以清除其它的東西。
    glClear(GL_COLOR_BUFFER_BIT);

    //畫一個矩形,四個參數分別表示了位於對角線上的兩個點的橫、縱坐標。
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f);

    //保證前面的OpenGL命令立即執行(而不是讓它們在緩沖區中等待),其作用跟fflush(stdout)類似。
    glFlush();
}

int main(int argc, char *argv[])
{
    //對glut初始化,這個函數必須在其它glut使用之前調用一次。
    //其格式比較死板,一般用glutInit(&argc, argv)就可以了。
    glutInit(&argc, argv);

    //設置顯示方式,其中GLUT_RGB表示使用RGB顏色,與之對應的還有GLUT_INDEX(表示使用索引顏色)。
    //GLUT_SINGLE表示使用單緩沖,與之對應的還有GLUT_DOUBLE(使用雙緩沖)。
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

    glutInitWindowPosition(100, 100);//設置窗口在屏幕中的位置
    glutInitWindowSize(400, 400);//設置窗口的大小

    //根據前面設置的信息創建窗口,參數將被作為窗口的標題。
    //注意:窗口被創建后,並不立即顯示到屏幕上。需要調用glutMainLoop才能看到窗口。
    glutCreateWindow("第一個OpenGL程序");

    //設置一個函數,當需要進行畫圖時,這個函數就會被調用。
    //這個說法不夠准確,暫時這樣說吧。
    glutDisplayFunc(myDisplay);

    //進行一個消息循環。
    //只需要知道這個函數可以顯示窗口,並且等待窗口關閉后才會返回,這就足夠了。
    glutMainLoop();

    return 0;
}

  2.運行結果:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM