【问题标题】:What exactly is a surface in OpenGL ES or Direct3D?OpenGL ES 或 Direct3D 中的表面究竟是什么?
【发布时间】:2009-06-23 15:48:28
【问题描述】:

我没有找到对绘图表面概念的良好定义。什么属性与表面相关?在纯 OpenGL 的上下文中,没有表面,因为 OpenGL 没有窗口系统特定事物的概念。在 OpenGL ES 中,尽管您有 EGL API,它引入了绘图表面的概念,但没有正确定义它。 您对绘图表面的简明定义是什么?

【问题讨论】:

    标签: graphics 3d opengl-es direct3d


    【解决方案1】:

    基本上,表面是可以渲染的东西。这是一种设备上下文,但可能更智能,因为表面可能知道如何显示自己或做其他有用的事情。 EGL 具有三种表面类型:

    • 窗口表面:一个窗口。
    • 像素图表面:图像。
    • Pbuffer Surface:像素缓冲区。

    This forum post may be helpful.

    【讨论】:

      【解决方案2】:

      在 Direct3D 世界中,广义而言,表面是一些 2D 图像数据。纹理是可以在着色器中采样和使用的东西。通常纹理是“由”表面组成的;例如,2D 纹理的每个 mip-map 都是一个表面,而立方体贴图的每个面都是一个表面。

      【讨论】:

        【解决方案3】:

        在 Direct3D 中,硬件表面通常是(但不总是)DirectDraw 表面格式的硬件内存部分。这与 DDS 图像文件使用的格式相同,基本上由一个标题组成,然后是标题部分中指定的几种图像格式之一的图像数据。通常的属性是宽度、高度、像素格式,可能还有一些杂项,比如立体(当然,实际上可能不支持)。

        它基本上只是一个图像的通用术语。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-12
          • 2014-10-28
          • 2012-08-27
          • 2010-11-12
          • 2011-03-18
          • 2011-01-22
          • 1970-01-01
          相关资源
          最近更新 更多