THREE.TextureLoader() ведет себя непредсказуемым и ошибочным способом. Функция load() класса пытается/загружает одни и те же активы несколько раз (т. Е. 20 раз или более).THREE.TextureLoader() загружает одну и ту же текстуру несколько раз (т. Е. 20 раз или более)
Ниже на рисунке показано это поведение с помощью консоли браузера:
Код, используемый для загрузки и использования текстур следует в следующем:
Element.prototype.createShaderMaterial = function (uniforms, vertexShader, fragmentShader) {
var loader = new THREE.TextureLoader();
uniforms.texture.value = loader.load(this.texture);
return new THREE.ShaderMaterial({
uniforms: uniforms,
vertexShader: vertexShader,
fragmentShader: fragmentShader,
wireframe: true
});
};
Вы также можете найти предварительный просмотр здесь: https://alexprut.github.io/earth-defender/ и код игры здесь: https://github.com/alexprut/earth-defender/tree/master/client/js
Что делается неправильно? Почему одно и то же изображение загружается несколько раз?