首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> 關於C

OpenGL 開發教程:第一個 GLUT 程序範例

     編輯:關於C

簡介

本文提供一個最基礎的 OpenGL 程序範例,使用 GLUT (OpenGL Utility Toolkit) 庫來建立視窗並繪製一個簡單的綠色矩形。這是學習 OpenGL 圖形程式設計的典型入門起點。

完整程式碼

#include "stdafx.h"
#include <GL/glut.h>

void myDisplay(void)
{
    glClear(GL_COLOR_BUFFER_BIT); // 清除顏色緩衝區
    glColor3f(0.0f, 1.0f, 0.0f);  // 設定當前繪圖顏色為綠色 (R=0, G=1, B=0)
    glRectf(-0.5f, -0.5f, 0.5f, 0.5f); // 繪製一個矩形,座標範圍為 (-0.5, -0.5) 到 (0.5, 0.5)
    glFlush(); // 強制執行所有未完成的 OpenGL 命令
}

void test(int argc, char** argv)
{
    glutInit(&argc, argv);                          // 初始化 GLUT
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);    // 設定顯示模式:RGB 色彩模式 + 單緩衝
    glutInitWindowPosition(100, 100);               // 設定視窗初始位置
    glutInitWindowSize(600, 400);                   // 設定視窗大小
    glutCreateWindow("第一個 OpenGL 程序");          // 建立視窗並設定標題
    glutDisplayFunc(&myDisplay);                     // 註冊顯示回調函數
    glutMainLoop();                                 // 進入 GLUT 事件處理主循環
}

void main(int argc, char* argv[])
{
    test(argc, argv);
}

關鍵函數解析

  • glutInit:初始化 GLUT 庫,必須在其他 GLUT 函數之前呼叫。
  • glutInitDisplayMode:指定視窗的顯示屬性。GLUT_RGB 表示使用 RGB 色彩模式,GLUT_SINGLE 表示使用單緩衝區(雙緩衡通常用於動畫,此處靜態圖形單緩衝即可)。
  • glutCreateWindow:建立實際的視窗,返回視窗識別碼。
  • glutDisplayFunc:註冊「顯示回調函數」。每當視窗需要重繪時(如視窗剛建立、被遮擋後重新顯示),GLUT 就會自動呼叫這個函數(此處為 myDisplay)。
  • glutMainLoop:進入無限循環,等待並處理視窗事件(滑鼠、鍵盤、重繪等),程序將停留在此直到視窗關閉。
  • glClear:清除指定的緩衝區。GL_COLOR_BUFFER_BIT 表示清除顏色緩衝區,預設清為黑色。
  • glColor3f:設定當前繪圖顏色,三個參數分別為紅、綠、藍分量,範圍 0.0 到 1.0。
  • glRectf:以浮點數座標快速繪製一個矩形,參數依序為左下角 (x, y) 與右上角 (x, y)。
  • glFlush:確保所有之前的 OpenGL 指令立即執行(在單緩衝模式下必要)。

編譯與執行提示

請確保開發環境已正確配置 OpenGL 與 GLUT (或 FreeGLUT) 的頭文件與庫文件路徑。在 Visual Studio 中,通常需在專案屬性中加入 opengl32.lib, glu32.lib, glut32.lib 等附加相依性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved