Results 1 to 10 of 13

Thread: Smoothening tile edges

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #10
    PGD Staff / News Reporter phibermon's Avatar
    Join Date
    Sep 2009
    Location
    England
    Posts
    524
    If the framerate is proportional (linear) to the number of tiles you render then that suggests that you are not using any spatial partitioning schemes to cull rendering to the visible hexagons?

    If you are you may want make sure it's functioning correctly.

    Can I ask what version of GL you code for, your CPU and GPU?

    12fps for a a screen of 2D triangles at the perceived density from your screenshots is well below what I'd expect from even mobile phone class hardware.

    If you're not using spatial partitioning, a quad tree should be perfectly good enough.

    The basic principal is to represent the bounds of the world as a quad, then divide that into four smaller quads, and add to each of these a list of hexegons in that quad. then keep on splitting and adding in this fashion until you reach some pre-defined minimum size (Say the size of one hex etc).

    Then when you render a frame, you test your screen quad against the top 'node' in the tree and determine which quadrant it's in, then you can immediatly bypass 3/4 of the hexes from render. Then test against the 4 child nodes of that quad etc etc

    Because of the squared nature of dividing the space by 4 each time, you reach the smallest nodes (leaf nodes) in just a small handful of checks. (obviously you test if the screen is inside a node OR overlapping the node, you may be itterating into more than one child node at a time, but it will beat brute force quite early on in a graph)

    (just for those reading if you already know this)

    EDIT : Apologies! I just saw you screenshot, you're zoomed right out so obviously spatial partitioning won't help there

    you could however render the map at a certain resoution to a texture and then switch to rendering that texture at a certain level of zoom. if you required the display to still show realtime changes on the map, you could stagger the updating of this renderbuffer texture over a number of frames (so as not to impact framerate). So you'd have good framerates when zoomed out in terms of the interface and any other things you wish to render at the cost of a lower percieved framerate for the rendered map.
    Last edited by phibermon; 28-04-2013 at 03:24 PM.
    When the moon hits your eye like a big pizza pie - that's an extinction level impact event.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •