亚洲AV免费看深爱成人|日韩av另类一级特黄片在线|中国免费一级黄片|国产av一二三区|亚洲有码AV在线|久久亚洲国产日韩欧美|成人免费AV网站|婷婷一区综合一区|亚洲AV无码导航|高级欧美成人网站

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

OpenGL游戲引擎開發(fā)第三章(GLFW創(chuàng)建游戲窗口)

發(fā)布時間:2024-05-23 13:37:05 瀏覽量:171次

讓我們來嘗試讓GLFW正常運行。首先,新建一個.cpp文件,然后將以下代碼粘貼到文件的最前面:

#include <glad/glad.h>#include <GLFW/glfw3.h>

在包含GLFW的頭文件之前,請務(wù)必確保包含了GLAD的頭文件。GLAD的頭文件包含了正確的OpenGL頭文件,因此需要在其他依賴于OpenGL的頭文件之前包含GLAD。接下來,我們創(chuàng)建main函數(shù),在其中實例化GLFW窗口:

int main(){    glfwInit();    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);    return 0;}

首先調(diào)用glfwInit函數(shù)初始化GLFW,在main函數(shù)中使用glfwWindowHint函數(shù)配置GLFW。glfwWindowHint函數(shù)的第一個參數(shù)表示選項的名稱,可以從以GLFW_開頭的枚舉值中選擇;第二個參數(shù)是整數(shù)值,用于設(shè)置該選項的值。所有選項及其對應(yīng)值可以在GLFW的窗口處理文檔中找到。如果您在編譯cpp文件時遇到大量未定義的引用錯誤,請檢查是否成功鏈接了GLFW庫。

因為本站的教程基于OpenGL 3.3版本進行討論,所以我們需要告訴GLFW我們要使用的OpenGL版本是3.3。這樣GLFW在創(chuàng)建OpenGL上下文時會做出適當(dāng)?shù)恼{(diào)整,同時還可以確保在沒有適當(dāng)?shù)腛penGL版本支持的情況下無法運行。我們將主版本號和次版本號都設(shè)置為3。此外,明確告訴GLFW我們使用的是核心模式是確保我們只使用OpenGL功能的子集,沒有不需要的向后兼容特性。

...

渲染

我們需要將所有渲染操作放入渲染循環(huán)中,以便在每次迭代中執(zhí)行這些渲染指令。代碼示例如下:

// 渲染循環(huán)while(!glfwWindowShouldClose(window)){    // 輸入    processInput(window);    // 渲染指令    ...    // 檢查并調(diào)用事件,交換緩沖    glfwPollEvents();    glfwSwapBuffers(window);}

為了測試一切都正常工作,我們使用一種自定義顏色清空屏幕。在每個新的渲染迭代開始時,我們總是希望清除屏幕,以避免看到上一次迭代的渲染結(jié)果。我們可以調(diào)用glClear函數(shù)來清空屏幕的顏色緩沖,該函數(shù)接受一個緩沖位來指定要清空的緩沖。在這里,我們將屏幕設(shè)置為類似黑板的深藍綠色。

以上是對GLFW創(chuàng)建游戲窗口和渲染的簡要介紹。希望本文能幫助您順利運行GLFW并進行基本的渲染操作。如果您看到一個無聊的黑色窗口,那就對了!

輸入

我們還希望在GLFW中實現(xiàn)一些輸入控制。這可以通過使用GLFW的幾個輸入函數(shù)來實現(xiàn)。我們將使用glfwGetKey函數(shù),它需要一個窗口和一個按鍵作為輸入。這個函數(shù)將返回按鍵是否被按下。我們將會創(chuàng)建一個processInput函數(shù)來處理所有輸入。

接下來,在每個渲染迭代中調(diào)用processInput函數(shù):

while (!glfwWindowShouldClose(window)){    processInput(window);    glfwSwapBuffers(window);    glfwPollEvents();}

這樣我們就能簡單地檢測特定的鍵是否被按下,并在每一幀進行處理。

渲染

為了測試一切都正常工作,我們使用一種自定義顏色清空屏幕。在每個新的渲染迭代開始時,我們總是希望清除屏幕,以避免看到上一次迭代的渲染結(jié)果。我們可以調(diào)用glClear函數(shù)來清空屏幕的顏色緩沖。

glClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT);

以上是關(guān)于創(chuàng)建游戲窗口和渲染的詳細介紹。我們希望這些內(nèi)容能幫助您順利運行GLFW并進行基本的渲染操作。祝您順利!

熱門課程推薦

熱門資訊

請綁定手機號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定