Home Technical Talk

GPU Performance for Game Artists

http://fragmentbuffer.com/gpu-performance-for-game-artists/

New article, well worth a read!

Here's a blurb from the author:

I've worked with a lot of artists and tech artists who want to do more to improve framerate, but don't have a good enough understanding of the technical aspects of GPUs and optimization. I wrote this article to help them and anyone else who wants to get a basic understanding of how GPUs work, what affects performance, and what can be done to improve framerate when it comes to art content. Questions, comments etc. welcome!

Replies

  • radiancef0rge
    Offline / Send Message
    radiancef0rge ngon master
    Excellent article. 
  • radiancef0rge
    Offline / Send Message
    radiancef0rge ngon master
    Ideally you want the triangle to occupy a set of 2x2 pixels at its smallest like the image on the left in the grid was one grid size larger. If the triangle only occupies a sliver of pixels whose area is not a 2x2 square it causes overdraw like the image on the right. All red pixels are considered when drawn which causes the overdraw. Its most often an issue with poor or lack of LODs.
  • Eric Chadwick
    Long thin faces will cause this too. For example a curb on the side of a straight street... if it's not divided regularly, then it makes two very long thin triangles.
  • Daniel_Swing
    Offline / Send Message
    Daniel_Swing ngon master
    I haven't read the entire article yet, will defensively do so soon, though.
    Long thin faces will cause this too. For example a curb on the side of a straight street... if it's not divided regularly, then it makes two very long thin triangles.
    This is something I've been wondering for a long time. Do you actually mean that it's better to divide the curb into more polygons than to let it be two long, thin triangles? If so: to what degree? Would simply splitting them in 2 improve a lot or are square quads along the entire curb preferable?
    I'm assuming it really is a case-by-case basis, depending on how much dividing it up will increase the polycount.
  • ThePowFin
    Offline / Send Message
    ThePowFin polycounter lvl 5
    Some nice sunday reading, thanks!
  • Eric Chadwick
    Yep it all depends. Just spitballing here, but an aspect ratio of something like 8:1 might be a good length to limit quads to.
  • keithoconor
    This is something I've been wondering for a long time. Do you actually mean that it's better to divide the curb into more polygons than to let it be two long, thin triangles? If so: to what degree? Would simply splitting them in 2 improve a lot or are square quads along the entire curb preferable?
    I'm assuming it really is a case-by-case basis, depending on how much dividing it up will increase the polycount.
    That's probably something I should have made clearer in the article alright - I've added paragraph about it.

    Long thin triangles are actually bad for two reasons; being thin is bad for quad usage as I explained, but being long is also bad due to the rasterization patterns that GPUs use when processing geometry. Some good further details can be found here and here

    But then subdividing a lot to avoid this can produce more edges and so potentially lower quad efficiency and also increase vertex cost, so there's a happy medium in there somewhere. As you say, it's really a case-by-case basis - like a lot of these things, only experimenting and profiling can tell you which will work best in your case.

    But as long as your being reasonable about it and not producing razor-thin or really long triangles, I wouldn't sweat the details!
  • RyanB
    Great article.  My optimization experience has been mostly mobile but all of the same rules apply except your drawcalls are usually between 100 - 200.  I need to tear something apart with Renderdoc :)

  • Daniel_Swing
    Offline / Send Message
    Daniel_Swing ngon master
    Finally got time to read the entire thing. Really good stuff!
Sign In or Register to comment.