1. 程式人生 > >【OpenGL】OpenGL基本庫,OpenGL實用庫及OpenGL實用函式工具包之間的差別

【OpenGL】OpenGL基本庫,OpenGL實用庫及OpenGL實用函式工具包之間的差別

OpenGL中的gl庫是核心庫,glu是實用庫,glut是實用工具庫。

gl是核心,glu是對gl的部分封裝,glut是OpenGL的跨平臺工具庫。

gl中包含了最基本的3D函式,而glu似乎對gl的輔助,如果算數好,不用glu的情況下,也是可以做出同樣的效果。

glut是基本的視窗介面,如果不喜歡用glut可以用MFC和Win32視窗等代替,但是glut是跨平臺的,這就保證了我們編出的程式是跨平臺的,如果用MFC或者Win32只能在windows作業系統上使用。選擇OpenGL的一個很大原因就是因為它的跨平臺性,所以我們可以儘量的使用glut庫。

GLUT 不是 OpenGL 所必須的,但它會給我們的學習帶來一定的方便。

首先,需要包含標頭檔案#include <GL/glut.h>,這是 GLUT 的標頭檔案。本來 OpenGL 程式一般還要包含<GL/gl.h>和<GL/glu.h>,但 GLUT 的標頭檔案中已經自動將這兩個檔案包含了,不必再次包含。

各種庫

opengl 實用庫 : 43個函式,以glu開頭,包括紋理對映、座標變換、多邊形分化、繪製一些如橢球、圓柱、茶壺等簡單多邊形實體部分函式象核心函式一樣在任何OpenGL平臺都可以應用。

opengl輔助庫: 31個函式,以aux 開頭。

OpenGL函式庫相關的API有核心庫(gl)、實用庫(glu)、輔助庫(aux)、實用工具庫(glut)、視窗庫(glx、agl、 wgl)和擴充套件函式庫等。

gl是核心,glu是對gl的部分封裝。

glx、agl、wgl 是針對不同視窗系統的函式。

glut是為跨平臺的OpenGL程式的工具包,比aux功能強大。

幾種常見的“奇異”標頭檔案:

<GL/glaux.h>:GLAUX(OpenGL輔助庫)所使用的函式和常量宣告。目前這個庫已經過時,只有比較少的編譯環境中有提供,例如VC系列。在VC系列編譯器中,使用這個標頭檔案之前必須使用#include <windows.h>或者具有類似功能的標頭檔案。

 <GL/glext.h>:擴充套件標頭檔案。因為微軟公司對OpenGL的支援不太積極,VC系列編譯器雖然有<GL/gl.h>這個標頭檔案,但是裡面只有OpenGL 1.1版本中所規定的內容,而沒有OpenGL 1.2及其以後版本。對當前的計算機配置而言,幾乎都支援OpenGL 1.4版本,更高的則到1.5, 2.0, 2.1,而VC無法直接使用這些功能。為了解決這一問題,就有了   <GL/glext.h>標頭檔案。這個標頭檔案提供了高版本OpenGL所需要的各種常數宣告以及函式指標宣告。


<GL/wglext.h>:擴充套件標頭檔案。與<GL/glext.h>類似,但這個標頭檔案中只提供適用於Windows系統的各種OpenGL擴充套件所使用的函式和常量,不適用於其它作業系統。

相關推薦

OpenGLOpenGL基本OpenGL實用OpenGL實用函式工具之間差別

OpenGL中的gl庫是核心庫,glu是實用庫,glut是實用工具庫。 gl是核心,glu是對gl的部分封裝,glut是OpenGL的跨平臺工具庫。 gl中包含了最基本的3D函式,而glu似乎對gl的輔助,如果算數好,不用glu的情況下,也是可以做出同樣的效果。 g

Python抓取淘寶數據月報發送郵件本地存檔保存元信息

epo 平臺 如果 更改 config 查詢 color into all 用途 定期抓取淘寶數據庫月報 發送郵件,保存到本地,最好是git中 發送元數據到mysql中,後期可以做成接口集成到運維平臺中,便於查詢 使用方式 # 下載(必須) cd ~ &&

IP透視攝像頭基本可以實現(講透視的原理濾光片很重要)

首先,必須承認視訊是假的,但是,玩過DV的朋友應該都知道一款SONY的機器DSC-F7xx系列吧,還有個別DC支援夜間拍照模式的也可以,當然,機器原廠出來是不可能透視的,但是經過改裝後就完全不一樣了.             如果群裡有公安搞刑偵的朋友應該很清楚,因為那是他們破案的工具之一,比如,一個很重要的

Java編寫一個方法實現基本的字串壓縮功能

利用重複字元出現的次數,編寫一個方法,實現基本的字串壓縮功能。 例如,字串aabcccccaaa會變為a2b1c5a3。若壓縮後的字串沒有變短,則返回原先的字串。 StringBuffer: 如果頻繁地對字串進行拼接,直接用“+”的話會建立很多String型的物件,對伺服器

pandas[2] DataFrame 基礎建立DataFrame和增刪改查基本操作(1)

作者:lianghc 地址:http://blog.csdn.net/zutsoft         DataFrame 是pandas最常用的資料結構,類似於資料庫中的表,不過DataFrame不僅僅限制於2維,可以建立多維資料表。DataFrame既有行索引,也有列

原創開源Math.NET基礎數學類使用(10)C#進行基本資料統計

1 /// <summary> 2 /// 對未排序的陣列進行統計操作 警告: Methods with the Inplace-suffix may modify the data array by reordering its entries. 3 /// </su

C++linux下CMake生成動態連結g++包含生成動態連結

一、前言   由於專案中要用到java呼叫C++的庫檔案,於是需要在linux下編譯連線生成動態庫,然後根據Recast官方包要先CMake生成編譯,然後在包含到自己實現的檔案,網上查了半天,坑爹沒有全面的,東拼西湊終於才明白原理,於是總結記錄分享如下。 二、CMake生

不用重新編譯php 安裝gd開啟xml DOMDocument 讀寫支援

由於某度眾所周知的舉動,讓我搬離寫了5年的渣度空間,準備把技術性的文章定在CSDN了。這些都是文章備份。勿怪。。鑑於最近有些抓取機器和抄襲者,把標題的【原】字都複製,我不得不宣告:本文為 yukon12345原創,轉載請註明出處http://blog.csdn.net/yu

PHP開發經驗之談看了受益非淺

his 則表達式 處理 手冊 調用 緩存系統 字符串操作函數 如果能 諸多 用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP會在雙引號包圍的字符串中搜尋變量,單引號則不會,註意:只有echo能這麽做,它是一種可以把多個字符串當作參數的“函數”(譯註:PHP手冊中

hihocodersam1-基本概念

upd printf std getch coder get log mem 基本 這題有毒…… 原本只是想復習下sam,於是寫…… 後來發現自己傻了不知道怎麽維護endpos…… 一氣之下直接kmp拉倒,mdzz UPD:現在我好像會維護endpos了…… #i

EFEF Code First Migrations數據遷移

for .config lan generic help cat png first lec 1、EF Code First創建數據庫   新建控制臺應用程序Portal,通過程序包管理器控制臺添加EntityFramework。   在程序包管理器控制臺中執行以下語句,安

轉載WEBRTC基本介紹

webrtc 數據流 應用 帶寬 工作 ogl 回聲 real 明顯 “WebRTC,名稱源自網頁實時通信(Web Real-Time Communication)的縮寫,是一個支持網頁瀏覽器進行實時語音對話或視頻對話的技術,是谷歌2010年以6820萬美元收購

手摸手帶你用vue擼後臺 系列二(登錄權限篇)

userinfo ogr abort 變化 再次 狀態碼 quest -o 監聽 前言 拖更有點嚴重,過了半個月才寫了第二篇教程。無奈自己是一個業務猿,每天被我司的產品虐的死去活來,之前又病了一下休息了幾天,大家見諒。 進入正題,做後臺項目區別於做其它的項目,權限驗證與

pythonftp連接主被動調試等級

login 打開 blog pat 連接 rom down .tar.gz 服務器 示例代碼如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import os from ftplib import FTP de

Python3print用逗號write用加號

nbsp int pre python3 col cda pri pytho write print("\n", Gb[u], "\t",IDlist[u],end="") f.write("\n"+ Gb[u]+"\t"+IDlist[u]) 【Python3】prin

javascript異步編年史從“純回調”到Promise

條件 one org 場景 存在 gofunc ges 語句 += 異步和分塊——程序的分塊執行 一開始學習javascript的時候, 我對異步的概念一臉懵逼, 因為當時百度了很多文章,但很多各種文章不負責任的把籠統的描述混雜在一起,讓我對

javajava反射機制動態獲取對象的屬性和對應的參數值並屬性按照字典序排序Field.setAccessible()方法的說明可用於微信支付 簽名生成

modifier 直接 this 字段值 1-1 讓我 toupper ima play 方法1:通過get()方法獲取屬性值 package com.sxd.test.controller; public class FirstCa{ private

MT97三元基本不等式秒解一道三元不等式

es2017 技術 lin round 基本 com 技術分享 itl tle MT【97】三元基本不等式秒解一道三元不等式

windowswindows系統下在任務管理器的進程選項卡中查看PID/任務管理器怎麽查看PID

分享圖片 圖片 技術 啟動 最大值 成功 9.png mage 選擇列 PID,就是windows上的進程ID,是一個進程的唯一標識值。 那今天啟動JDK跑起來一個項目之後,想要在任務管理器中查看這個JDK所在進程的PID但是看不到。 怎麽解決? 1.我在任務管理

BZOJ5109[CodePlus 2017]大吉大利晚上吃雞! 最短路+拓撲排序+DP

image truct getc https 絕地求生 我們 mes iterator == 【BZOJ5109】[CodePlus 2017]大吉大利,晚上吃雞! Description 最近《絕地求生:大逃殺》風靡全球,皮皮和毛毛也迷上了這款遊戲,他們經常組隊玩