glTexImage*參數解釋

來源:互聯網
上載者:User

glTexImage2D(m_textureTarget, 0, GL_RGBA, m_image.columns(), m_image.rows(), 0, GL_RGBA, GL_UNSIGNED_BYTE, m_blob.data());


這是ogldev裡的代碼,作者在tutorial裡建議把第3個參數改成GL_RED試試,結果顯示為只輸出了紅色。

我把第7個參數也改成GL_RED,結果完全變了,為什麼。


首先,最後三個參數分別表示傳入texture對象的來源資料的格式、類型和指標。

其次,作者在讀取紋理時調用了Magick的庫,將Magick::Image裡的資料以"RGBA"的格式write進Magick::Bolb,如果Bolb格式在這兒已經定好,那麼為什麼在glTexImage2D裡還需要寫第二個GL_RGBA呢。

作者對BLOB作了一定描述:

The BLOB (Binary Large Object) is a useful mechanism for storing an encoded image in memory in a way that it can be used by external programs.(BLOB是一個能被外部程式調用的,在記憶體裡儲存已編碼映像的有效機制)然而這隻是對功能的描述,沒有說明實質。度娘的回答如下:

BLOB (binary large object),二進位大對象,是一個可以儲存二進位檔案的容器。

如果BOLB裡只是一堆位元,那麼,把它當映像的資料來源使用就需要規定格式、類型。

最後,我理解為:

第7個參數說明texture對象建立幾個色彩通道, 如: GL_RED 1個,GL_RGB 3個

第3個參數說明texture對象向pipeline傳哪幾個通道的值。


(還沒有進一步查證,很有可能是錯的,以後再完善吧。)


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.