簡體   English   中英

紋理僅在某些設備上顯示

[英]Textures only showing on some devices

我目前正在編寫一個適用於OpenGL ES 1.1的Android應用程序。 它在我開發的HTC Desire(Android 2.3.7)上運行良好。 現在我想在Nexus 7上測試它,但它只顯示黑屏。 我發現所有紋理都只是呈現黑色。 在沒有對象和沒有紋理的部分上,我得到(幾乎)黑色背景顏色。

所以我的問題是為什么紋理在某些設備上呈現得很好而在其他設備上卻沒有?

紋理都是二次的,大小功率為2(即512x512,1024x1024)。 這些是創建紋理時使用的設置:

gl.glBindTexture(GL10.GL_TEXTURE_2D, getTextureId());   

// Create Nearest Filtered Texture
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
        GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
        GL10.GL_LINEAR);

// Different possible texture parameters, e.g. GL10.GL_CLAMP_TO_EDGE
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,
        GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,
        GL10.GL_REPEAT);

gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, /*GL10.GL_REPLACE*/ GL10.GL_MODULATE);

// Use the Android GLUtils to specify a two-dimensional texture image
// from our bitmap
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);

我可以嘗試在兩個設備上渲染紋理嗎?

如果您從drawables獲取位圖,請確保它們都在drawable-nodpi文件夾中。

否則,在不同的android密度上放大后,兩個圖像的功率可能不是2的冪( drawable文件夾中的1024x1024圖像在HDPI設備上變為1536x1536)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM