導航:首頁 > 編程語言 > opengl編程指南下載

opengl編程指南下載

發布時間:2022-09-28 04:35:22

1. 求《OpenGL編程指南原書第九版》全文免費下載百度網盤資源,謝謝~

《OpenGL編程指南原書第九版》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1csmWhH3qGLR4OWKR4eWGBw

?pwd=4ht7 提取碼: 4ht7
簡介:本書共12章,第1章概述OpenGL主要特性和功能;第2章討論OpenGL中*主要的特性——可編程著色器和SPIR-V;第3章介紹使用OpenGL進行幾何體繪制的各種方法,以及一些可以讓渲染更為高效的優化手段;第4章闡釋OpenGL對於顏色的處理過程;第5章介紹在一個二維計算機屏幕上表現三維場景的操作細節;第6章討論將幾何模型與圖像結合來創建真實的、高質量的三維模型的方法;第7章介紹計算機圖形的光照效果模擬方法;第8章介紹使用可編程著色器生成紋理和其他表面效果的方法細節;第9章解釋OpenGL管理和細分幾何表面的著色器功能;第10章介紹在OpenGL渲染流水線中使用著色器進行幾何體圖元修改的特別技術;第11章介紹使用OpenGL幀緩存和緩存內存實現高級渲染技術和非圖形學應用的相關方法;第12章介紹了*新的著色器階段,將通用計算的方法融合到OpenGL的渲染流水線當中。

2. 求《OpenGL超級寶典第5版》全文免費下載百度網盤資源,謝謝~

《OpenGL超級寶典第5版》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1J0F2fnO38VUvi9xpJrwemw

?pwd=ownj 提取碼:ownj
簡介:《OpenGL超級寶典(第5版)》是OpenGL及3D圖形編程的入門指南,涵蓋了使用版本的OpenGL進行編程所需要的主要知識。全書分三部分,共16章,另有3個附錄。部分包括第1章到第7章,介紹如何構建一個使用OpenGL的程序、如何設置3D渲染環境,以及如何創建基本對象和光線並對他們進行著色。然後深入研究如何使用OpenGL,並向讀者介紹GLSL,以及如何創建自己的著色器。第二部分包括第8章到第12章,將進行更深入的研究,而懂得如何應用這些高級特性將使讀者業餘3D玩家的水平。這一部分不僅能夠使我們掌握更多的可視化效果,同時也考慮了性能表現。第三部分包括第13章到第16章,著重介紹OpenGL如何支持和連接Windows、MacOSX、Linux和掌上設備。附錄部分給出了更多閱讀建議、術語表和API參考介紹。

《OpenGL超級寶典(第5版)》適合希望精通OpenGL以便對圖形編程和3D圖形知識進行擴展的程序員閱讀,也可以幫助經驗豐富的OpenGL程序員學習如何移植自己的應用程序。本書既可以作為學習OpenGL的教材,也可以作為隨時查閱的參考手冊。

3. opengl編程指南第8版VS2015怎麼搭建環境

1.下載freeglut和glew
2.將他們的dll文件復制到c盤winfows\syswow64目錄下

3.將他們的頭文件放到programfilesx(x64)下的Microsoft Visual Studio 11.0下的(我的是2012版本2015可能不同)VC include裡面的gl文件夾中(這個文件夾是自己新建的)
4.將他們的lib文件放在programfilesx(x64)下的Microsoft Visual Studio 11.0下的(我的是2012版本2015可能不同)VC目錄下的lib文件中
5.然後可以新建項目,空項目,新建c文件,加上它們的頭文件即可(glew頭文件寫在前面,freeglut寫在後面)

4. 《OpenGL超級寶典第七版》pdf下載在線閱讀全文,求百度網盤雲資源

《OpenGL超級寶典第七版》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1-8dkj5OyfrypT6m4OZjaSQ

?pwd=v1rf 提取碼:v1rf
簡介:本書是OpenGL及3D圖形編程的經典入門指南,涵蓋了使用OpenGL進行編程所需要的主要知識。

本書內容分3部分。第一部分介紹經典OpenGL繪圖的基礎知識,涉及管線、數學知識、數據、著色器和程序等;第二部分著重介紹OpenGL的一些高級功能,涉及頂點處理與繪圖命令、基元處理片段處理與幀緩沖、計算著色器、高級數據管理、管線監控等;第三部分介紹一些實戰技巧,涉及渲染技巧、高性能的OpenGL、調試和穩定性等。

本書適合希望系統學習OpenGL的讀者閱讀,經驗豐富的OpenGL程序員也能從中獲益。本書既可以作為學習OpenGL的教材,也可以作為隨時查閱的參考手冊。

5. 推薦一些學習OpenGL的資料

強力推薦《OpenGL游戲程序設計》作者:K.霍金 D.阿斯特第1篇 OpenGL和DirectX的介紹.
第1章 而今邁步從頭越--OpenGL和Directx
1.1 開發游戲需要理由嗎
1.2 3D游戲世界
1.3 游戲的元素
1.4 開發工具
1.5 什麼是openGL
1.5.1 OpenGL的歷史
1.5.2 OpenGL的體系結構
1.5.3 OpenGL實用庫
1.5.4 什麼是GLUT
1.5.5 輕松一瞥
1.6 什麼是DirectX
1.6.1 DirectX的歷史
1.6.2 DirectX體系結構
1.7 0penGL與DirectX
本章小結
第2章 Windows操作系統平台上的OpenGL編程
2.1 Windows編程介紹
2.1.1 Windows應用程序基礎
.2.1.2從WinMain()開始
2.1.3 Windows Procere
2.1.4 窗口類
2.1.5 窗口類的注冊
2.1.6 窗口的創建
2.1.7 消息循環
2.1.8 一個完整的Windows應用程序
2.2 WGL介紹
2.2.1 繪制環境
2.2.2 WGL的使用
2.3 像素格式
2.3.1 nSize
2.3.2 dwFlag
2.3.3 iPixel lype
2.3.4 cColorBits
2.4 0penGL windOWS應用程序
2.5 全屏OpenGL
本章小結
第3章 3D圖形學理論概覽
3.1 標量、點和矢量
3.1.1 矢量的大小
3.1.2 矢量的歸一化
3.1.3 矢量加法運算
3.1.4 矢量與標量的乘法運算
3.1.5 點積運算
3.1.6 叉積運算
3.2 矩陣
3.2.1 單位矩陣
3.2.2 零矩陣
3.2.3 矩陣加法和減法運算
3.2.4 矩陣乘法運算
3.2.5 矩陣的總體實現
3.3 變換
3.3.1 平移變換
3.3.2 旋轉變換
3.3.3 縮放變換
3.4 投影
3.4.1 平行投影
3.4.2 透視投影
3.5 3D剪裁
3.6 光照
3.6.1 環境光
3.6.2 散射光
3.6.3 鏡面反射光
3.7 紋理映射
本章小結
第2篇 使用OpenGL
第4章 OpenGL狀態和圖元
4.1 狀態函數
4.2 圖元的處理
4.2.1 3D空間中點的繪制
4.2.2 3D空間中線的繪制
4.2.3 3D空間中的多邊形的繪制
4.2.4 圖元的使用
本章小結
第5章 坐標變換和OpenGL矩陣
5.1 理解坐標變換
5.1.1 視點和眼坐標
5.1.2 視圖變換
5.1.3 模型變換
5.1.4 投影變換
5.1.5 視區變換
5.2 OpenGL和矩陣
5.2.1 模型視圖矩陣
5.2.2 平移變換
5.2.3 旋轉變換
5.2.4 縮放變換
5.2.5 矩陣堆棧
5.2.6 機器人常式
5.3 投影變換
5.3.1 正交投影變換
5.3.2 透視投影變換
5.3.3 視區的設置
5.3.4 投影變換實例
5.4 白定義矩陣的使用
5.4.1 自定義矩陣的載入
5.4.2 矩陣的乘法運算
5.4.3 自定義矩陣的實例
本章小結
第6章 添加顏色、混合與光照
6.1 顏色是如何工作的
6.2 在OpenGL中使用顏色
6.2.1 顏色深度
6.2.2 顏色立方體模型
6.2.3 OpenGL中的RGBA模式
6.2.4 OpenGL中的顏色索引模式
6.3 明暗處理
6.4 OpenGL中的光照
6.4.1 OpenGL光照和現實世界
6.4.2 材質
6.4.3 法線
6.4.4 OpenGL光照的使用
6.5 顏色混合
透明度
本章小結
第7章 點陣圖、圖像與OpenG L..
7.1 0penGL點陣圖
7.1.1 點陣圖的定位
7.1.2 點陣圖的繪制
7.1.3 一個OpenGL點陣圖常式
7.2 圖像的使用
7.2.1 圖像數據的繪制
7.2.2 屏幕的讀取
7.2.3 屏幕數據的復制
7.2.4 放大、縮小和翻轉
7.3 像素存儲的管理
7.4 WindOWS點陣圖
7.4.1 BMP文件格式
7.4.2 BMP文件的載入
7.4.3 BMP文件的輸
7.5 Targa圖像文件
7.5.1 Targa文件格式
7.5.2 Targa文件的載入
7.5.3 Targa文件的輸出
本章小結
第8章 紋理映射
8.1 紋理映射的概覽
8.2 紋理圖的應用
8.2.1 2D紋理
8.2.2 lD紋理
8.2.3 3D紋理
8.3 紋理對象
8.3.1 紋理名字的生成
8.3.2 紋理對象的創建和使用
8.4 紋理的過濾處理
8.5 紋理模式
8.6 紋理坐標
8.6.1 重復和夾持紋理
8.6.2 mipmap和細節層次
8.6.3 mipmap的自動牛成
8.7 常式--飄動的旗幟
8.7.1 常式的解釋說明
8.7.2 常式的實現
8.8 常式--高程紋理地形
8.8.1 常式的解釋說明
8.8.2 常式的實現
本章小結
第9章 高級紋理映射
9.1 多紋理映射
9.1.1 多紋理支持的驗證
9.1.2 擴展函數的訪問
9.1.3 紋理單元的建市
9.1.4 紋理坐標的設置(指定)
9.1.5 綜合應用
9.2 環境映射
9.3 紋理矩陣
9.4 光照映射
9.5 多通道多紋理映射
本章小結
第1O章 顯示列表與頂點數組
lO.1 顯示列表
10.1.1 顯示列表的創建
10.1.2 向顯示列表中填充命令
10.1.3 顯示列表的執行
10.1.4 顯示列表的注意事項
10.1.5 顯示列表的銷毀
10.1.6 顯示列表與紋理
10.1.7 常式:使用顯示列表的機器人演示程序
lO.2 頂點數組
10.2.1 頂點數組的啟用
10.2.2 數組的使用
10.2.3 頂點數組與多紋理映射
10.2.4 數組的鎖定
10.2.5 常式:再建地形演示程序
本章小結
第11章 文本的顯示
11.1 點陣圖字體
l1.2 輪廓字體
ll.3 紋理映射字體
本章小結
第12章 OpenGL緩存
12.1 什麼是OpenGL緩存
12.1.1 像素格式的設置
12.1.2 緩存的清理
12.2 顏色緩存
12.2.1 雙緩存系統
12.2.2 立體緩存
12.3 深度緩存
12.3.1 深度比較程序
12.3.2 深度緩存的使用
l2.4 模板緩存
l2.5 累積緩存
本章小結
第13章 OpenGL二次曲面
13.1 OpenGL二次曲面的基礎
l3.1.1 繪制風格
13.1.2 法線
13.1.3 指向
13.1.4 紋理坐標
13.1.5 清理
13.2 圓盤
l3.3 圓柱
l3.4 球
13.5 常式:飛掠一個二次世界
本章小結
第14章 曲線與曲面
14.1 曲線與曲面的描述
14.1.1 參數方程
14.1.2 控制點與連續性
l4.2 求值程序
14.3 曲面
14.4 NURBS
本章小結
第15章 特殊效果
l5.1 標志板
15.2 粒子系統的使用
15.2.1 粒子
l5.2.2 粒子系統
15.2.3 粒子系統管理器
15.2.4 實例
l5.2.5 粒子系統的效果
15.2.6 常式:暴風雪
l5.3 霧
15.3.1 OpenGL的霧
15.3.2 體積霧
l 5.4 鏡像
15.4.1 光照的鏡像
15.4.2 深度緩存的處理
15.4.3 使用模板緩存來處理有限的平面
15.4.4 對於非常規鏡像表而的處理
15.4.5 對任意指向的平面的處理
l5.5 陰影
15.5.1 靜態陰影
15.5.2 投射陰影
15.5.3 模板陰影體
15.5.4 其他的方法
15.5.5 常式:鏡像與陰影
本章小結
第3篇 建立一個游戲
第16章 DirectX的使用:DirectInput
16.1 為什麼要使用DirectInput
16.1.1 Windows消息
16.1.2 Win32
16.1.3 Directlnput
16.2 DirectInput的初始化
16.3 DirectInput的使用
16.3.1 設備的添加
16.3.2 輸入的獲取
l6.3.3 關閉
16.4 動作映射
16.5 輸入子系統的建立
l6.6 輸入系統常式
本章小結
第17章 Directx Audio的使用
l7.1 聲音的基礎
l7.2 什麼是DiteetX Audio
17.2.1 DirecIX Audio的功能部件
l7.2.2 音頻數據流
17.3 使用DirectMusic載入和演奏音頻
17.3.1 初始化COM
17.3.2 創建與初始化演奏對象
17.3.3 創建loader對象
17.3.4 載入一個segment對象
17.3.5 下載波段
17.3.6 演奏segment
17.3.7 停止一個segment的播放
17.3.8 segment是甭止在播放
17.3.9 segment循環的控制
17.3.10 清理
l7.4 一個簡單的常式
l7.5 Audiopath的使用
17.5.1 默認的Audiopath
l7.5.2 標准Audiopath
17.5.3 在Audiopath上播放聲音
17.5.4 從Audiopath獲取對象
17.6 3D聲音
l7.6.1 3D聲音坐標
17.6.2 感知
17.6.3 DirectSound 3D緩存
17.6.4 3D參數的設置
17.6.5 DirectSound 3D聽者
17.6.6 3D音效文本常式
本章小結
第18章 3D模型的處理
18.1 3D模型文件格式
18.2 MD2文件格式
18.2.1 MD2的實現
18.2.2 MD2的載入
18.2.3 MD2的顯示
18.2.4 添加紋理
18.2.5 模型的動畫
18.2.6 開發一個CMD2Model類
18.2.7 模型動畫的控制
18.3 最後的一點小資料
本章小結
第19章 OpenGL物理建模
19.1 物理學的回顧
19.1.1 時間
19.1.2 距離、位移和位置
19.1.3 速度
l9.1.4 加速度
19.1.5 作用力
19.1.6 動量
19.1.7 摩擦力
19.2 真實世界的模擬
19.2.1 任務的分解
19.2.2 定時
19.2.3 矢量
l9.2.4 平面
19.2.5 物體
l9.2.6 物體碰撞的處理
19.2.7 一個常式:空中曲棍球
本章小結
第20章 建立一個游戲引擎
20.1 SimpEngine的設計
20.1.1 利用CNode管理數據
20.1.2 對象的處胖:CObiect
20.2 引擎核
20.2.1 輸入系統
20.2.2 CEngine類
20.2.3 游戲循環
20.2.4 輸入的處理
20.2.5 SimpEngine
20.3 視點
20.4 場景
20.5 模型的添加
20.6 音頻系統
20.7 粒子系統
本章小結
第21章 創建一個游戲:殺戮時刻
2l.1 初始設計
21.2 游戲場景
21.3 敵人
21.4 火箭與爆炸
21.5 用戶的交互
21.6 運行游戲
21.7 建EXE可執行文件
本章小結
第4篇 附錄
附錄A 在線資源
A.1 游戲開發
A.2 OpenGL
A.3 DirectX
A.4 其他的資源
附錄B 隨書所附資料的使用
B.1 用戶界面
B.2 文件結構
B.3 系統要求
B.4 安裝
B.5 其他相關問題與疑難解答信息
B.6 是否仍舊需要幫助 ...

6. opengl編程指南原書第八版 怎麼樣

《華章程序員書庫:OpenGL編程指南(原書第8版)》是由Khronos小組編寫的官方指南,是OpenGL領域的權威著作,素有「OpenGL紅寶書」的美譽。第8版針對OpenGL4.3版本全方位闡釋OpenGL的各種技術細節、方法和最佳實踐,幫助程序員走上OpenGL專家之路。
《華章程序員書庫:OpenGL編程指南(原書第8版)》共12章:第1章概述OpenGL主要特性和功能;第2章討論OpenGL中最主要的特性——可編程著色器;第3章介紹使用OpenGL進行幾何體繪制的各種方法,以及一些可以讓渲染更為高效的優化手段;
第4章闡釋OpenGL對於顏色的處理過程,包括像素的處理、緩存的管理以及像素處理相關的渲染技術;
第5章介紹在一個二維計算機屏幕上表現三維場景的操作細節;第6章討論將幾何模型與圖像結合來創建真實的、高質量的三維模型的方法;第7章介紹計算機圖形的光照效果模擬方法;第8章介紹使用可編程著色器生成紋理和其他表面效果的方法細節;第9章解釋OpenGL管理和細分幾何表面的著色器功能;
​第10章介紹在OpenGL渲染管線中使用著色器進行幾何體圖元修改的特別技術;第1l章介紹使用OpenGL幀緩存和緩存內存實現高級渲染技術和非圖形學應用的相關方法;第12章介紹了最新的著色器階段,將通用計算的方法融合到OpenGL的渲染管線當中。

7. OpenGL怎麼學就業能做啥呢

OpenGL就業主要能做3D游戲開發,學習需要一個系統的流程,如下:

openGL學習建議按照如下的步驟進行:

1、基本的線性代數知識,不需要很深入,大學時的線性代數拿出來復習一下足夠用了,特別是矩陣變換部分。

2、C++開發語言,一定要非常熟練。

3、《計算機圖形學》這個應該是高校教材了,這個也是所有圖形學的基礎知識。

4、《3D游戲編程大師技巧》等基礎入門教材,這一類圖書基本上是將基礎知識和openGL API如何使用結合起來,使得讀者可以開始上手開發。同樣的還有 https://learnopengl-cn.github.io/ 這一類網站,都是比較好的入門資料。

5、《openGL編程指南》俗稱「紅寶書」,《OpenGL Super Bible 5th》俗稱「藍寶書」,不過這兩本書更加適合作為查詢手冊,用到哪一塊需要深入了解時進行查詢。

6、再深入就是了解詳細的管線處理流程、shader語言開發等。

openGL主要屬於計算機圖形學方面的內容,這一塊屬於比較專業的領域了。

目前主要做3D游戲開發這一塊用得最多,大公司做游戲引擎開發主要以openGL為主,即便現在很多基於U3D開發的手游,至少也需要熟悉基本的openGL管線流程和一些shader知識。

其次,做一些專業領域的模擬會很多,再次在做各種濾鏡、特效方面也需要用到openGL知識,不過這些方面還需要圖像處理方面的一些知識。

PpenGL的設計

OpenGL規范描述了繪制2D和3D圖形的抽象API。盡管這些API可以完全通過軟體實現,但它是為大部分或者全部使用硬體加速而設計的。

OpenGL的API定義了若干可被客戶端程序調用的函數,以及一些具名整型常量(例如,常量GL_TEXTURE_2D對應的十進制整數為3553)。

雖然這些函數的定義表面上類似於C編程語言,但它們是語言獨立的。因此,OpenGL有許多語言綁定,值得一提的包括:JavaScript綁定的WebGL(基於OpenGL ES 2.0在Web瀏覽器中的進行3D渲染的API);C綁定的WGL、GLX和CGL;iOS提供的C綁定;Android提供的Java和C綁定。

OpenGL不僅語言無關,而且平台無關。規范隻字未提獲得和管理OpenGL上下文相關的內容,而是將這些作為細節交給底層的窗口系統。出於同樣的原因,OpenGL純粹專注於渲染,而不提供輸入、音頻以及窗口相關的API。

OpenGL是一個不斷進化的API。新版OpenGL規范會定期由Khronos Group發布,新版本通過擴展API來支持各種新功能。每個版本的細節由Khronos Group的成員一致決定,包括顯卡廠商、操作系統設計人員以及類似Mozilla和谷歌的一般性技術公司。

除了核心API要求的功能之外,GPU供應商可以通過擴展的形式提供額外功能。擴展可能會引入新功能和新常量,並且可能放鬆或取消現有的OpenGL函數的限制。

然後一個擴展就分成兩部分發布:包含擴展函數原型的頭文件和作為廠商的設備驅動。供應商使用擴展公開自定義的API而無需獲得其他供應商或Khronos Group的支持,這大大增加了OpenGL的靈活性。OpenGL Registry負責所有擴展的收集和定義。

每個擴展都與一個簡短的標識符關系,該標識符基於開發公司的名稱。例如,英偉達(nVidia)的標識符是NV。如果多個供應商同意使用相同的API來實現相同的功能,那麼就用EXT標志符。

這種情況更進一步,Khronos Group的架構評審委員(Architecture Review Board,ARB)正式批准該擴展,那麼這就被稱為一個「標准擴展」,標識符使用ARB。

第一個ARB擴展是GL_ARB_multitexture。

OpenGL每個新版本中引入的功能,特別是ARB和EXT類型的擴展,通常由數個被廣泛實現的擴展功能組合而成。

8. OpenGL編程指南第八版VS2015怎麼配置

一、環境搭建指南

書中的地址

http://www.opengl-redbook.com/

去這里打包下載OpenGL紅寶書的示例代碼,解壓後是這樣

雖然沒有第一章的代碼但第一章的內容好歹算一個完整的例子,網上各種環境搭建教程也都以第一章的代碼為例,我們就拿過來直接用一下。

1、打開VS2015創建一個空的控制台項目,然後新建一個cpp文件,粘貼紅寶書第一章的示例代碼

///////////////////////////////////////////////////////////////////////
//
// triangles.cpp
//
///////////////////////////////////////////////////////////////////////
#include <iostream>
using namespace std;
#include "vgl.h"
#include "LoadShaders.h"
enum VAO_IDs { Triangles, NumVAOs };
enum Buffer_IDs { ArrayBuffer, NumBuffers };
enum Attrib_IDs { vPosition = 0 };
GLuint VAOs[NumVAOs];
GLuint Buffers[NumBuffers];
const GLuint NumVertices = 6;
//---------------------------------------------------------------------
//
// init
//
void init(void)
{
glGenVertexArrays(NumVAOs, VAOs);
glBindVertexArray(VAOs[Triangles]);
GLfloat vertices[NumVertices][2] = {
{ -0.90, -0.90 }, // Triangle 1
{ 0.85, -0.90 },
{ -0.90, 0.85 },
{ 0.90, -0.85 }, // Triangle 2
{ 0.90, 0.90 },
{ -0.85, 0.90 }
};
glGenBuffers(NumBuffers, Buffers);
glBindBuffer(GL_ARRAY_BUFFER, Buffers[ArrayBuffer]);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices),
vertices, GL_STATIC_DRAW);
ShaderInfo shaders[] = {
{ GL_VERTEX_SHADER, "triangles.vert" },
{ GL_FRAGMENT_SHADER, "triangles.frag" },
{ GL_NONE, NULL }
};
GLuint program = LoadShaders(shaders);
glUseProgram(program);
glVertexAttribPointer(vPosition, 2, GL_FLOAT,
GL_FALSE, 0, BUFFER_OFFSET(0));
glEnableVertexAttribArray(vPosition);
}
//---------------------------------------------------------------------
//
// display
//
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(VAOs[Triangles]);
glDrawArrays(GL_TRIANGLES, 0, NumVertices);
glFlush();
}

//---------------------------------------------------------------------
//
// main
//
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutInitWindowSize(512, 512);
glutInitContextVersion(4, 3);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutCreateWindow(argv[0]);

glewExperimental = GL_TRUE;
if (glewInit()) {
cerr << "Unable to initialize GLEW ... exiting" << endl;
exit(EXIT_FAILURE);
}
init();
glutDisplayFunc(display);
glutMainLoop();
}

2、打開項目屬性,在「VC++ Directories」選項卡中,將前面下載回來的紅寶書示例代碼中的include目錄加入「Include Directories」,將lib目錄加入「Library Directories」

3、打開項目屬性,在「General」選項卡中,將「Platform Toolset」設置為VS2013

4、在項目管理器中右擊Source Files的Filter,添加現有項,然後找到紅寶書源碼目錄中的lib目錄,添加LoadShaders.cpp文件

5、打開項目屬性,在「Linker/Input」選項卡中,在「Ignore Specific Default Libraries」中添加libcmtd.lib

6、在項目目錄中新建兩個文本分別命名為triangles.vert和triangles.frag,也就是我們的頂點著色器和片段著色器啦

triangles.vert

#version 430 core
layout(location = 0) in vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}

triangles.frag

#version 430 core
out vec4 fColor;
void
main()
{
fColor = vec4(0.0, 0.0, 1.0, 1.0);
}

7、編譯,運行,搞定

二、所以然

1、關於第一步

這里的示例代碼其實比書中的多了一句

glewExperimental = GL_TRUE;

書里的代碼用到了GLEW庫,GLEW可以跨平台支持OpenGL高級擴展特性,沒有GLEW的話在Win平台是無法使用4.3的那些功能的。這句
代碼是GLEW所有擴展的一個開關,需要在glewInit()之前執行。如果沒有這一句,編譯是可以通過的,但在運行時會崩潰。

2、關於第二步

主要目的是將示例代碼中用到的GLUT和GLEW庫的頭文件和庫文件引入項目目錄。這一步沒設置好的話編譯無法通過,現象一般是無法打開freeglut相關庫文件或者某些函數沒有聲明。

網上有些教程讓你自己去下載並編譯freeglut和glew,然後拷貝到各種系統目錄和VS的目錄,其實沒用。所有用到的頭文件和庫文件在第八版示例代碼include和lib目錄中都有了,你只要正確引入項目中就不會有問題。

3、關於第三步

只有VS2015需要這一步

VS2015更改了很多標准庫的鏈接方式和宏定義,而紅寶書第八版中用到的freeglut庫中用到了這些標准庫和宏。所以如果報_sscanf或者__iob_func是無法解析的外部符號之類的錯誤,只需要把平台工具集改成舊的就行了。

4、關於第四步

沒有這一項,LoadShaders中定義的函數會報無法解析的外部符號錯誤。

5、關於第五步

如果不忽略這個默認庫,會報庫沖突或者無法打開庫文件的錯誤。

6、關於第六步

沒著色器畫個卵,運行漆黑一片。

7、雙顯卡電腦又躺槍了

我折騰了半天運行CMD顯示Unable to create OpenGL 4.3 context,尼瑪雙顯卡電腦默認用核心顯卡啟動應用。打開NVidia控制面板-管理3D設置-全局設置-首選圖形處理器,把獨顯設為默認就OK了。

9. 求<<opengl編程指南>>中文的pdf

很清晰,中文版本。可以先看看再採納。 望採納 本來是直接給你附件的。現在網路好像不能添加附件了。給我網址吧

閱讀全文

與opengl編程指南下載相關的資料

熱點內容
壓縮因子定義 瀏覽:968
cd命令進不了c盤怎麼辦 瀏覽:214
葯業公司招程序員嗎 瀏覽:974
毛選pdf 瀏覽:659
linuxexecl函數 瀏覽:727
程序員異地戀結果 瀏覽:374
剖切的命令 瀏覽:229
干什麼可以賺錢開我的世界伺服器 瀏覽:290
php備案號 瀏覽:990
php視頻水印 瀏覽:167
怎麼追程序員的女生 瀏覽:487
空調外壓縮機電容 瀏覽:79
怎麼將安卓變成win 瀏覽:459
手機文件管理在哪兒新建文件夾 瀏覽:724
加密ts視頻怎麼合並 瀏覽:775
php如何寫app介面 瀏覽:804
宇宙的琴弦pdf 瀏覽:396
js項目提成計算器程序員 瀏覽:944
pdf光子 瀏覽:834
自拍軟體文件夾名稱大全 瀏覽:328