Я хочу отобразить сцену с определенными параметрами камеры, где разрешение очень высокое (скажем, 20 000 x 20 000 пикселей), но на самом деле меня интересует только небольшая секция изображения 640x480.Рендеринг обрезанного изображения в OpenGL
Мне не обязательно просто увеличивать масштаб изображения и изменять, где находится камера. Я хочу, чтобы камера оставалась направленной в одном направлении, я просто хочу отобразить небольшую часть сцены.
Я приложил картинку, чтобы попытаться показать, что я имею в виду:
Любые намеки о том, как я могу настроить матрицу камеры с OpenGL называет правильно что-то вроде этого?
Я очень сомневаюсь, что вы найдете реализацию OpenGL, способную отображать в фреймбуфер размером 20 000 x 20 000 (для этого вам может понадобиться разделить задачу рендеринга на плитки). Но одна вещь, которую вы можете рассмотреть, называется ящиком для ножниц, это позволяет обрезать растеризацию в суб-прямоугольник вашего окна просмотра. В отличие от изменения фактического отображения видового экрана, это не изменит ваши проекционные характеристики. Подробнее см. «GlScissor (...)». –
Это растровая операция, поэтому установка прямоугольника с ножницами не поможет вам закрепить геометрию во время примитивной сборки. Для этой цели вам может потребоваться реализовать дополнительную логику отсечения. –
Мне не обязательно нужен буфер кадров размером 20 000 x 20 000, я просто хочу сохранить исходную камеру, но только визуализирую небольшую часть этой плоскости изображения. До сих пор я рассматривал изменение реальной камеры, чтобы посмотреть на это место. Даже если я использую ножничный ящик, как это поможет мне обойти тот факт, что мне все еще понадобится огромный фреймбуфер, чтобы сохранить уровень детализации, который я хочу в области интереса? –