Wednesday, September 30, 2009

inline vs __forceinline

Don't ask compiler to do something. Force it!

inline:


__forceinline:

DirectX 11 tessellation samples

In the DirectX 11: Tessellation in Stalker: CoP, Dirt 2, Unigine and Alien vs. Predator article people mentioned that only our art sample really utilizes tessellation capabilities to improve image quality: "Only one that was a visually significant improvement was the displacement mapping on the roof. That should be a nice improvement over the various surface mapping techniques, bump, normal, POM, etc. that don't do nearly as good a job."

All hail our artists, who created that art asset! By the way, stay tuned for much more.

Monday, September 21, 2009

Fried meshes

* [20090930] Values for HD4870 and Direct3D11 are updated (it was a debug runtime:(

Huge crowd rendering can be accelerated by baking skinned meshes into static meshes in runtime. But there is no easy way to do it because of API and hardware limitations.

The scene consist of 49 characters and each character is rendered 6 times. Tables contain millions of polygons per second. There are no tests for low-level cards. But on such cards performance gain is very substantial. And there are no tests for OpenCL because of incomplete drivers.

The first two rows describe direct rendering of skinned meshes:
"Raw" is a single mesh per draw call.
"Inst" is multiple meshes per draw call.

The other rows describe different backing techniques:
"Raw" corresponds to backing single character per call between characters rendering.
"Inst" corresponds to backing 32 characters per call before characters rendering.

OpenGL:
PBO: works well on all cards but instancing is required.
FeedBack: requires DX10 level card and doesn't work on ATI cards now.
CUDA: requires NVIDIA DX10 level card. Also instancing is very important.

Direct3D9:
R2VB: is ok on ATI and NV40. But we can't use this technique with NVIDIA DX10 cards.
CUDA: same as CUDA under OpenGL.

Direct3D10:
StreamOut: there is absolutely no problem with this technique.
CUDA: same as CUDA under OpenGL.

Direct3D11:
StreamOut: same as StreamOut under Direct3D10.
DirectCompute: instancing is also very important on NVIDIA hardware.







Sunday, September 13, 2009

GDC Europe 2009

Some photos from our trip to GDC Europe 2009 and Gamescom, without lectures shots (clickable):



The route was Tomsk-Novosibirsk-Moscow-Munich-Cologne-Munich-Moscow-Novosibirsk-Tomsk, something about 10000 kilometers.

Tuesday, September 8, 2009

Ambient occlusion mk2.

Awesome ambient occlusion mk2.
* Improved emitter/receiver interaction.









Thursday, September 3, 2009

HDR pipeline

New shaft flare post effect.