Программно сгенерировать простое UV-картирование для моделей

Приходящий изэтот вопрос Я пытаюсь сгенерировать UV Mappings программно с помощью Three.js для некоторых моделей, мне это нужно, потому что мои модели тоже генерируются программно, и мне нужно применить к ним простую текстуру. я прочиталВот и успешно сгенерировал UV-отображение для простого 3D-текста, но при применении того же отображения к более сложным моделям оно просто не работает.

Текстура, которую я пытаюсь применить, выглядит примерно так:

Черный фон просто прозрачен в изображении PNG. Мне нужно применить это к моим моделям, это просто эффект блеска, поэтому мне нет дела до точного положения в модели, есть ли способ создать простую UV-карту программно для этих случаев?

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

assignUVs = function( geometry ){

    geometry.computeBoundingBox();

    var max     = geometry.boundingBox.max;
    var min     = geometry.boundingBox.min;

    var offset  = new THREE.Vector2(0 - min.x, 0 - min.y);
    var range   = new THREE.Vector2(max.x - min.x, max.y - min.y);

    geometry.faceVertexUvs[0] = [];
    var faces = geometry.faces;

    for (i = 0; i < geometry.faces.length ; i++) {

      var v1 = geometry.vertices[faces[i].a];
      var v2 = geometry.vertices[faces[i].b];
      var v3 = geometry.vertices[faces[i].c];

      geometry.faceVertexUvs[0].push([
        new THREE.Vector2( ( v1.x + offset.x ) / range.x , ( v1.y + offset.y ) / range.y ),
        new THREE.Vector2( ( v2.x + offset.x ) / range.x , ( v2.y + offset.y ) / range.y ),
        new THREE.Vector2( ( v3.x + offset.x ) / range.x , ( v3.y + offset.y ) / range.y )
      ]);

    }

    geometry.uvsNeedUpdate = true;
}