Gere programaticamente mapeamento UV simples para modelos

Vindo deesta question Estou tentando gerar mapeamentos UV programaticamente com o Three.js para alguns modelos, preciso disso porque meus modelos também estão sendo gerados programaticamente e preciso aplicar uma textura simples a eles. eu liaqui e gerou com sucesso o mapeamento UV para algum texto 3D simples, mas ao aplicar o mesmo mapeamento a modelos mais complexos, simplesmente não funciona.

A textura que estou tentando aplicar é mais ou menos assim:

O fundo preto é apenas transparente na imagem PNG. Eu preciso aplicar isso aos meus modelos, é apenas um efeito de brilho, então não me importo com a posição exata no modelo. Existe alguma maneira de criar um simples mapa UV programaticamente para esses casos?

Estou usando esse código da pergunta vinculada, que funciona muito bem para modelos planares, mas não funciona para modelos não-planares:

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;
}