Canvas has not strange shadow with getCanvasDom() , such as this example in codepen, but THREE.SpriteMaterial 's params { map: new THREE.CanvasTexture( getCanvasDom() ) } has strange shadow.
Seems to be a blending issue. Setting the blending property of the sprite’s material to NoBlending removes the artifact: https://codepen.io/anon/pen/maaopG
An other options is the set the transparent property to false (SpriteMaterial is transparent per default).
Instead of drawing the texture at runtime via the Canvas 2D API, have you considered to serialize the image as base64 and use it as a data source for an Image object? The approach looks like this:
Thank you for reply. Sorry, it doesn’t work. I try to serialize the image as base64 as:
var texture = new THREE.TextureLoader().load(
getCanvasDom().toDataURL('image/png')
);
Finally, I found TextureLoader and CanvasTexture are prototype Texture. I tried to debug I found anything, I am not sure the strange shadow when is it generated.