2010-10-13 62 views
3

這是用OpenGL的2D遊戲:OpenGL:準確的紋理可能嗎?

它是否可以使用OpenGL顯示絕對未經過濾的紋理,未被拉伸或模糊?

因此,當我有BMP並將其轉換爲OpenGL紋理,然後檢索該紋理並將其轉換回來時,我沒有修改或質量/數據丟失?

回答

7

當然,只需禁用篩選,即通過將GL_MIN_FILTER和GL_MAG_FILTER設置爲GL_NEAREST。另外,請確保您以適當的尺寸繪製紋理,以便紋理像素與像素尺寸相同。

3

正如馬蒂亞斯先前所說 - 一件事是將GL_MIN_FILTERGL_MAG_FITLER設置爲GL_NEAREST(通過glTexParameter*)。

但是對於像素完美的渲染,還有另外一件重要的事情 - 你不希望你的紋理重新調整到2的冪次。最簡單的方法是通過綁定目標​​而不是GL_TEXTURE_2D來指定紋理。在這種綁定紋理上,紋理座標通常不在範圍內(0..1,0..1),而是(0..w,0..h)。您可以通過這種方式輕鬆實現每個素材的索引。