Collisions based on what is visible on the screen

Really the character collision in that video is 2D. There’s a couple ways I could see doing this:

  1. Render a simplified version of your scene (e.g. no lighting) and use pixel based collision, then update your character position and render the full scene.

  2. Save your last rendered scene to a texture (when you render your scene you could render collidable geo to a simple B&W texture) and use it as your basis for pixel based collision, this has the benefit of not needing an additional rendering pass but your collision will be a frame behind (not sure that it matters in this case though).

  3. Grab the collision in the scene (culled by camera frustum) and use the camera and projection matrices to create a series of 2D collision objects - or one big poly soup object. Not sure how well this would work.