Saturday, October 15, 2011

Practical DX11, What It Does, and What It Means

As we all know, the current generation of Microsoft's ubiquitous and ambiguous DirectX runtime is DX11. Just to make that sound less like techno-babble designed to keep software engineers in a job, DirectX is the overall software package for handling graphics in Windows. (There's also some sound stuff, but that's outside the scope of this article.) Since DirectX includes features for 3D gaming, it can be kind of important to gamers and enthusiasts to have hardware supporting at least recent versions.

Most games right now, mind you, only require DX9 to play, due to the red-headed step brother, consoles. DX10, well, yeah, that got released at some point, and did some stuff, and nobody really gave a shit. DX11, on the other hand, has this wonky tessellation, which mostly sounds like it fell out of a science fiction novel, possibly as some really painful way to die.

Basically, to explain the portions of tessellation that really made sense beyond "ooh shiny" without two or three different degrees in graphics design, software, and who knows what else, it's just a different way of representing shapes. Tessellation, roughly, lets you break shapes down into smaller shapes. The primary use for it is for smoothing out certain kinds of detail.

Roughly, tessellation breaks shapes down into tiny triangles, letting you make what's called a displacement map. To make this make sense, do you remember the little plexiglass box toy with a whole lot of pins that could slide up and down, so when you set it on top of something, from the top it would be a 3-D representation of the object?

Roughly, this is what the displacement mapping does in 3-D rendering. Not specifically, but it lets you take a shape, and break it down into smaller shapes that can be worked with like this. That way, as you get closer to something, it can render it's way toward a model, instead of trying to render all the models and textures in full detail all the way out to max viewing distance.

I hope this makes some sense, this is all sounding smarter in my head than it looks once I type it, but I can't decide if lack of caffeine is affecting my reading or my writing. Maybe I'm just crazy. Or all of the above.




Don't get me wrong, this is a very basic and generalized explanation, which by nature will be somewhat wonky. If you want to read the fancy version, you can check it out here.

Ok, so, here's the question, what's this mean for me? Smoother textures and better poly mapping, making things look better all around, for starters. Pretty simple, and nice. The second major thing you'll see out of it is textures being able to look good close in without soaking up a ton of GPU resources at a long distance. No, this doesn't sound huge, but what it does is allow an increased view distance, since it can avoid rendering so much at a distance, meaning less stuff pops out of thin air.

I hope this has cleared this up reasonably well for some people, I know it's not that useful for some, but understanding graphics can help you understand what sort of system you personally need for the graphics quality you desire. I'm hoping to do some other similar ones over the next few days, so stay tuned.

No comments:

Post a Comment