There is two modes in Warp3D to draw 3D :
- the direct mode,
- and the indirect mode.
In direct mode, Warp3D really draws whenever a drawing function is called.
In indirect mode, Warp3D keeps in queue what to draw and executes it :
In indirect mode, Warp3D keeps in queue what to draw and executes it :
- during a W3D_Flush,
- when the queue is full,
- when indirect mode comes back manually with W3D_SetSate.
After some tests, indirect mode gives better results for small objects.
On the other side, after a number of triangles to draw, the indirect
mode gives the same results than the direct mode with our current
versions of Warp3D.
Alain Thellier has had a good idea to recompile an indirect version of StarShipW3D and CavalleryW3D (available in the "Download" section), and the results are indeed very interresting with my new beta versions of Warp3D and my GRex 1200 (Config 2).
StarShipW3D with 170 triangles in indirect mode :
Alain Thellier has had a good idea to recompile an indirect version of StarShipW3D and CavalleryW3D (available in the "Download" section), and the results are indeed very interresting with my new beta versions of Warp3D and my GRex 1200 (Config 2).
StarShipW3D with 170 triangles in indirect mode :
While in direct mode :
Now CavalleryW3D with 1090 triangles gives the same results in the two modes, the limit which I was talking about is reached :
With my Config 1, I get :
- StarShipW3D indirect : 225 fps
- StarShipW3D direct : 167 fps
- CavalleryW3D indirect : 43 fps
- CavalleryW3D direct : 43 fps
We have yet a lot of things to understand on Warp3D operations and 3dfx cards with our Amiga....
(translated by Squaley)