【问题标题】:Direct2D Save rendering resultDirect2D 保存渲染结果
【发布时间】:2016-02-11 19:54:07
【问题描述】:

我有几组(层)要渲染的几何图形。例如,第一和第三组/层是静态的(渲染应该只执行一次),但第二组/层应该渲染几次。有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?我看过 ID2D1Layer 接口,但显然它不能保存渲染结果。您能否建议如何避免对第一层和第三层进行不必要的渲染?

【问题讨论】:

    标签: c++ directx rendering direct2d


    【解决方案1】:

    有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?

    是的,有。您可以在位图 (ID2D1Bitmap/1) 中渲染(缓存)静态几何图形。然后将位图渲染到最终渲染目标而不是几何图形。通过这种方式,您可以用内存换取速度。

    D2D layers 不会按照您的假设行事。它们用于为渲染器(设备上下文)设置(可堆叠)设置。设置包括:裁剪矩形、不透明度、任意画笔、任意矩阵变换等。

    【讨论】:

    • 我解释 MSDN 文档,“在你完成图层后,你从渲染目标“弹出”图层,它将图层的内容合成回渲染目标。”,说层确实做到了 OP 假设的那样。
    • 好吧,除了层只能以类似堆栈的方式使用。因此,它们似乎对 OP 的问题没有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 2012-12-11
    • 1970-01-01
    • 2013-10-11
    • 2011-12-07
    • 1970-01-01
    相关资源
    最近更新 更多