Код OpenGL, который работает на Nexus One, не будет работать должным образом на Nexus S. Текстуры не выглядят рендерингами, и меня оставляют только черные, где текстуры должны быть.OpenGL ES черная текстура на Nexus S
У кого-нибудь есть идеи?
Код OpenGL, который работает на Nexus One, не будет работать должным образом на Nexus S. Текстуры не выглядят рендерингами, и меня оставляют только черные, где текстуры должны быть.OpenGL ES черная текстура на Nexus S
У кого-нибудь есть идеи?
В accepted answer given here решает эту проблему в несколько большей глубине, чем я буду, но в то время как этот черный вопрос экран не возникает с Nexus S (и некоторые другие устройства), строгие относительно текстур с двумя синтами, , это не означает, что текстуры должны иметь размеры, которые являются Po2.
В коде текстуры загрузки, можно иметь следующие строки:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
и если этот код изменен, чтобы добавить еще две линии для зажима, то телефон будет поддержка nPo2 текстур при условии, один нормально с фиксацией. Вот код с добавленным зажимами:
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE);
Nexus S более строг относительно размера изображений, которые используются в качестве текстур в OpenGL ES.
текстуры должны быть размером 2^п (например, 256, 512, 1024 и т.д.)
Нельзя использовать GL_CLAMP_TO_EDGE, чтобы избежать этой проблемы? –
Одна хорошая идея - вставить код. Во-первых, активируете ли вы блок текстуры? –