Я делаю небольшой проект в webgl, у меня нарисована текстура на кубе, пока нет проблем :)

Но дело в том, что изображение периодически обновляется, сохраняя одно и то же имя. И что бы я хотел сделать, это обновить текстуру при обновлении изображения без обновления html-страницы.

Я пробовал другое решение, такое как SetInterval или мета, которое не сохраняет кеш ... но на данный момент это не работает.

Мне просто нужна простая функция, которая периодически вызывает «перезагрузку» изображения в .jpg. Вы можете помочь мне ??

Большое спасибо за ответы в будущем! Радоваться, веселиться !!

0
lamourette jean-baptiste 19 Фев 2016 в 12:38

2 ответа

Лучший ответ

Если у вас уже есть текстурированный куб, вы просто вызываете gl.texImage2D с новым изображением, чтобы обновить текстуру.

gl.bindTexture(gl.TEXTURE_2D, textureToUpdate);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, newImage);
2
gman 20 Фев 2016 в 08:24

Без кода сложно дать точное решение вашей проблемы.

            drawingContext.bindTexture(drawingContext.TEXTURE_2D, webGLTexture);

            drawingContext.texImage2D(drawingContext.TEXTURE_2D,
                                        0,
                                        drawingContext.RGBA,
                                        width,
                                        height,
                                        0,
                                        drawingContext.RGBA,
                                        drawingContext.UNSIGNED_BYTE,
                                        newData);

            drawingContext.activeTexture(drawingContext.TEXTURE0);
            drawingContext.uniform1i(webGLUTextureLoc, 0);

            // This will most likely be different for you.
            drawingContext.drawArrays(drawingContext.TRIANGLE_FAN, 0, 4);
0
Eli Davis 18 Май 2016 в 19:48