Проблемы с шейдерным материалом

#javascript #three.js #shader

Вопрос:

Начнем с того, что я новичок в ShaderMaterial и GLSL. Я прочитал руководство по GLSL и просмотрел некоторые примеры, найденные в моих поисковых запросах Google, и я пробую свои силы в этом, чтобы создать некоторые эффекты текстуры в своих проектах. Прямо сейчас я просто пытаюсь нанести текстуру на поверхность, как если бы я просто использовал MeshBasicMaterial . Фрагменты кода выглядят примерно так:

 <script type="x-shader/x-vertex" id="vertexskyshader">
    varying vec2 vUv;
    void main()
    {
        vUv = uv;
        gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
    }
</script>

<script type="x-shader/x-fragment" id="fragskyshader">
    varying vec2 vUv;
    uniform sampler2D material;
    void main()
    {
        gl_FragColor = texture2D(material, vUv);
    }
</script>

<script type="module">
    import * as THREE.........

    for(f = 0; f < lvlfaces.length; f  )
    {
        var facemat = new THREE.ShaderMaterial({ vertexColors: THREE.VertexColors, transparent: lvlfaces[f].adjmode, depthWrite: !lvlfaces[f].adjmode, depthTest: !lvlfaces[f].adjmode,
            uniforms: { texture: { value: matTable[lvlfaces[f].mat] } },
            vertexShader: document.getElementById("vertexskyshader").textContent,
            fragmentShader: document.getElementById("fragskyshader").textContent });
 

Они lvlfaces загружаются из файла и представляют собой массив объектов , содержащих информацию о поверхности (например, имя файла текстуры .mat , используемые вершины, координаты УФ-излучения и т.д.). matTable массив, в котором элементы названы в честь имен файлов текстур, содержит фактические данные текстуры (загруженные из THREE.TextureLoader() ). Проблема, с которой я сталкиваюсь, заключается в том, что, когда я перемещаюсь по объекту, отображаемые текстуры меняются на другую текстуру в matTable . Не только это, но и другой объект, который использует тот же цикл, но которому назначены разные текстуры, показывает те же текстуры и изменения, что и объект, который я перемещаю.

анимация слишком большая для импорта

У меня такое чувство, что где-то здесь есть конфликт, но я понятия не имею, как это исправить.