2017-02-21 9 views
-2

В настоящее время я столкнулся с ошибкой, которую я не могу понять.Отсутствие текстуры, привязанной к устройству 0

В хроме я получаю:

GL ERROR :GL_INVALID_VALUE : glTexImage2D: invalid internal_format GL_FALSE 
RENDER WARNING: there is no texture bound to the unit 0 

Который приводит к моим 3D-объект, имеющий только черную текстуру, а не изображение, я ждал, чтобы быть оказаны.

+0

Я удалил тэг three.js из вашего вопроса, поскольку, по-видимому, вы делаете ручной WebGL. –

+2

Как вы ожидаете от нас помощи в этом, если вы не предоставляете какой-либо код? –

ответ

-3

Так что я нашел ответ после возиться с моим кодом мало, оказывается, его просто исправить (может быть глупостью с моей стороны), но то, что я использовал, чтобы был такой:

var boxTexture = gl.createTexture(); 
gl.bindTexture(gl.TEXTURE_2D, boxTexture); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); 
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA,  gl.UNSIGNED_BYTE,document.getElementById('crate-image')); 
gl.bindTexture(gl.TEXTURE_2D, null); 

Все, что нужно изменение был порядок, так что теперь это выглядит следующим образом:

var boxTexture = gl.createTexture(); 
gl.bindTexture(gl.TEXTURE_2D, boxTexture); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); 
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); 
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA,  gl.UNSIGNED_BYTE,document.getElementById('crate-image')); 
gl.bindTexture(gl.TEXTURE_2D, null); 
+3

это не имеет смысла. Кроме того, ваша ошибка не имеет ничего общего с строками, которые вы модифицировали, а только с темой 'texImage2D'. Вы уверены, что это ошибка? – gman

0

internal_format является третьим аргументом gl.texImage2D. В сообщении об ошибках говорится, что вы передаете либо 0, либо undefined или null. Все они становятся 0, что совпадает с GL_FALSE.

Вам необходимо пройти правильный внутренний формат, как gl.RGBA, gl.RGB и т.д ...

Вторая ошибка из-за первого.