lundi 12 août 2013

Direct / Indirect [eng]


There is two modes in Warp3D to draw 3D :
  1. the direct mode,
  2. 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 :
  • 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 :

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)
  

dimanche 11 août 2013

Direct / Indirect [fr]

Il existe dans Warp3D deux modes pour tracer de la 3D :
  1. le mode direct,
  2. et le mode indirect.
 
En mode direct, Warp3D trace vraiment chaque fois qu'une fonction de traçage est appelée.

En mode indirect, Warp3D garde une liste (ou plutôt "Queue" en anglais) de ce qu'il faut tracer et ne l'exécute alors que :
  • lors d'un W3D_Flush,
  • lorsque la liste est pleine,
  • lorsque le mode indirect revient manuellement avec W3D_SetSate.

Après quelques tests, le mode indirect donne de meilleurs résultats pour les petits objets. Par contre, après un certain nombre de triangles à dessiner, le mode indirect donne les même résultats que le mode direct avec nos versions actuelles de Warp3D.

Alain Thellier a eu la bonne idée de recompiler une version indirect de StarShipW3D et de CavalleryW3D (disponibles dans la rubrique "Download"), et les résultats sont en effet très intéressants avec mes nouvelles versions bêtas de Warp3D et mon GRex 1200 (Config 2).

StarShipW3D avec 170 triangles en mode indirect :

Alors que là en mode direct :
Maintenant CavalleryW3D avec 1090 triangles donne des résultats identiques dans les deux modes, la limite dont je parlais est atteinte :

Avec ma Config 1, j'obtiens :
  • StarShipW3D indirect : 225 fps
  • StarShipW3D direct : 167 fps
  • CavalleryW3D indirect : 43 fps
  • CavalleryW3D direct : 43 fps

Nous avons encore de nombreuses choses à comprendre sur le fonctionnement de Warp3D et des cartes 3dfx sur nos Amiga...