Google-apps
Hoofdmenu

Post a Comment On: C0DE517E

"Never Again in Graphics: Unforgivable graphic curses."

9 Comments -

1 – 9 of 9
Blogger ingramb said...

> Lack of self-occlusion.
This sounds interesting, but I'm not sure what you mean. Do you have more information?

Thanks.

December 13, 2013 at 5:28 PM

Blogger DEADC0DE said...

Added a link (even if that talks of a SS method, not precomputed on meshes) and some more description to the post.

December 13, 2013 at 5:48 PM

Blogger Ash said...

I have been away from the latest in real-time rendering for the past few years, so as a follow up to this post, I would appreciate it if you could do a writeup on rendering techniques you would consider a must for upcoming games / engines. For instance which splitting, warping and filtering you suggest for shadow mapping, or what variation of screen space ambient occlusion you prefer or which tone mapping operator you like best, and so on and so forth.

Thanks.

December 13, 2013 at 7:11 PM

Blogger DEADC0DE said...

Mah the thing is most good stuff lasts, it's reasonable and always will be, just different goals and compromises...

That's why what I mention in the article are basically common "bugs", not really techniques.

That said, there are a few things that are almost always a safe choice...

If you want to look around for a few modern concepts in game engines, search for these

- Shadows: stable cascaded shadowmaps (CSM), the latest cool is Intel's sample distribution shadowmaps (SDSM) maybe with EVSM for filtering

- SSAO: McGuire's Alchemy AO and Line Sampling from the paper "Volumetric Obscurance"

- Shading: Physically based, GGX (Walter BRDF) you'll find a lot of info from Siggraph 2013

- Lighting: tiled deferred or tiled forward (forward plus), AMD and Intel have code samples

- Culling and visibility: rasterized occlusion culling (Intel has samples), maybe using voxelization or planar sections to automaticaly derive occluders... Reprojection of previous frame zbuffer also works, Crysis did present that at the past GDC iirc

Well, this should keep you busy... You can look at presentations from Crytek, Epic's Unreal, EA|Dice's Frostbite, Amd and Intel and you'll have a good idea of many of the things that go into a modern engine.

December 13, 2013 at 8:17 PM

Anonymous eXile said...

Looking at the list, as a matter of fact, one must admit that many things aren't zero cost.

About the first point -- "Lack of self-occlusion": You probably still need to store the original normals additionally to the blended normals? Otherwise I do not see any way to evaluate a specular BRDF correctly.

December 13, 2013 at 9:24 PM

Blogger DEADC0DE said...

Nope. You could store the original but even if you don't you'll see a huge improvement.

All these things are zero cost, even when they add some instructions, i.e. Ssao weighting is alu cost on something that will be texture bound...

December 13, 2013 at 10:44 PM

Anonymous opl said...

MJP had similiar list, though it has couple different ones:

http://mynameismjp.wordpress.com/2011/12/06/things-that-need-to-die/

December 14, 2013 at 1:09 AM

Blogger Bram said...

Pet peeve, mainly from fixed pipeline era:
For materials, ambient and diffuse colour should typically be the same value.
Often, you see diffuse colour set to e.g. 1,0,0 and ambient to 0.2,0,0 by which the designer tries to achieve a low ambient light.
However, this should be expressed in ambient light colour, not ambient material colour.

December 14, 2013 at 1:56 AM

Comment deleted

This comment has been removed by the author.

May 31, 2014 at 12:36 PM

You can use some HTML tags, such as <b>, <i>, <a>

Comment moderation has been enabled. All comments must be approved by the blog author.

You will be asked to sign in after submitting your comment.
Please prove you're not a robot