Solutions de rendu du logiciel OpenGL

J’ai besoin de rendre OpenGL de logiciels sous Windows et j’ai déjà trouvé sur Mesa3D , qui ne fournit pas de DLL et j’ai un peu de mal à construire … Y a-t-il des alternatives disponibles?

Cela dépend de la version d’OpenGL que vous souhaitez accélérer. Selon vos besoins, il existe des alternatives disponibles. J’ai énuméré ceux dont je suis conscient ci-dessous:

OpenGL 1.0 et 1.1

Windows (depuis Windows NT 3.5) inclut en réalité une implémentation du logiciel OpenGL. Si vous n’avez pas installé d’autre rasterizer logiciel, cela devrait être votre implémentation par défaut. Le rasterizer logiciel Microsoft prend en charge OpenGL 1.0 ou 1.1, selon votre plate-forme, mais n’accélérera rien de plus que cela. Si votre version OpenGL souhaitée est couverte par 1.0 ou 1.1 (même peu probable), la solution devrait suffire. Je ne suis pas sûr de savoir dans quelle mesure l’implémentation par défaut du logiciel Windows OpenGL couvre les frameworks OpenGL ES 1.x via son support OpenGL 1.0 ou 1.1.

OpenGL 1.4

De plus, dans Windows Vista, Microsoft incluait une couche d’émulation capable de traduire OpenGL dans Direct3D; supportant ainsi OpenGL 1.4. En outre, cela signifie que les temps d’exécution de Windows Vista (et les versions ultérieures) peuvent accélérer la plupart des composants OpenGL SC. Je n’ai jamais utilisé cet émulateur moi-même et j’ai été assez surpris de l’apprendre, mais cela pourrait intéresser quelqu’un qui doit exécuter l’un de ces anciens frameworks dans un environnement Windows. Notez que le rasterizer Windows OpenGL standard (OpenGL 1.0 ou 1.1) est également inclus dans Windows Vista et versions ultérieures.

OpenGL ES 2.0

En outre, le projet ANGLE accélère WebGL et OpenGL ES 2.0 en traduisant les invocations OpenGL ES 2.0 vers DirectX 9 et 11. Leurs notes de développement mentionnent également qu’une solution OpenGL ES 3.0 est en cours. N’ayant jamais utilisé ANGLE, je ne peux pas offrir un verdict.

OpenGL 3.1

En plus de celles mentionnées ci-dessus, Mesa 3D ( qui prend en charge jusqu’à OpenGL 3.1 ) comporte trois implémentations logicielles:

  • swrast
  • Softpipe
  • llvmpipe

Comme je connais très peu le swrast (le rasterizer original du logiciel de projet Mesa) et le softpipe (un pilote de référence), je m’abstiendrai de les aborder. La troisième implémentation, llvmpipe, et probablement celle qui pourrait vous intéresser le plus, est une implémentation logicielle haute vitesse qui utilise le multithreading et la compilation JIT pour accélérer la simulation avec les instructions natives et SIMD.

J’ai déjà utilisé Swiftshader de Transgaming pour un projet de production et je dois dire que c’était génial. Un peu cher mais shiny.

Pour autant que j’ai recherché, la seule autre option est d’utiliser le moteur de rendu WebGL, que seul Chrome prend en charge à ce jour. Direct3D a le pilote de référence (qui est vraiment instable) et Swiftshader, qui est bon et cher.

Après quelques maux de tête, j’ai réussi à construire Mesa3D pour Windows, mais seulement une ancienne version qui avait encore du support. Au moins, il a une performance impressionnante.