Что такое поверхность в OpenGL ES или Direct3D?

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


person nschmidt    schedule 23.06.2009    source источник


Ответы (3)


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

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

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

person Naaff    schedule 23.06.2009

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

person sdclibbery    schedule 05.10.2009

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

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

person Promit    schedule 23.06.2009