2011-08-22 130 views
3

我正在使用OpenGL ES 2.0開發一個簡單的項目。它的表現相當不錯,但我似乎碰到了一個對我們初學者來說看起來很差的地方。那是,我正在嘗試使用紋理圖集。我搜索了一下,但我似乎無法找到任何完整的代碼示例。大多數搜索結果會導致人們給出關於它們是什麼以及如何使用它們的基本概念,但從來沒有一個我可以真正研究的完整示例。OpenGL ES 2.0中的紋理圖集

此刻,我只是試圖從一個圖像圖集中加載一組四個或五個圖像,並將它們應用於單個三角形條。我可以根據需要將圖像的特定部分分割出來,但我無法找到將該圖像的更多部分應用於同一個三角形條的任何示例。

我不一定需要關於這個的完整教程(我不介意!),但如果有人能指點我一些類似的代碼,我會很開心。非常感謝您提前!

回答

4

紋理圖集與使用OpenGL加載和渲染的任何其他圖像沒有區別,訣竅是調整多邊形每個頂點的紋理座標以在該圖像中包含較小的三角形/矩形。

在OpenGL中,圖像的座標從(0,0)開始 - 左下角,結束於(1,1) - 右上角。如果只想將圖像的一個區域映射到多邊形,則使用標準化大小(0.0 - 1.0)分配紋理座標。即圖像的中點將在座標(0.5,0.5)處。

要顯示僅使用圖像的一半呈現一個矩形三角形帶,你的紋理座標將必須是類似:

  • (0.0,0.0)頂點在矩形的左下角
  • (0.0,1.0)在左上角頂點
  • (0.5,0.0)頂點在右下角
  • (0.5,1.0)在右上角頂點
+0

很好的答案。如果我理解正確,使用紋理圖譜與以任何其他方式渲染紋理沒有區別,除了我必須爲每個頂點指定不同的紋理簾線,而不是簡單地跨越整個紋理的簾線。精彩。我明天會更新我的遊戲引擎!我期望這會大量增加渲染時間,因爲我只需要幾個渲染調用,而不是每個紋理渲染,因爲我目前使用... – Antinous