I tried to use shadowMap
on a receiver with ShaderMaterial
.
I have read that if the ShaderChunks
are added properly, it can be done.
Yes, I added into the due places.
THREE.UniformsLib['shadowmap'],
THREE.ShaderChunk[ "shadowmap_pars_vertex" ],
THREE.ShaderChunk[ "shadowmap_vertex" ],
THREE.ShaderChunk[ "shadowmap_pars_fragment" ],
THREE.ShaderChunk[ "shadowmap_fragment" ]
Somehow, I need to add 'worldPosition' in the vertex shader (and I did) Then, some shadow appears, but not what I expected (from torusKnot).
Could someone take a look at the code and tell me why?
fiddle: https://jsfiddle.net/jmcjc5u/9jz3se0d/5/
var shaderMaterial = new THREE.ShaderMaterial ({
uniforms: THREE.UniformsUtils.merge([
THREE.UniformsLib['common'],
THREE.UniformsLib['lights'],
THREE.UniformsLib['shadowmap'],
]),
vertexShader: [
THREE.ShaderChunk[ "shadowmap_pars_vertex" ],
"void main() {",
" gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);",
" vec4 worldPosition = modelMatrix * vec4(position, 1.0);",
THREE.ShaderChunk[ "shadowmap_vertex" ],
"}",
].join('\n'),
fragmentShader: [
THREE.ShaderChunk[ "shadowmap_pars_fragment" ],
"void main() {",
" gl_FragColor = vec4 (0.5,0.5,0.5,1.0);",
THREE.ShaderChunk[ "shadowmap_fragment" ],
"}",
].join('\n'),
});