Behold, Glorious 320×240 Resolution!

Here’s a demo that actually starting to resemble a video game. But it’s running at 320×240 and pushing about 10,000 triangles per frame per second. So I’m getting between 20 to 32 frames per second. The irony is the demo itself is captured at 60 fps and you can tell by how smooth it flows, which is how it looks live. I tried to capture it like how it plays in realtime.

SDXM 3D Engine Progress LOL

Been developing this thing for a long, long, long time in Qt c++, folks. It’s very fast and optimized. Can’t get vertex array buffering to work on the GPU, but whatevs. I know how to c++ and deal with pointers and memory management and shit, but Qt 4.8 does have it’s limitations. CPU is quite powerful anyway, giving promising results. 800,000 to 1,000,000 polygons per second isn’t that bad, folks. It’s still a long ways yet until production ready. But all the very basic elements are there.

3D Graphics Performance Optimization Techniques

Although the tips in the following link are only concerning DirectX9, it may still be useful in Qt:

https://msdn.microsoft.com/en-us/library/windows/desktop/bb147263(v=vs.85).aspx

Notably:

  • Only redraw to the image buffer when you need to
  • Use smaller textures
  • Draw objects from front to back
  • Constantly test your code’s performance
  • Use one large array/buffer of vertices
  • Draw only what needs to be drawn, so culling and z-ordering can only help more

The ideal is to get a higher framerate which is perceivably better experience for the user. For 2D graphics, 16 frames per second is satisfactory. But for 3D graphics, 30 frames per second seems to be tolerable, but 60 frames per second is the minimal. But if you’re just learning 3D graphics programming, don’t worry about frames per second, just worry about the geometry and math to make sure it is correct. Then you can optimize it when you’re confident you understand how it all works.