#define glew_static 1
#include
#include
#include
//vbo繪製兩個共邊的三角形需要六個點
float vertices = ;
const char* vertexshadersource =
「#version 330 core \n」
「layout(location=0) in vec3 apos; \n」
「void main()\n」;
const char* fragmentshadersource =
"#version 330 core "
"out vec4 fragcolor; "
" ""void main() "
" ";
//輸入控制函式宣告
void processinput(glfwwindow* window);
int main()
//繫結視窗到當前執行緒
glfwmakecontextcurrent(window);
if (glewinit()!=glew_ok)
//設定繪圖區域
glviewport(0, 0, 800, 600);
//設定背面剔除 逆時針繪製為正面
//glenable(gl_cull_face);
//glcullface(gl_back);
//設定只繪製線條
glpolygonmode(gl_front_and_back, gl_line);
unsigned int vao;
glgenvertexarrays(1, &vao);
glbindvertexarray(vao);
unsigned int vbo;
glgenbuffers(1,&vbo);
glbindbuffer(gl_array_buffer, vbo);
glbufferdata(gl_array_buffer, sizeof(vertices), vertices, gl_static_draw);
unsigned int vertexshader;
vertexshader = glcreateshader(gl_vertex_shader);
glshadersource(vertexshader, 1, &vertexshadersource, null);
glcompileshader(vertexshader);
unsigned int fragmentshader;
fragmentshader = glcreateshader(gl_fragment_shader);
glshadersource(fragmentshader, 1, &fragmentshadersource, null);
glcompileshader(fragmentshader);
unsigned int shaderprogram;
shaderprogram = glcreateprogram();
glattachshader(shaderprogram, vertexshader);
glattachshader(shaderprogram, fragmentshader);
gllinkprogram(shaderprogram);
glvertexattribpointer(0, 3, gl_float, gl_false, 3 * sizeof(float), (void*)0);
glenablevertexattribarray(0);
while (!glfwwindowshouldclose(window))
//結束繪製
glfwterminate();
return 0;
void processinput(glfwwindow* window)
}
OpenGL學習隨筆 十三
因為工作原因,有一段時間沒玩opengl了。今天開始重新拾起。這一年來接觸了些opengl es的chip provider,感覺大家都開始發力了,mobile 3d產業要爆發了。之前一直在看1.x系列,現在從2.x開始,雖然1.x還有不少內容沒玩過。2.x系列最大的變化就是引入了可程式設計pipe...
OpenGL學習隨筆 四
久違了,我的blog。這幾天被透視投影卡住了,雖然到現在也沒有完全搞明白,但也還是應該階段性總結一下。3d影象在2d平面顯示要經過以下幾個步驟,1.資料配置環節,配置頂點 顏色等資料,確定了物體的大小和外觀。2.指定模型視點變換引數,將物體到3d場景中,並確定我們的觀察點,也就是人眼的位置。3.指定...
OpenGL學習隨筆 七
很多時候,知識難以常握是因為我們只知其表不知其裡,或者說不了解歷史就不能理解現在。所以在學習到一定程度之後一定要去分析和實現opengl,之後才能真正理解和掌握opengl。每天在不斷學習新的內容時,我都會選擇重寫測試 而不是在之前的 上修改,原因是想找出一些思維定勢和盲區。今天嘗試用push和po...