Robin91 Posted May 25, 2019 Share Posted May 25, 2019 Hello all, This is my first post, starting with a question with a problem I cannot seem to figure out. My problem is, that I cannot get shadow casting to work, no matter what I try. I got the PicoGL demo working with my own shaders, but shadow casting stops working after I move an object outside the [1,1,1] bounduary. The game I am developping (bomberman) currently contains a 15x15 grid with bloks of 10x10x10. My light / position code looks like this: //Eye + light (a mess, but works) var eyePosition = vec3.fromValues(150, 500, 150); lightPosition = vec3.fromValues(120, 1000, 1000); var rotation = quat.setAxisAngle(vec4.create(), vec3.fromValues(1, 0, 0), Math.PI/2.5); mat4.fromRotationTranslationScale(viewMatrix, rotation, vec3.fromValues(-map.w*5, map.l*5, -250), vec3.fromValues(1, 1, 1)); //View var viewProjMatrix = mat4.create(); mat4.multiply(viewProjMatrix, projMatrix, viewMatrix); //This makes no sense yet var lightViewMatrix = mat4.create(); mat4.fromRotationTranslationScale(lightViewMatrix, rotation, vec3.fromValues(-map.w*5, map.l*5, -500), vec3.fromValues(0.001, 0.001, 0.001)); mat4.multiply(lightProj, projMatrix, lightViewMatrix); Shader (real render) uniform SceneUniforms { mat4 viewProj; mat4 lightProj; vec3 eyePosition; vec3 lightPosition; }; uniform mat4 uModel; out vec3 vPosition; out vec2 vUV; out vec3 vNormal; out vec4 vPositionFromLight; void main() { vec4 worldPosition = uModel * position; vPosition = worldPosition.xyz; vUV = uv; vNormal = (uModel * vec4(normal, 0.0)).xyz; vPositionFromLight = lightProj * worldPosition; gl_Position = viewProj * worldPosition; } Demo (ignore the domain) [snip] I got the demo working with the same shaders: [snip] Its already taking days for me to solve this, but lights / shadow is a domain I do not really get yet. Can somebody shed some light on my shadow casting problem? Thanks! Quote Link to comment Share on other sites More sharing options...
Robin91 Posted June 4, 2019 Author Share Posted June 4, 2019 Got it, thanks for the help! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.