So I had an idea tonight...
Could you do screen space reflections.
Well, I'll get to the point: You can!![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
My implementation is hacky, nasty, buggy and - well - ugly. But it proves it's a workable technique.
Basically, it works like this:
For each pixel, you have position/normal. Given the vector to the pixel, you can work out the reflection vector from the surface normal.
So... Then it's a matter of taking that reflection vector and sample it at a bunch of intelligent points.
Work out where those samples project to into screen space.
For each sample, check it's depth, if the depth is closer than the sample point - then the reflection ray has impacted some screen space geometry.
Yay! Simple. Slow, but simple.
I'm sure there are a zillion ways it could be optimised.
Anywho. Here are some proof of concept pics:
*NOTE THESE ARE PROOF OF CONCEPT*
*I know they have visual issues!*
As you can see, lots of glitches![Stick out tongue :p :p](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Here are some more (even more glitches!)
Could you do screen space reflections.
Well, I'll get to the point: You can!
My implementation is hacky, nasty, buggy and - well - ugly. But it proves it's a workable technique.
Basically, it works like this:
For each pixel, you have position/normal. Given the vector to the pixel, you can work out the reflection vector from the surface normal.
So... Then it's a matter of taking that reflection vector and sample it at a bunch of intelligent points.
Work out where those samples project to into screen space.
For each sample, check it's depth, if the depth is closer than the sample point - then the reflection ray has impacted some screen space geometry.
Yay! Simple. Slow, but simple.
I'm sure there are a zillion ways it could be optimised.
Anywho. Here are some proof of concept pics:
*NOTE THESE ARE PROOF OF CONCEPT*
*I know they have visual issues!*
![ref2.jpg](http://hungryspoon.com/random/ref/ref2.jpg)
As you can see, lots of glitches
Here are some more (even more glitches!)
![ref4.jpg](http://hungryspoon.com/random/ref/ref4.jpg)
![ref0.jpg](http://hungryspoon.com/random/ref/ref0.jpg)