holland01 / YAQ3R

view a (I)BSP map!
Other
6 stars 1 forks source link

Performance #6

Open holland01 opened 8 years ago

holland01 commented 8 years ago

A lot of the desired features will be pointless to implement if the renderer performs poorly.

While a release build will be significantly optimized when compared to a debug build, the debug build will be tested more often than the release build, since it contains debugging information. A reasonable performing debug build which can hit 60 FPS should be the bare minimum.

So far, there's been an ~12 MB decrease which was set apart by:

This is good, but there are still bottlenecks which are most likely due to the following:

holland01 commented 8 years ago

Things to think about:

surfA->face0: draw
surfA->face1: draw
surfB->face0: draw

The problem with this is that the grouping is not dependent on any particular draw order, but is more dependent on the following parameters:

* The shader of the face
* the texture of the face
* the lightmap of the face
* the type of the face

While these are all useful, they do not quite cut it because there is nothing in there which will group faces into a surface such that they result in having the intended order of discovery. In other words, if: face0, face1, and face2 are found in their respective order, we could potentially draw face1 and face2 before face0, because the surface might group face1 and face2 together, when in reality face1 is far closer to face0 and should be grouped based on that.

So, you need a better heuristic.

holland01 commented 8 years ago

List of simple improvements