用OpenGL ES畫簡單的幾何圖形是不夠的。OpenGL更多的是用於圖像的顯示和紋理,比如本地圖片和相機圖片。簡單來說,壹個紋理就是壹個圖像或者壹張照片,可以加載到OpenGL中。
OpenGL中的紋理可以用來表示圖像、照片等。每個二維紋理由許多小的紋理元素組成,這些小的紋理元素是小塊的數據,類似於碎片和像素。使用紋理最常見的方式是直接從圖像文件加載數據。
紋理不是直接繪制的,它們被綁定到紋理單元,然後傳遞給著色器。紋理映射的基本思想是:首先給壹個圖元中的每個頂點分配合適的紋理坐標,然後通過紋理坐標確定紋理圖中所選擇的紋理區域,最後根據紋理坐標將所選擇的紋理區域中的內容映射到指定的圖元上。
紋理的坐標系不同於頂點著色器的坐標系。紋理坐標用浮點數表示,取值範圍為[0,1],左上角坐標為(0.0,0.0),右上角坐標為(1.0,0.0)。註意:只有當紋理坐標映射到正確的頂點時,紋理才能正確顯示。
定義頂點和紋理坐標,它們的順序必須是壹對壹的。
定義著色器。
將圖片載入OpenGL。
計算變換矩陣,並以CenterInside或CenterCrop的形式顯示出來。
展示圖片。
源代碼在GitHub上。
參考資料: