日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

glReadPixels的用法和说明

發布時間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 glReadPixels的用法和说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.GPU渲染完數據在顯存,回傳內存的唯一方式glReadPixels函數。。。

2.顯存也被叫做顯示內存、幀緩存,它是用來存儲顯示芯片處理過或者即將讀取的渲染數據。如同計算機的內存一樣,顯存是用來存儲圖形數據的硬件。在顯示器上顯示出的畫面是由一個個的像素點構成的,而每個像素點都以4至64位的數據來控制它的亮度和色彩,這些點構成一幀的圖形畫面。為了保持畫面流暢,要輸出和要處理的多幅幀的像素數據必須通過顯存來保存,達到緩沖效果,再交由顯示芯片和CPU調配,最后把運算結果轉化為圖形輸出到顯示器上。

glReadPixels:讀取一些像素。當前可以簡單理解為“把已經繪制好的像素(它可能已經被保存到顯卡的顯存中)讀取到內存”。

3、glReadPixels的用法和舉例
3.1 函數的參數說明
該函數總共有七個參數。
void glReadPixels(GLint x,

GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,GLvoid * data);

前四個參數可以得到一個矩形,該矩形所包括的像素都會被讀取出來。

參數

x,y

指定從幀緩沖區讀取的第一個像素的窗口坐標。 此位置是矩形像素塊的左下角。

width,height

指定像素矩形的尺寸。 一個寬度和高度對應于單個像素。

format

指定像素數據的格式。 接受以下符號值:GL_ALPHA,GL_RGB和GL_RGBA。

type

指定像素數據的數據類型。 必須是GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4或GL_UNSIGNED_SHORT_5_5_5_1之一。

data

返回像素數據。

(第一、二個參數表示了矩形的左下角橫、縱坐標,坐標以窗口最左下角為零,最右上角為最大值;第三、四個參數表示了矩形的寬度和高度)
第五個參數表示讀取的內容,例如:GL_RGB就會依次讀取像素的紅、綠、藍三種數據,GL_RGBA則會依次讀取像素的紅、綠、藍、alpha四種數據,GL_RED則只讀取像素的紅色數據(類似的還有GL_GREEN,GL_BLUE,以及GL_ALPHA)。如果采用的不是RGBA顏色模式,而是采用顏色索引模式,則也可以使用GL_COLOR_INDEX來讀取像素的顏色索引。目前僅需要知道這些,但實際上還可以讀取其它內容,例如深度緩沖區的深度數據等。
第六個參數表示讀取的內容保存到內存時所使用的格式,例如:GL_UNSIGNED_BYTE會把各種數據保存為GLubyte,GL_FLOAT會把各種數據保存為GLfloat等。
第七個參數表示一個指針,像素數據被讀取后,將被保存到這個指針所表示的地址。注意,需要保證該地址有足夠的可以使用的空間,以容納讀取的像素數據。例如一幅大小為256x256的圖象,如果讀取其RGB數據,且每一數據被保存為GLubyte,總大小就是:256x256x3 = 196608字節,即192千字節。如果是讀取RGBA數據,則總大小就是256x256x4 = 262144字節,即256千字節。

注意:glReadPixels實際上是從緩沖區中讀取數據,如果使用了雙緩沖區,則默認是從正在顯示的緩沖(即前緩沖)中讀取,而繪制工作是默認繪制到后緩沖區的。因此,如果需要讀取已經繪制好的像素,往往需要先交換前后緩沖。

=======================================

參考:

http://blog.csdn.net/ryfdizuo/article/details/45442745

http://blog.csdn.net/ghost129/article/details/4409565

https://www.baidu.com/link?url=qorpcHsHnhfaaNEjFETzCJUbR3CcsVxGVFNSNI15imOf5dEEIZHaLTU-YPngmYTOalLKBu5IlMjnwrVUtlrJBSybeZ_xLE1Ue–MXACtZQe&wd=&eqid=991c4efd0000cd3f000000035daffac5

總結

以上是生活随笔為你收集整理的glReadPixels的用法和说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。