Hey guys, just got done making this video to show off a new material surface. The surface uses the rendered scene (basically a screenshot) to produce reflections per-frame. The video explains it better.
[ame=
http://www.youtube.com/watch?v=hRVLWIMOPlo]Kazeohin-SSFR Demonstration[/ame]

---^^The material in its basic form

---^^Medium quality showing some great Anti-Aliasing

---^^high quality really goes all-out to provide an awesome visual.
What do you think? Useful? Useless?
Replies
Silly me, I forgot the Polycount forums have not seen all my WIPs that I posted on the Epic Games forum, so obviously you would not have seen just the reflection effect. Here is a fresh screen-grab.
Also, aren't refractions supposed to be upside down or U inverted most of the time?
How did you avoid that if you don't mind me asking?
As soon as I find enough webhost mirrors, I'm going to be making public a whole BUNCH of my shaders. Any volunteers?
How does your SSFR method differ from the SSR feature in the Dx11 update for Crysis 2 -- Which BTW, oddly enough, also worked just fine in DX9 mode -- and subsequent CrySDK builds? (Except the last 2 versions in which SSR was dropped from DX9 mode)
Why yes, that is my voice. Now for everything I type here, imagine it in my voice.
The SSR in the cryengine is raytrace-based and is performed as a hybrid compute/pixel shader. My own SSFR is purely a pixel shader. It is not 100% accurate, it is however 100% awesome. Cryengine's SSR is designed for large, flat surfaces wheras my own shader is more for organic, rounded meshes.
Anyways, on topic : It would be great to see the effect applied to a sphere and a cube with soft corners, just for the sake of seing how far it holds. The fireplace shot looks extremely convincing, very cool stuff. Considering it is screen space, do you end up with the object reflecting on itself ?
(I love that kind of trick ... I find myself applying a fake, handpainted photo studio cubemap to a lot of materials regardless of the environment, as it give that instant product design look and it's super cheap. Now your shader takes it way further thats for sure!)
Ho god, I hear you voice now.
Interesting. I find that Cryengine's SSR works pretty similar in both cases, by which I mean it's not that great in either. :poly124:
It seems to me that their SSR method doesn't have a very far reach, even if the source pixels that should be reflected are within screenspace. It may be that their method has a maximum cutoff distance for reflections, IIRC they said this is because it would otherwise be too expensive to trace. On the other hand, they do blend the SSR on top of the standard cubemap reflections, on the fresnel angles, so that angles that cannot be reflected with SSR still have some specular component. In addition, I think the latest build of CrySDK even supports blurring the SSR reflections (In DX11 mode only) to take glossiness into account as they do with Cubemap mip-levels.
IDK for sure though, as I only have a DX10 card and I can't test it.
Does your method have any similar features or overcome any of these limitations? Could it be applied as a post proccess so that it can be cheaply applied to all materials, as it is in Cry3?
How big are the files you want to host? You are more than welcome to post it on my forums. I think it's limited to 50mb or around there, though.
http://www.imbuefx.com/forum-wp
Oh, but there IS. I just havn't shown that particular aspect. With the right settings, you can make the surface look metallic.
Anyways, this looks and sounds awesome, keep up the great work...
When I first played with the idea back when I was looking to add it to my Audio Royalle map, I called it the 'clearcoat post-process' and it was applied to the entire scene. The only problem was that there was no way to controll it in a deferred layer, per-se. So I've repurposed it as a surface-specific effect. Would it be more efficient as a post-process? Most likely. Do I know HLSL in order to make that work? Definitely not, unfortunately.
Screen-space refers to the fact that no additional assets are required other than the scene texture and various surface vectors.