❶ OPENGL編程指南怎麼樣
OpenGL的API更新好快,現在是2013年1月8日,我可以負責任的說第七版已經是累贅了,第八版號稱1月中旬就上市了。 這本書不像別的書,很多書舊版還很有價值,這本書......
❷ 如何搭建開發OpenGLES的開發環境,包括軟體和硬體平台
我用過的環境:
軟體平台:Symbian S60 SDK, Carbide C++
硬體平台:Nokia N73 (支持OpenGL ES)
這個肯定能用起來,但是可以比較老了。
❸ opengl編程指南適合初學者嗎
其實我覺得NeHe的OpenGL指南應該是比較容易理解和入門的~
如果常式運行有問題,最好找一下問題根源所在~
我記得我當初學openGL的時候(做虛擬現實相關的破爛玩意兒~),只有一點點的WINDOWS編程基礎(自學的《windows程序設計》這本書),用的也是nehe的教程,感覺用來入門還算不錯的~
不過後來的工作,再也沒有用過openGL。。。都淡忘了 =。=
❹ 求OpenGL編程指南 中文第七版 完整的
建議還是買一本吧。。以後也方便查詢,中文電子書都是掃描的不會很清晰。。我這一本電子的好像是很久以前的。。不是很清楚,看你要不要。。
❺ OpenGL編程指南第八版VS2015怎麼配置
一、環境搭建指南
書中的地址
http://www.opengl-redbook.com/
去這里打包下載OpenGL紅寶書的示例代碼,解壓後是這樣
雖然沒有第一章的代碼但第一章的內容好歹算一個完整的例子,網上各種環境搭建教程也都以第一章的代碼為例,我們就拿過來直接用一下。
1、打開VS2015創建一個空的控制台項目,然後新建一個cpp文件,粘貼紅寶書第一章的示例代碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
///////////////////////////////////////////////////////////////////////
//
// 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
1
2
3
4
5
6
7
#version 430 core
layout(location = 0) in vec4 vPosition;
void
main()
{
gl_Position = vPosition;
}
triangles.frag
1
2
3
4
5
6
7
#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了。
http://www.cnblogs.com/gagugagu/p/5211452.html
❻ 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的渲染管線當中。
❼ opengl超級寶典和OpenGL編程指南哪個適合新手哪個好
《opengl超級寶典》的例子會有趣點吧。。
《OPEGNL編程指南》正如其名,可以用來當參考手冊,用來查。兩個配合著看。