Je sais déjà que de nombreux ordinateurs ont aujourd'hui un GPU qui prend en charge DirectX et OpenGL. Mais qu'en est-il des ordinateurs qui n'en ont pas? Puis-je écrire un jeu 2D simple qui ne dépend pas du GPU, de sorte qu'il fonctionne même sur des machines plus anciennes?
Existe-t-il une bibliothèque de jeux multiplateforme C ou C ++ qui me permettra de faire cela? Idéalement, une telle bibliothèque me permettrait de basculer l'accélération matérielle avec très peu de lignes de code.
c++
2d
c
cross-platform
hardware-acceleration
user999687
la source
la source
Réponses:
Certes, vous pouvez utiliser SDL et je crois qu'il fait tout sur le CPU par défaut. Vous pouvez réellement obtenir de très bonnes performances si vous gérez bien votre code.
la source
Pensez-vous que Pong a utilisé un GPU?
Les jeux Flash auxquels vous jouez tout le temps sur le web, pensez-vous qu'ils utilisent un GPU?
(Ce n'est que ces dernières semaines que les jeux Flash peuvent enfin être développés pour utiliser le support GPU. Et Flash existe depuis bien plus d'une décennie.)
Bien sûr, c'est possible. Je jouais à des jeux depuis une décennie avant qu'il n'y ait même une telle carte graphique accélérée pour le marché grand public, sans parler de processeurs Turing complets complets dédiés aux graphiques (et plus spécifiquement, aux graphiques de jeux).
la source
N'oubliez pas, les jeux vidéo de première génération ont été écrits pour un oscilloscope! Et par jeux vidéo de première génération, je veux dire pong. Un GPU rappelez-vous, est un processeur mathématique, qui est aussi ce qu'est un CPU. C'est juste plus spécialisé.
la source
C'est tout à fait possible: les premiers jeux informatiques existaient avant les GPU - qui, comme vous le faites remarquer, sont des matériels conçus pour accélérer les mathématiques 3D. Tout ce qui est fait sur le GPU peut également être fait sur le CPU, bien que généralement à une vitesse globale plus lente. (La version initiale de Quake, par exemple, utilisait uniquement le rendu logiciel [1] )
Mesa3D est une implémentation OpenGL qui prétend prendre en charge le rendu logiciel complet. (Je ne l'ai pas utilisé autrement que comme implémentation de référence, cependant).
la source
s'il ne s'agit que de jeux 2D, je vous suggère d'utiliser soit
flash 10
ouSDL
, mais si vous pensez que votre jeu peut contenir des ressources 3D et un rendu, vous pouvez également utiliser Irrlicht . il s'agit essentiellement d'un moteur 3D multiplateforme open source avec prise en charge du rendu matériel et logiciel:du wiki:
la source
Bien que ce que vous demandez soit possible, il convient de noter qu'il n'y a généralement pratiquement aucun avantage à ignorer l'accélération 3D. Tous les PC modernes ont une accélération 3D intégrée. Les quelques vieilles machines sans cette fonctionnalité constituent un marché des jeux extrêmement petit, et vous auriez probablement d'autres problèmes de compatibilité avec ceux-ci également.
Je crains que vous posiez cette question pour la mauvaise raison.
la source