Я уже знаю, что многие компьютеры сегодня имеют графический процессор, который поддерживает DirectX и OpenGL. Но как насчет компьютеров, которые этого не делают? Могу ли я написать простую 2D-игру, которая не зависит от графического процессора, чтобы она работала даже на старых машинах?
Есть ли кроссплатформенная библиотека игр C или C ++, которая позволит мне это сделать? В идеале такая библиотека позволила бы мне переключать аппаратное ускорение с помощью всего лишь нескольких строк кода.
c++
2d
c
cross-platform
hardware-acceleration
user999687
источник
источник
Ответы:
Конечно, вы можете использовать SDL, и я считаю, что он делает все на процессоре по умолчанию. На самом деле вы можете получить довольно хорошую производительность, если вы хорошо управляете своим кодом.
источник
Как вы думаете, Понг использовал графический процессор?
Флэш-игры, в которые вы играете в Интернете все время, как вы думаете, они используют графический процессор?
(Только в последние несколько недель Flash-игры наконец-то могут быть разработаны для использования поддержки GPU. А Flash существует уже более десяти лет.)
Конечно это возможно. Я играл в игры десять лет, прежде чем появилась даже такая вещь, как ускоренная видеокарта для потребительского рынка, не говоря уже о целых процессорах Turing-complete, предназначенных для графики (и, более конкретно, для игровой графики).
источник
Не забывайте, видеоигры первого поколения были написаны для осциллографа! И под видеоиграми первого поколения я имею в виду понг. Помните, что графический процессор - это математический процессор, который также является процессором. Это просто более специализированный.
источник
Это абсолютно возможно: первые компьютерные игры существовали до графических процессоров, которые, как вы указываете, являются аппаратным обеспечением, предназначенным для ускорения трехмерной математики. Все, что делается на графическом процессоре, также может выполняться на процессоре, хотя обычно с более низкой общей скоростью. (Например, в первоначальном выпуске Quake использовался только программный рендеринг [1] )
Mesa3D - это реализация OpenGL, которая претендует на поддержку полного программного рендеринга. (Я не использовал его, кроме как в качестве эталонной реализации, хотя).
источник
если речь идет только о двухмерных играх, я предлагаю вам использовать либо
flash 10
илиSDL
, но если вы думаете, что ваша игра может содержать 3D-ресурсы и рендеринг, вы также можете использовать Irrlicht . по сути, это кроссплатформенный 3D-движок с открытым исходным кодом с поддержкой аппаратного и программного рендеринга:из вики:
источник
Хотя то, что вы спрашиваете, возможно, стоит отметить, что обычно отбрасывать 3D-ускорение практически невозможно. Все современные ПК имеют встроенное 3D-ускорение. Несколько старых машин без этой функции составляют очень маленький игровой рынок, и у вас, вероятно, будут другие проблемы с совместимостью с ними.
Боюсь, что вы задаете этот вопрос по неправильной причине.
источник