Что такое поверхность в OpenGL ES или Direct3D? - PullRequest
9 голосов
/ 23 июня 2009

Я не нашел хорошего определения концепции поверхности для рисования. Какие свойства связаны с поверхностью? В контексте чистого OpenGL нет поверхности, так как OpenGL не имеет представления о специфических для оконной системы вещах. В OpenGL ES есть EGL API, который вводит понятие поверхности рисования, не определяя ее должным образом. Каково ваше краткое определение поверхности для рисования?

Ответы [ 3 ]

7 голосов
/ 23 июня 2009

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

  • Поверхность окна: Окно.
  • Пиксельная поверхность: изображение.
  • Поверхность буфера: буфер пикселей.

Это сообщение форума может быть полезным .

2 голосов
/ 05 октября 2009

В мире Direct3D, в широком смысле, поверхность - это некоторые данные 2D-изображения. Текстура - это то, что можно выбрать и использовать в шейдере. Обычно текстуры «сделаны из» поверхностей; например, каждая мип-карта 2D-текстуры является поверхностью, а каждая грань кубической карты - поверхностью.

1 голос
/ 23 июня 2009

В Direct3D аппаратная поверхность обычно - но не всегда - часть аппаратной памяти в формате поверхности DirectDraw. Это тот же формат, который используется в файлах изображений DDS и в основном состоит из заголовка, а затем данных изображения в одном из нескольких форматов изображений, указанных в разделе заголовка. Обычные свойства: ширина, высота, формат пикселя и, возможно, несколько разных вещей, таких как стерео (которые, конечно, не поддерживаются).

По сути, это не намного больше, чем общий термин для изображения.

...