我找到了一個Android的3D圖形框架Rajawali,我正在學習如何使用它。我遵循最基本的教程,即爲紋理渲染帶有1024x512大小jpg圖像的shpere對象。它在Galaxy Nexus上運行良好,但在Galaxy Player GB70上無效。在某些設備上不顯示OpenGL ES 2.0紋理
當我說它沒有工作,我的意思是對象出現,但紋理不呈現。最終,我在創建紋理時改變了我用於Rajawali框架的一些參數並使其工作。這是我發現的。
原因來自GL_TEXTURE_MIN_FILTER
的設置位置。之間的下列四個值
GLES20.GL_LINEAR_MIPMAP_LINEAR
GLES20.GL_NEAREST_MIPMAP_NEAREST
GLES20.GL_LINEAR
GLES20.GL_NEAREST
時GL_TEXTURE_MIN_FILTER
未使用的mipmap設置爲過濾紋理僅呈現。所以當GL_TEXTURE_MIN_FILTER
設置爲最後兩個它的作品。
現在這裏是我不明白和好奇的。當我縮小尺寸爲512x512的紋理圖像時,GL_TEXTURE_MIN_FILTER
設置無關緊要。最小過濾器的所有四個設置都起作用。
所以我的問題是,是否有對圖像的尺寸使用紋理最小濾鏡時的要求?比如我需要使用一個正方形的圖像嗎?其他的東西,如包裝樣式或磁鐵過濾器的配置是否有問題?
或者它看起來像是設備的OpenGL實現錯誤?
謝謝你提供了一個很好的學習資料來源。但我知道你提到的大部分事情。也許我沒有把我的故事講得很清楚。 – 2012-07-11 07:34:58
我使用1024 * 512大小的圖像作爲紋理。 Galaxy Nexus上的紋理渲染效果不錯,但不會在Galaxy Player上渲染。在以下兩種情況下,紋理將僅適用於Galaxy Player。如果不對GL_TEXTURE_MIN_FILTER(線性或最近)使用mipmap過濾器,或者如果我將大小縮小到512x512(那麼GL_TEXTURE_MIN_FILTER設置無關緊要)。由於1024和512都是兩個數字,所以我猜這個換行模式真的沒有關係。至少從我的理解來看,這是我的想法。 – 2012-07-11 07:39:59
如上所述,我也有一個紋理,它的大小是(1024 x 512),它顯示的是黑色紋理。換行模式的改變對我有效。 – paj7777 2013-05-24 08:49:53