Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 26 Apr 2007
Offline Last Active Sep 15 2014 03:28 AM

Posts I've Made

In Topic: Why are their bumps in my shadow mapping?

28 August 2014 - 05:32 AM

The rounded edges are due to your shadow filtering, perhaps try D3D11_FILTER_MIN_MAG_MIP_POINT for your filter.

In Topic: fuzzy fonts

26 January 2014 - 01:50 AM

If you're using bilinear filtering (or any kind of filtering), turn it off and just use nearest/point filtering instead and see if that looks crisper.

In Topic: Simple shadow map antialiasing?

11 May 2013 - 05:34 PM

There was a similar one with a cute name like "fixies", or something, but I can't recall.


Smoothies?  More of a soft shadow technique though.  http://people.csail.mit.edu/ericchan/papers/smoothie/

In Topic: DX11 - Swap Chain - Slow Engine

11 May 2013 - 05:29 PM

SSAO and god rays can be very pixel heavy effects and I'm guessing you're doing them at full resolution (1920x1080).  Even full screen blurs can put a fair amount of pressure on fill rate at high resolutions.  When you take into account that more than likely every one of your branches is being evaluated even if the conditions are false, this could be adding up to make a very expensive shader.


A lot of these effects are rendered to smaller render targets, such as something like 1/4 size of the backbuffer (experiment with the size to get a good image quality vs. performance trade off).  And as mentioned above, even though it's 2013 we still really need to be using the preprocessor for our branches rather than if statements.  My recommendation would be render SSAO to a small target by itself, then god rays to another small target by themselves, then have your big post process shader at the end composite those effects along with blurs and distortion etc. using #defines to turn effects on and off as needed.

In Topic: How do you benchmark your game?

30 March 2013 - 12:01 AM

Speaking of profiling and performance tracking, riting your own lightweight profiler is a great way to keep on top of how different bits of your game are performing.  You set it to run per-frame and record timings for various bits of code.  This is valuable for knowing where to look when you get performance drops during development - you might think the hit may be coming from what you're working on, but another part of the code has been affected.


A good example/tutorial is here:



I wrap certain functions up (culling, physics update, particles update, game code update, rendering, etc etc) in a profiling event and output a colour coded graph so I can quickly see what's going on.  No where near as fine grained as a proper profiler but I feel it's much more useful!