5Major Challenges in Real-Time Rendering
- Porting Source to Linux: Valve's Lessons Learned
- Rendering in Killzone: Shadow Fall at Digital Dragons
Around 2.5 years ago there was a presentation on SIGGRAPH 2010 called 5 Major Challenges in Interactive Rendering. Recently I noticed a refreshed version of this presentation. It appears that we still have the same problems with graphics rendering to solve.
Now... take one issue at a time and solve it :)
Porting Source to Linux: Valve's Lessons Learned
- Interesting parts, about OpenGL starts from the slide 19 (or even 28)
- I like the sentence "Reading specs will make you more powerful than you can possibly imagine". Indeed by just reading OpenGL spec you can get a lot of knowledge. Unfortunately it cannot be read that much easily as other OpenGL tutorials/books.
Useful extensions, functions:
- EXT_direct_state_access - a lot of people complain that this extension is still not in Core. This is driver extension only, hardware is irrelevant.
- EXT_swap_interval - I did not know that Carmack requested its "own" extension to this extension - swapcontrol_tear
- ARB_debug_output - must have for "modern" OpenGL programming.
- ARB_texture_storage - manage all levels of a texture and make it more consistent. This can lower overhead in drivers.
- ARB_sampler_objects - header for texture ware combined with the data, now header can be used separate
- glBindMultiTextureEXT - quicker way to bind texture to particular texture unit
- ARB_vertex_attrib_binding - better than VAO?
- glNamedBufferDataEXT - nice feature from direct_state_access
- Watch out for driver serialization - use with care: glGet, glGetError, functions that return a value from the pipeline
- Do not use MapBuffer - causes CPU-GPU serialization!
Rendering in Killzone: Shadow Fall at Digital Dragons
In the mid of April there was an interesting gamedev conference in Cracow. It is called DigitalDragons. I could not be there unfortunately, but I managed to get one presentation out of it. It was presented by my colleague from studies: Michał Drobot who is a Senior Tech Programmer at Guerrilla Games.
Here are some major points from his presentation:
- Physical Based Lighting (PBI) as an improvement not only for the rendering quality but for the reducing cost of making new assets as well.
- Specular Component is most important part of the lighting equation. It can greatly improve quality of the scene. It is very important to use this component right in the pipeline.
- In the presentation there is a nice part of theory: Image Based Lighting, BRDF, real life examples, Fresnel [p. Frenel] Effect, how to model materials like metals, light flux, reflections, attenuation.
- They decoupled material response and light models. You can take a material and put it into several different environment and they will look good. Previously they used prebaked solution.
- Movie style of production and resource pipeline.
- Are we going to see a new style of making assets? Are we ready for it?
- Support for area lights! Artists like to think in terms of area lights not point lights.
- Cost of area light is 10...15% higher than the cost of one point light. I am waiting for some more documents from Guerrilla about this topic.
- Real time ray tracing for reflections? hmm...
- Presentation is super fast, with a lot of content... be prepared! :) All in all it was very impressive!