Рендеринг сцены OpenGL в двух разных местах - PullRequest
0 голосов
/ 04 мая 2018

Я пишу приложение, которое отображает сцену OpenGL. Это приложение имеет два окна:

  1. Большое окно, которое показывает только визуализированную сцену
  2. «Окно управления», которое предлагает несколько настроек и предварительный просмотр отрисованной сцены

Это приложение написано на .NET (для части окна управления) и использует собственную C ++ DLL для создания окна рендеринга и выполнения фактического рендеринга OpenGL.

Это отлично работает, но одна важная часть все еще отсутствует: предварительный просмотр отрисованной сцены в окне управления .NET.

До сих пор я мог думать о двух решениях:

  1. Отображение сцены не только на экране, но и в памяти. Затем вставьте этот блок памяти в мою .NET WinForm. Наконец нарисуйте изображение в PictureBox или что-то. <- Звучит ужасно медленно! </li>
  2. Сделайте так, чтобы мой родной рендерер OpenGL отображал сцену дважды, один раз в собственное полноразмерное окно, один раз на элемент управления (панель?) В моей форме .NET.

Вариант 2 звучит быстрее, но я понятия не имею, работает ли / как это вообще. Можно ли это сделать? Есть ли лучшие альтернативы?

1 Ответ

0 голосов
/ 04 мая 2018

Просмотрите документацию по кадровым буферам . В основном это место назначения вашего рендеринга, по умолчанию это ваш видовой экран (или backbuffer , который переключается с отображаемым буфером, как только он готов).

Первый вариант обычно должен быть быстрее, поскольку вы визуализируете сцену один раз, а затем просто копируете текстуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...