首頁 資訊 > 資訊 > 正文

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

基本概念


【資料圖】

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

1、著色器

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

2、管線

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

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

3、基元

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

我們在屏幕上看到的渲染的所有的東西都是這三種基元的集合。

4、頂點

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

5、光柵器

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

6、管線前端的工作

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

7、管線后端的工作

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

#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開發(fā)學(xué)習(xí)資料加Q群:487707667

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

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

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

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

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

點擊這里:

關(guān)鍵詞:

最近更新

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

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