OpenGL入門(1)——建立一個OpenGL專案
OpenGL入門(1)——建立一個OpenGL專案
前言
本系列為OpenGL入門系列,用於記錄自己的學習過程並分享學習經驗。本人是跟隨視訊博主The Cherno釋出的視訊教程進行學習,B站也有搬運過來的視訊最好的OpenGL教程之一,有興趣的朋友可以一同學習。
一、OpenGL是什麼?
OpenGL(英語:Open Graphics Library,譯名:開放圖形庫或者“開放式圖形庫”)是用於渲染2D、3D向量圖形的跨語言、跨平臺的應用程式程式設計介面(API)。
根據視訊裡的內容瞭解到OpenGL實際上是一種用於控制GPU的規範,這一規範獲得了各平臺和軟硬體廠商的認可,同樣也被遵守。但這並不是說他們公用同一套OpenGL,實際上他們各自有自己的OpenGL,針對自身系統或軟硬體有不同程度的優化,且大多為非開源,不過在我們這些呼叫者的眼中,他們表面上所用的呼叫語句基本一樣,實現的效果基本一樣,很容易就認為這是一樣的東西。
二、建立OpenGL專案
1.準備工作
上文說大多數的OpenGL都不是開源的,那有沒有開源的OpenGL呢?答案是肯定的!
這裡我們使用GLFW開源的OpenGL庫進行學習。
進入主頁我們會看到這樣的頁面:
可以看到直接就有下載的提示,不過這個是大而全的,而我們想用的是小而美的,適合個人開發使用的。找到右上方“下載”按鈕,點選進入如下頁面:
這裡就要根據自己的平臺進行選擇了,本人所用平臺為Windows,可以選擇32位的和64位的。有一點需要知道的是,這裡32位的能在32位和64位的作業系統中執行,64位的只能在64位的作業系統中執行,而且執行的速度據說也差不多,所以為了能適用於更多的作業系統選擇32位的進行下載。
下載並解壓後得到
至此準備工作完成。
2.建立專案
2.1 建立專案檔案
在專案下新增Dependencies資料夾,並在資料夾內新增GLFW資料夾,將之前下載的檔案裡的includ檔案和lib-vc2019(本人用的VS為2019版本,這個別的應該也差不多都適用)複製到GLFW資料夾內。
得到如下的專案檔案:
至此完成專案檔案的建立。
2.2 連結OpenGL庫
在VS中資源管理器下右鍵專案
點選最下方的“屬性”,出現專案屬性頁
找到C/C++下的“常規”裡的“附加包含目錄”,寫入$(SolutionDir)Dependencies\GLFW\include
(此處用到了巨集,編譯器會自動對$SolutionDir進行解析得到對應的路徑)
找到“連結器”下的“常規”裡的“附加庫目錄”,寫入$(SolutionDir)Dependencies\GLFW\lib-vc2019
至此完成OpenGL庫的連結。
2.3 測試
在VS中建立好的OpenGL專案下新建篩選器“src”,用於存放原始碼,在其下新增Applications.cpp
將如下程式碼複製到Applications.cpp中
#include <GLFW/glfw3.h>
int main(void)
{
GLFWwindow* window;
/* Initialize the library */
if (!glfwInit())
return -1;
/* Create a windowed mode window and its OpenGL context */
window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
/* Make the window's context current */
glfwMakeContextCurrent(window);
/* Loop until the user closes the window */
while (!glfwWindowShouldClose(window))
{
/* Render here */
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex2f(-0.5f, -0.5f);
glVertex2f(0.0f, 0.5f);
glVertex2f(0.5f, -0.5f);
glEnd();
/* Swap front and back buffers */
glfwSwapBuffers(window);
/* Poll for and process events */
glfwPollEvents();
}
glfwTerminate();
return 0;
}
執行得到如下結果即代表OpenGL專案完成建立。
總結
以上就是建立一個OpenGL專案的內容,本文僅僅簡單介紹了OpenGL專案的建立,而OpenGL提供了大量能使我們快速便捷地處理圖象的函式和方法,在接下來的文章中會逐步介紹,敬請期待。
相關文章
- OpenGL ES 入門
- OpenGL Android課程一:入門Android
- OpenGL ES專案總結一
- OpenGL/OpenGL ES入門:紋理初探 - 常用API解析API
- OpenGL/OpenGL ES入門: 影象渲染實現以及渲染問題
- OpenGL/OpenGL ES入門: 渲染流程以及固定儲存著色器
- opengl簡單入門例項
- OpenGL入門第4課--深度
- OpenGL/OpenGL ES 入門:基礎變換 - 初識向量/矩陣矩陣
- OpenGL入門第一課--名稱解釋
- 【OpenGL從入門到精通(三)】第一個點的理論
- OpenGL ES 2.0學習(一)入門知識點
- OpenGL系列教程之一:OpenGL(轉)
- OpenGL/OpenGL ES 初探
- OpenGL 與 OpenGL ES
- OpenGL/OpenGL ES入門: 紋理應用 - 紋理座標及案例解析(金字塔)
- Spring入門(一):建立Spring專案Spring
- OpenGL 模型載入詳解模型
- SpringBoot入門 - 建立專案Spring Boot
- OpenGL Shader例項,OpenGL 粒子系統
- iOS-零基礎學習OpenGL-ES入門教程(一)iOS
- 跟我學Python影像處理丨帶你入門OpenGLPython
- OpenGL概述
- OpenGL 學習 01 Mac 搭建 OpenGL 環境Mac
- 第一個OpenGL程式(使用原生的GLFW GLAD)
- maven 專案的建立入門Maven
- OpenGL入門第二課--常用的固定儲存著色器
- [OpenGL]VS2010配置OpenGL開發環境開發環境
- 通過OpenGL理解前端渲染原理(1)前端
- OpenGL 安裝!
- 【CuteJavaScript】Angular6入門專案(1.構建專案和建立路由)JavaScriptAngular路由
- OpenGL筆記之一 開學筆記
- 上手一個 Vue 的入門專案Vue
- 第四個OpenGL程式,texture 紋理
- PyCharm入門第一步:建立並執行第一個Python專案PyCharmPython
- OpenGL 3D 模型載入和渲染3D模型
- OpenGL入門第三課--矩陣變換與座標系統矩陣
- 第一個OpenGL程式(使用原生的GLFW GLAD)—— 後續