<p dir="auto">I'm doing some research on how to enable use of custom materials with THREE.Sprite.</p>
<p dir="auto">Currently in THREE.SpritePlugin uniform binding is hardcoded. Why aren't the methods  from WebGLRenderer used for this task? Is it because of incompatible uniforms?</p>
<p dir="auto">If THREE.SpritePlugin used standard material infrastructure custom materials could be easily enabled just by checking material instance type in THREE.SpritePlugin.render(). Somehow like this:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="for( i = 0; i &lt; nSprites; i ++ ) {
    sprite = sprites[ i ];
    material = sprite.material;
    if(typeof material == 'THREE.SpriteMaterial') {
        //render using default material
    } else {
        //render using custom material
    }
}"><pre class="notranslate"><code class="notranslate">for( i = 0; i &lt; nSprites; i ++ ) {
    sprite = sprites[ i ];
    material = sprite.material;
    if(typeof material == 'THREE.SpriteMaterial') {
        //render using default material
    } else {
        //render using custom material
    }
}
</code></pre></div>
<p dir="auto">Usage of common material infrastructure would be appropriate to avoid too much code duplication in separate branches of that if-statement.</p>
<p dir="auto">Is it possible to update the shadows on a mesh when animating with morph targets? When you rotate a textured object the shadows rotate with it...</p>
<p dir="auto">Thanks!</p>