【问题标题】:gpu, old hardware, 3d acceleration and a libgpu、旧硬件、3d 加速和一个库
【发布时间】:2010-09-22 18:30:20
【问题描述】:

我正在编写一个具有 3d 加速功能的 2d 库,但我想以一种可以在旧硬件上有效运行的方式来完成它。可能使用 typedef 来隐藏您的目标模式不支持的选项/功能。 (也可能开启了仿真功能)

旧硬件有哪些功能?这是我知道的问题和事情的列表。

  • 瓷砖,这将不受支持。它太旧了,我的库将支持像素访问
  • 具有滚动功能的单像素缓冲区。大湾区示例
  • 具有表面到表面快速 blt(无拉伸)的多个表面
  • 多表面,表面到表面快速 blt 与拉伸(也许这是模拟的?有任何硬件拉伸图像吗?)
  • 硬件像素填充(我以为我在 DX 中看到了该选项)
  • HW 透明色? (颜色是透明的,我以为我在 DX 规格中看到过)
  • 纹理,旧的使用是 2 的幂。宽度不必与高度是 2 的幂吗? (例如 64x256),是否要求它们相同
  • 纹理,较新的硬件可以有任何宽度和高度(或者这是一个谎言?)
  • 纹理可以采用疯狂的格式(ARGB 8888、ABGR 8888、ABGR 2 10 10 10)

另外,我不能对纹理 blit 做纹理吗?就像在硬件中从纹理 A 复制 60x40 到 B 一样? 纹理也可以在调色板中吗? (我不会支持这个) 最后我应该记住着色器 8)

我还缺少什么?

【问题讨论】:

    标签: 3d 2d hardware gpu hardware-acceleration


    【解决方案1】:

    您指的是什么 3D 加速?如果是OpenGL兼容硬件:

    • 纹理必须是 2 的幂, 宽度和高度可以有任意 两个的幂。
    • 没有力量的纹理 2个约束启用了 您可以测试的 openGL 扩展 对于(并且几乎存在于所有 新硬件)。
    • 几个不同的 纹理格式标准化 OpenGL,我不知道扩展 具有任意纹理格式。

    关于二维:

    • 普通硬件 2D 加速支持 blitting,但不支持拉伸。拉伸可用作“视频加速”。例如,在 X11 中,您可以使用 xv 扩展来加速拉伸,但仅限于 YUV 颜色空间。
    • 对于真正快速的图像绘制操作,请查看 Imlib2。它可以在软件中完成所有工作,但速度非常快。如果 3D 硬件加速不可用,也许是正确的方法。 2D hw 加速在性能上有所不同,例如 X11 RENDER 加速经常被 Imlib2 击败。 http://docs.enlightenment.org/api/imlib2/html/

    一个有趣的项目也可能是 DirectFB,它试图大量使用硬件 2D 加速:http://www.directfb.org/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-13
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      相关资源
      最近更新 更多