Получить цвета заданных пикселей нарисованного OpenGL экрана на C#
Решение ArtjomP/silk-net-pixel-picking (github.com) должно быть в состоянии сделать правильный скриншот визуализированного элемента управления OpenGL. Он использует glReadPixels для получения скриншота. Он содержит 3 проекта
1. Avalonia.PixelColor — проект C# Avalonia.
2. silk.net — версия Silk.net для OpenGL.
3. Общий – общий код для обоих проектов.
После запуска появляются основные окна проекта Avalonia.PixelColor.
Смотри fig.1.
Вы можете навести указатель мыши на визуализированный элемент управления OpenGL с синим фоном и увидеть цвет под мышью с правой стороны. Также вы можете ввести путь сохранения снимка экрана и нажать кнопку «Сделать снимок экрана». В выбранной папке появится новый файл скриншота. Проблемы, которые нужно исправить (первая должна быть исправлена по крайней мере):
1. Скриншот не совпадает с отрендеренной картинкой смотри fig.2.
2. Цвет под мышью отличается от того, который вы видите при перемещении мыши по некоторым частям визуализируемого элемента управления OpenGL.
3. Оранжевый прямоугольник должен иметь одинаковые отступы со всех сторон, насколько массив вершин равен:
Vertices =
{
0.85f, 0.85f, 0.0f,
0.85f, -0.85f, 0.0f,
-0.85f, -0.85f, 0.0f,
-0.85f, 0.85f, 0.0f
};