首頁(yè) 資訊 > 資訊 > 正文

OpenGL:一些基本概念和第一個(gè)程序 環(huán)球看點(diǎn)

基本概念


【資料圖】

Qt提供了OpenGL模塊,在Qt應(yīng)用程序中使用OpenGL相對(duì)比較方便。OpenGL是一種跨平臺(tái)的3D圖形API,可以用于創(chuàng)建各種類(lèi)型的3D圖形應(yīng)用程序,如游戲、虛擬現(xiàn)實(shí)、數(shù)據(jù)可視化等。在Qt中,可以使用QOpenGLWidget類(lèi)來(lái)創(chuàng)建一個(gè)OpenGL窗口,在這個(gè)窗口中,可以使用OpenGL API來(lái)繪制3D圖形。同時(shí),Qt還提供了QOpenGLFunctions類(lèi)來(lái)封裝OpenGL的各種函數(shù),使用起來(lái)更加方便。除此之外,Qt還提供了QOpenGLVertexArrayObject、QOpenGLBuffer等類(lèi)來(lái)管理OpenGL中的頂點(diǎn)數(shù)組和緩沖區(qū)對(duì)象。使用Qt開(kāi)發(fā)OpenGL應(yīng)用程序,既可以發(fā)揮Qt的強(qiáng)大功能,也可以充分利用OpenGL的性能優(yōu)勢(shì)。

1、著色器

GPU由大量的小型可編程處理器(shader core)組成,這些迷你的處理器上運(yùn)行的迷你程序成為著色器。

2、管線

這是一個(gè)形象的說(shuō)法,把 OpenGL 的模型比作一個(gè)生產(chǎn)線。

該模型內(nèi)的數(shù)據(jù)流通常是單一路徑的,程序發(fā)送給 OpenGL 的處理指令形成的數(shù)據(jù)進(jìn)管線的開(kāi)端,然后流經(jīng)一個(gè)個(gè)階段直到管線的末端。

3、基元

OpenGL 中的基本渲染單元。包括點(diǎn)、線、三角形(分別有一、二、三個(gè)點(diǎn))。

我們?cè)谄聊簧峡吹降匿秩镜乃械臇|西都是這三種基元的集合。

4、頂點(diǎn)

(三維)坐標(biāo)空間內(nèi)的一個(gè)點(diǎn),點(diǎn)、線、三角形分別有一、二、三個(gè)頂點(diǎn)。

5、光柵器

用作將三維形式的三角形轉(zhuǎn)成一系列在屏幕渲染的像素的硬件。

6、管線前端的工作

處理頂點(diǎn)和基元,將圖形處理后把它們組成的點(diǎn)、線、三角形傳遞給光柵器。

7、管線后端的工作

光柵器處理之后得到的是像素,管線后端處理這些像素,包括深度參數(shù)、模板測(cè)試、片段著色、混合、更新輸出圖像。

#ifndef OPENGLWIDGET_H#define OPENGLWIDGET_H#include class openglWidget : public QOpenGLWidget{Q_OBJECTpublic:openglWidget(QWidget * parent = nullptr);protected:virtual void paintGL();};#endif // OPENGLWIDGET_H#include ""#include openglWidget::openglWidget(QWidget *parent):QOpenGLWidget(parent){}void openglWidget::paintGL(){static const GLfloat red[] = {,,,};//RGBAQOpenGLExtraFunctions * funs = QOpenGLContext::currentContext()->extraFunctions();funs->glClearBufferfv(GL_COLOR,0,red);}//領(lǐng)取Qt開(kāi)發(fā)學(xué)習(xí)資料加Q群:487707667

OpenGL 的函數(shù)命名遵循一些約定。所有函數(shù)以 gl 開(kāi)頭,本例中,后綴 fv 表示該函數(shù)使用一組向量(v)、浮點(diǎn)(f) 值。

glClearBufferfv():清除當(dāng)前綁定的繪制幀緩沖區(qū)的各個(gè)緩沖區(qū)。

Qt OpenGL是一個(gè)基于OpenGL圖形庫(kù)的Qt模塊,它提供了一組類(lèi)和函數(shù),使開(kāi)發(fā)人員能夠在Qt應(yīng)用程序中使用OpenGL渲染3D場(chǎng)景。Qt OpenGL通過(guò)將OpenGL與Qt的UI框架集成在一起,為開(kāi)發(fā)人員提供了更多靈活性和可擴(kuò)展性。

使用Qt OpenGL,開(kāi)發(fā)人員可以輕松地創(chuàng)建具有吸引力和高度交互性的3D應(yīng)用程序。它還提供了許多方便的功能,如支持紋理映射、光照效果、陰影處理等。此外,Qt OpenGL還可以幫助開(kāi)發(fā)人員解決跨平臺(tái)問(wèn)題,因?yàn)樗梢栽诙鄠€(gè)操作系統(tǒng)上運(yùn)行,并且與其他平臺(tái)無(wú)關(guān)的代碼保持兼容。

【領(lǐng) QT開(kāi)發(fā)教程 學(xué)習(xí)資料, 點(diǎn)擊下方鏈接莬費(fèi)領(lǐng)取↓↓ ,先碼住不迷路~】

點(diǎn)擊這里:

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - 670818.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號(hào)-3