Вывод rgb(a) на экран низкоуровнево C#

Рейтинг: 0Ответов: 1Опубликовано: 27.07.2025

Пишу свой движок (пока что 2Д). Мне очень нужно выводить rgba (без учета aльфа, желательно (чтобы в каждый кадр ее не убирать)). Я хочу максимум низкоуровневости и возможный минимум библиотек (по этому использую win32 для ввода, окна и вывода в него и библиотеку skiasharp только для конвертации png jpg... в массив byte. Очень не хочу использовать библиотеки вообще). Нужна большая производительность на будущую 3d версию

Ответы

▲ 3Принят

DirectX если Windows. OpenGL если кроссплатформа нужна.

Но вообще FullHD кадр я даже на GDI+ обрабатывал за 4мс. Так что здесь от задачи надо исходить, а не от альфа-каналов.

Если вы думаете, что 3д-движок занимается выводом RGB пикселей на экран, то ошибаетесь. Выводом пикселей занимается видеокарта. А логика отрисовки программируется в микропрограммах для видеокарты, они называются шейдеры. Работа с пикселями может быть, но это максимум работа с текстурами, а не с экраном.

Следовательно, ваш вопрос не имеет никакого смысла, так как вы пытаетесь заставить процессор делать работу видеокарты, а это заведомо сильно медленнее, чем в любом существующем движке, а вам так наверное не надо.

Вот пара библиотек, работающих с DirectX:

Без библиотек это тоже можно всё самому реализовать. Но для начала разберитесь хотя-бы как это с использованием библиотеки сделать, а уж потом, когда придёт понимание о том, как на самом деле работает видеокарта, тогда можно начать интегрироваться с тем же DirectX напрямую.

С OpenGL похожая история, но библиотеки другие.