Ticket #419 (closed enhancement: fixed)

Opened 8 years ago

Last modified 8 years ago

Improve Instance culling technique using a quadtree or something similar

Reported by: prock Owned by: FIFE
Priority: highest Milestone: 0.3.2
Component: engine/core/view Version: trunk
Severity: major Keywords: view, performance, framerate
Cc: klaus.blindert@… Blocked By:
Blocking: Time planned:
Time remaining: Time spent:

Description

The more instances you have on a map the more the framerate suffers. We need to implement a new culling technique to sort and cull instances that do not exist in the view area.

Discussions and a profile can be found here: http://forums.parpg.net/index.php?topic=570.0 and some more discussions here: http://logs.unknown-horizons.org/%23fife/%23fife.2009-Wed-22.log

FIFE currently uses a quadtree to sort instances for instance selection. Why not make use of the quadtree for rendering also? Perhaps a new data structure is in order.

Change History

comment:1 Changed 8 years ago by phoku

I was working on that one.

Solution is inside the view_performance branch.

Using QuadTree? to spatially sort the onscreen images:

http://fife.trac.cvsdude.com/engine/browser/branches/active/view_performance/engine/core/view/layercache.cpp

Using it from the Camera:

http://fife.trac.cvsdude.com/engine/browser/branches/active/view_performance/engine/core/view/camera.cpp

Things get messy with zooming+rotation though, so it's not finished.

comment:2 Changed 8 years ago by phoku

  • Cc klaus.blindert@… added

comment:3 Changed 8 years ago by helios2000

  • Status changed from new to closed
  • Resolution set to fixed

(In [3287]) * Merged the view performance branch back into trunk. closes #419

Note: See TracTickets for help on using tickets.