In this post, I would like to talk about the shadow. In THREE.JS, it has an internal shadow system. It is very powerful and easy to use. But I noticed that so many developers have issue with using shadow with their custom shaders. The most common issue is that after we moved the vertex position in the vertex shader, the shadow casting doesn't seem to be automatically reflected from the changes.