Next-Gen Lighting Is Pushing the Limits of Realism
kotaku.com
kotaku.com
This is just Physically-based shading basically, which has been done for the past 4/5 years in VFX. Essentially it's energy-conserving materials with the correct fresnel effect based on the surface's IOR which takes things to the next level (for games at least). Doing this properly for layered surfaces (e.g. diffuse wood layer with a clearcoat varnish layer) gives very nice looking results.
Some complex materials can have up to 3 spectral BSDF lobes for reflection, which can only really be done with pathtracing.
For VFX, people are starting to push into spectral rendering now, and trying to optimise things like volumetric rendering for things like SSS which are needed for ultimate realism.
- VFX is just "visual effects", http://en.wikipedia.org/wiki/Visual_effects.
- Fresnel might be a reference to "Fresnel refraction", http://en.wikipedia.org/wiki/Fresnel_diffraction.
- IOR is of course "index of refraction", http://en.wikipedia.org/wiki/Refractive_index.
- BSDF references "bi-directional scattering distribution functions", http://en.wikipedia.org/wiki/Bidirectional_scattering_distri....
- Path tracing is a Monte Carlo method of rendering images with global illumination, http://en.wikipedia.org/wiki/Path_tracing.
- SSS means "sub-surface scattering", http://en.wikipedia.org/wiki/Subsurface_scattering.
Fresnel also effects just reflection as well - it's the reason you don't often (depending on the material) see much of a reflection head-on on a shiny surface, but do at a glancing angle (glass or car paint for example).
Ah! I've noticed shiny things in real life that made me think "if I saw this in a game, I would think the reflection was overdone." I think what you've mentioned there is the key. The reflections I remember from early 2000s video games seem overdone because they're reflective at all angles. In real life, the shiny marble floor is only really mirror-like at shallow angles, when looking head-on it only appears glossy.
For those who are interested but new to this, some of the earlier global illumination stuff is a good place to start for the fundamental ideas, because they aren't concerned so much with fast paths in the rendering architectures.
Your graphics package physically simulates the light, gamedevs simply try to emulate what would happen were it physically simulated.
PBR has been done before UE4 (The latest CoD has it and I think Frostbite 3). I don't think PBR is directly responsible for what you are seeing in UE4 (it certainly adds to it), it's likely using more recent developments such as deep GBuffers (http://graphics.cs.williams.edu/papers/DeepGBuffer13/).
Gamedevs want to be able to do what you guys do in VFX, but we can't because we have the realtime restriction. We takes leaps like this when we figure out how to do fast approximations of what you guys are doing (and deep GBuffers are such a leap).
Although strictly speaking a lot of VFX rendering is still about how much you can fake stuff, although it is a lot more real (as in done in the renderer instead of at comp stage) than it was 5/6 years ago.
The siggraph physically based shading course is a great resource if you're interested in the techniques people are using in production.
2012 - http://blog.selfshadow.com/publications/s2012-shading-course...
2013 - http://blog.selfshadow.com/publications/s2013-shading-course...
2014 (not yet available) - http://blog.selfshadow.com/publications/s2014-shading-course...
What I'm really interested in with things like the Rift is foveated rendering, in order to get much higher quality graphics out of less computing power. Basically, using high precision fast eye-tracking to only render the portion of the screen your looking directly at, since your eye can't resolve detail to any great degree outside of a fairly small area in the center of where you're looking.
Foveated imaging in general: http://en.wikipedia.org/wiki/Foveated_imaging MS Research paper on foveated rendering: http://research.microsoft.com/pubs/176610/foveated_final15.p... MS trial on foveated rendering: http://research.microsoft.com/pubs/176610/userstudy07.pdf
The MS paper achieved some nice results using a 120 Hz screen and a very fast tracker, but the rift is far from that.
It's interesting, but comes with all kind of issues aside from delay (periphery degradation strategy). I've been trying to adapt shadow mappin to foveation and latency is killing it. Especially since shadows are high contrast information, quality popping and self shadow flicks are so distracting.
I can imagine the popping would be that much more painful in a VR environment. Game stutters that my brain largely tunes out on a normal monitor become world rocking cataclysmic events in the rift.
You naturally end up with fewer samples in places that don't matter, and faster fill-in where they do.
You could have one low-resolution GPU (such as an onboard Intel HD) and another focusing solely on rendering the foevated patch.
5ms per 320x240 section might not be implausible?
That said, I don't think there's theoretical limitations that prevent extremely low latency systems from happening, it's just not something we've kept in mind when designing modern consumer hardware.
If they ever get it ironed out, it seems like the kind of thing that could offer pretty huge advantages for gaming, if just one person is looking at the screen (I have no idea if anyone's considering multiple sets of eyes to track or if that introduces particularly novel problems that wouldn't be covered in solving the single set of eyes)
Wondering what the complications would be...
[1]http://hof.povray.org [2]http://hof.povray.org/images/ChristmasBaubles.jpg
> is that video was rendered real time?
> Yep (well, the lightmaps are pre rendered but it take like 10 min. In engine, it runs at 50-60fps on a gtx670)
[1] https://forums.unrealengine.com/showthread.php?28163-ArchViz...
It was the German Pavilion for the 1929 International Exposition in Barcelona. https://en.wikipedia.org/wiki/Barcelona_Pavilion
You'll probably find there is a lot more rendered than you expected.
I ran a gaming startup in the days of Quake. It has really never been easier or cheaper to acquire access to incredible tools, learning material, and technology to get into the 3D space (whether for gaming or whatever).
Easy enough to at least download the Unreal 4 engine and begin messing around with it, to see exactly how deep your curiosity goes. You'd find out quickly if it's something you're really interested in.
Every time I see the Unreal 4 engine on display it tempts me to get back into it all (I'd go toward VR now).
Where you got the idea that a wall is not perfectly straight? You mean some marginal differences in curvature that the human eye cannot distinguish from a straight line anyway?
That would be trivial to mimic in a 3D renderging anyway, literaly just a modelling command away.
I'll have to agree with TFA that it's the lighting and textures that give away 3D renderings.
Regarding walls (and edges in general) not being perfectly straight, apart from what I learned from my engineering studies, I've done my fair share of home repairs :)
http://www.businessweek.com/stories/2007-12-21/unreal-archit...
These are just pre-rendered textures and light maps combined with real time lighting and reflections in Unreal Engine 4.
But I agree that UE4 does a very very good job at realistic real time lighting! Also take a look at the blog of Paul Mader: http://paulmader.blogspot.nl/
[1] http://www.cgsociety.org/index.php/CGSFeatures/CGSFeatureSpe...
https://www.youtube.com/watch?v=rOkJ1-vnh-s
It somehow looks like it would be dynamic diffuse indirect lighting. Wouldn’t that need to be pre-rendered for each position of the sun then? Or it’s just really good use of shadow maps, ambient occlusion and screen-space specular reflection:
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Po...
Edit: This particular scene uses light propagation volumes, in the other scenes it’s UE’s pre-computed (hence static) Lightmass GI, as parent comment said.
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Li...
https://docs.unrealengine.com/latest/INT/Engine/Rendering/Li...
Why don't they add a very cheap real time renderer that produces fast and high resolution images and later add the low resolution output from that path tracker? I guess that would make noise a lot less distracting, as there where no black pixels anymore.
The filter_indirect in this demo does exactly that.
Now I've got a reason to look through it and check the pictures if I can spot the CG (but judging from that article, and their high quality standards, I kind of doubt I could).
Detailed in the thread - https://forums.unrealengine.com/showthread.php?28163-ArchViz...
Very pretty though still!
> is that video was rendered real time?
> Yep (well, the lightmaps are pre rendered but it take like 10 min. In engine, it runs at 50-60fps on a gtx670)
So, if I understand correctly, that's 10 minutes for some "lightmaps prerendering", but then "real time scenes rendering"? But I'm totally not into rendering, so sorry if that's what you meant, and if that's something obvious I'm just missing.
[1]: https://forums.unrealengine.com/showthread.php?28163-ArchViz...
Baking = compilation of game assets Lightmap = object file for lighting
(Prerendering lightmaps is typical for games for scenes with static lighting.)
But yes, Blood Soaked Shoot-em-Up 93x-treme is going to look very realistic. It will be almost as if I was really invading Iraq!