OpenGL ES或Direct3D中的表面究竟是什么?

时间:2009-06-23 15:48:29

标签: graphics 3d opengl-es direct3d

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

3 个答案:

答案 0 :(得分:7)

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

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

This forum post may be helpful

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

它基本上不仅仅是图像的通用术语。