Realtime reflections in Killzone Shadow Fall

ultragpu

Banned
This is from Digital Dragons 2013 event where Guerrilla Games held a presentation for Killzone SHadow Fall, in which Michael Drobot talked a few details on the lighting model in KZ SF.

So from what I can understand, there's a ray-tracing pass for real time reflection which subsequently leads to multiple bounces of reflections (holy sh*t talk about over doing). Apparently there's also GI bounce so there must be some kind of screenspace GI or something. I might have missed a few things too due to the guy wasn't speaking clearly or my lack of technical knowledge, I'm sure some of you here would pick up more from this clip. I know people have done ray tracing in Quake 4 or Wolfenstein but not in a game such as Killzone SF's caliber, pretty interesting stuff I must say:).

Mod: Full presentation
 
Do Sony first party studios generally do any engine sharing? Naughty Dog and GG titles both look great, but I honestly don't know if they have any asset sharing amongst them.

edit: slide
ioFqy6M.jpg
 
Last edited by a moderator:
Its ray tracing against the framebuffers, nothing new, the same idea behind the reflections in DX11 Crysis 2, and the water reflections of Crysis 3 on all platforms. Its a screen-space effect so not nearly as costly as actual full scene ray tracing against full geometry, and consequentlly it´s also much less robust and more artifact prone. Many people had noticed it already since the first gameplay demo. It´s very good to see the dev´s more in-deapth description of it though, but there is no groundbreaking news here. This is going to be very comon this gen, as epic has already confirmed that UE4 is also employing it in the infiltrator demo.
 
This is from Digital Dragons 2013 event where Guerrilla Games held a presentation for Killzone SHadow Fall, in which Michael Drobot talked a few details on the lighting model in KZ SF.

So from what I can understand, there's a ray-tracing pass for real time reflection which subsequently leads to multiple bounces of reflections (holy sh*t talk about over doing). Apparently there's also GI bounce so there must be some kind of screenspace GI or something. I might have missed a few things too due to the guy wasn't speaking clearly or my lack of technical knowledge, I'm sure some of you here would pick up more from this clip. I know people have done ray tracing in Quake 4 or Wolfenstein but not in a game such as Killzone SF's caliber, pretty interesting stuff I must say:).

Crysis 2 and 3 already did this.
 
Do Sony first party studios generally do any engine sharing? Naughty Dog and GG titles both look great, but I honestly don't know if they have any asset sharing amongst them.

No they all use different technology, though obviously they do talk to each other.
 
Do Sony first party studios generally do any engine sharing? Naughty Dog and GG titles both look great, but I honestly don't know if they have any asset sharing amongst them.

edit: slide
ioFqy6M.jpg

ND and Insomniac shared tech, even though technically Insomniac is 100% independent from Sony.
 
From my very limited understanding, the technique basically involves ray-marching into the Gbuffer of a deferred renderer. Thus why it is limited to screen-space and much cheaper than ray-tracing into the scene geometry, as others have stated. I've been reading up on SS Reflections/Real-time Local Reflections recently. I'm trying to understand it better with it becoming such a common effect; it's like the new SSAO. Anyway, here are a few of the things I stumbled across.

The 2nd post, "Chapter 2: What's up with Screen-Space Realtime Reflections?", in the link below shows CryEngine 3's implementation and does a good job of illustrating the limitations of the technique.
http://www.crydev.net/viewtopic.php?p=800717

Here's a video of someone's implementation in Unity
http://www.youtube.com/watch?v=Q0xsL5DpwDA

Also, our own Graham from B3D experimented with the concept. (and explained it from a more technical perspective than me :smile:)
http://beyond3d.com/showthread.php?t=56095
 
Last edited by a moderator:
Yup. I don't think the term ray tracing is really appropriate here. It's likely an iterative method trying to find an approximate impact point at a number of samples along the reflection ray - likely with a short refinement step too (ray marching? I forget the exact term). Whereas I've always associated ray tracing with finding an exact impact point mathematically.

That is how I'd implemented my original mockup - take X samples along the ray, find the most likely first impact, then do X refinement samples to improve the approximation.

I imagine it'll be a popular technique. And you might even see a much cheaper variation of it cropping up in an rather unexpected place ;) :mrgreen:
 
Yup. I don't think the term ray tracing is really appropriate here. It's likely an iterative method trying to find an approximate impact point at a number of samples along the reflection ray - likely with a short refinement step too (ray marching? I forget the exact term). Whereas I've always associated ray tracing with finding an exact impact point mathematically.

That is how I'd implemented my original mockup - take X samples along the ray, find the most likely first impact, then do X refinement samples to improve the approximation.

I imagine it'll be a popular technique. And you might even see a much cheaper variation of it cropping up in an rather unexpected place ;) :mrgreen:

Wii U?
 
Yup. I don't think the term ray tracing is really appropriate here. It's likely an iterative method trying to find an approximate impact point at a number of samples along the reflection ray - likely with a short refinement step too (ray marching? I forget the exact term). Whereas I've always associated ray tracing with finding an exact impact point mathematically.
I guess technically ray tracing is simply a mathematical solution to a ray intersect, but I think in general use the term is used to evaluate any 'ray' property that considers some evaluation along a straight line. I suppose that's sort of fair, in the same way we talk about GI approximations as GI in games, despite them being a long way from actually being GI! But it is definitely misleading when the idea of a ray-based renderer, the wonderful future tech of tomorrow-land, is being talked about in use now. Without a reason to develop some new naming convention for non-intersect straight line evaluations and whatever approximations and shortcuts there are, I expect the confusion to escalate.
 
I guess technically ray tracing is simply a mathematical solution to a ray intersect, but I think in general use the term is used to evaluate any 'ray' property that considers some evaluation along a straight line. I suppose that's sort of fair, in the same way we talk about GI approximations as GI in games, despite them being a long way from actually being GI! But it is definitely misleading when the idea of a ray-based renderer, the wonderful future tech of tomorrow-land, is being talked about in use now. Without a reason to develop some new naming convention for non-intersect straight line evaluations and whatever approximations and shortcuts there are, I expect the confusion to escalate.

Not to go off topic but of memory, I remember that the old Nvidia Medusa tech demo used some form of ray tracing.
 
I guess technically ray tracing is simply a mathematical solution to a ray intersect, but I think in general use the term is used to evaluate any 'ray' property that considers some evaluation along a straight line. I suppose that's sort of fair, in the same way we talk about GI approximations as GI in games, despite them being a long way from actually being GI! But it is definitely misleading when the idea of a ray-based renderer, the wonderful future tech of tomorrow-land, is being talked about in use now. Without a reason to develop some new naming convention for non-intersect straight line evaluations and whatever approximations and shortcuts there are, I expect the confusion to escalate.

I am happy we are getting these approximations and blends of technology/software that blur the lines between the harder definitions though.

To me it seems that developers are getting creative in finding ways to get real world applications of known functions, which to me is a better way of saying "approximation" :)

If there is a graying of the definition of raytracing in the future, hopefully that implies many more solutions ready for real-time applications of the same or different use, situation specific or not, are being created.
 
I am happy we are getting these approximations and blends of technology/software that blur the lines between the harder definitions though.

To me it seems that developers are getting creative in finding ways to get real world applications of known functions, which to me is a better way of saying "approximation" :)

If there is a graying of the definition of raytracing in the future, hopefully that implies many more solutions ready for real-time applications of the same or different use, situation specific or not, are being created.
Sure, but they should call them something like "directional evaluations" or something to differentiate from iterative "ray tracing". I'd say it's a bit like calling stir-frying "deep-fat frying" - "we have deep fat fried your sweat and sour chicken and vegetables in yellow bean sauce" meaning "we have applied heat and oil, but not actually immersed your food in boiling fat as the term deep-fat fried really means."
 
I suppose that's sort of fair, in the same way we talk about GI approximations as GI in games, despite them being a long way from actually being GI!

Well, the established term for the technique is ray marching, or sometimes ray casting, though I personally think that'd not be the appropriate term. That is sampling the ray at lattice intervals - hence the "march", the "step" - instead of continuous or parametric evaluation of the ray. Though for speed these algorithms undersample, which makes then appoximate (or undersamped) ray marching techniques. If one could use that word it'd be nice, and it would be clear they belong into the same class as POM and SSAO and a lot others.
But I have the impression tech-marketing starts to learn from the pharmaceutic market ...
 
Back
Top