1. 程式人生 > >配置OpenGL(Windows)

配置OpenGL(Windows)

OpenGL(全寫Open Graphics Library)是指定義了一個跨程式語言、跨平臺的程式設計介面規格的專業的圖形程式介面。這裡將介紹如何在windows平臺下,配置並開始第一個OpenGL程式。

目錄

下載

使用OpenGL,我們需要下載它庫檔案,包括GLUT,freeGLUT,GLEW,GLTools。

注:freeGLUT其實在慢慢取代GLUT的地位;GLTools庫是基於GLEW庫的。

配置

VS2015中配置OpenGL

我的VS2015安裝到了I盤

1.將壓縮包解壓,你可以看到三個資料夾,dll,include, lib;

image_1cq5rac1isnu1oni1jst1a2ifm79.png-38.1kB

2.將include 資料夾中的所有檔案複製到I:\Microsoft Visual Studio 14.0\VC\include

中;

image_1cq5rfar812c1ltt1a6hccl10752m.png-57.6kB image_1cq5rdhku1cr0p9s6911rg7vip29.png-66.8kB

3.將dll資料夾中的所有檔案複製到I:\Microsoft Visual Studio 14.0\VC\binC:\Windows\SysWOW64C:\Windows\System32中;

image_1cq5rgacn12a56ftvjp1esi19s643.png-45.5kB image_1cq5riaekvl1r6u1gn7s6qjqb4g.png-67.7kB

4.將lib資料夾中的所有檔案複製到I:\Microsoft Visual Studio 14.0\VC\lib中;

image_1cq5riqbo6tkb1m1imi1p6if3m4t.png-42kB image_1cq5rjh3f16qg1dpdhp1p0h1d1o5a.png-65.2kB

5.在OpenGL專案中新增附加依賴項; 在專案的附加依賴項中新增 gltools.lib opengl32.lib glew32s.lib

image_1cq5s20lslod12j19cs655a749.png-125.4kB

現在用程式測試一下: 原始碼如下:

#include <GLTools.h>
#include <GLShaderManager.h>
#include <GL/glut.h> GLBatch triangleBatch; GLShaderManager shaderManager; void ChangeSize(int w, int h) { glViewport(0, 0, w, h); } void SetupRC() { glClearColor(0.0f, 0.0f, 0.0f, 1.0f); shaderManager.InitializeStockShaders(); GLfloat vVerts[] = { -0.5f,0.0f,0.0f, 0.5f,0.0f,0.0f, 0.0f,0.5f,0.0f }; triangleBatch.
Begin(GL_TRIANGLES, 3); triangleBatch.CopyVertexData3f(vVerts); triangleBatch.End(); } void RenderScne(void) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); GLfloat VRed[] = { 1.0f,0.0f,0.0f,1.0f }; shaderManager.UseStockShader(GLT_SHADER_IDENTITY, VRed); triangleBatch.Draw(); glutSwapBuffers(); } int main(int argc, char *argv[]) { gltSetWorkingDirectory(argv[0]); glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL); glutInitWindowSize(800, 600); glutCreateWindow("Triangle"); glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScne); GLenum err = glewInit(); if (GLEW_OK != err) { fprintf(stderr, "GLEW Error:%s\n", glewGetErrorString(err)); return 1; } SetupRC(); glutMainLoop(); return 0; }

效果如下:

image_1cq5s5g73snm1kft122mklpho016.png-80.5kB