【发布时间】:2016-02-11 19:54:07
【问题描述】:
我有几组(层)要渲染的几何图形。例如,第一和第三组/层是静态的(渲染应该只执行一次),但第二组/层应该渲染几次。有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?我看过 ID2D1Layer 接口,但显然它不能保存渲染结果。您能否建议如何避免对第一层和第三层进行不必要的渲染?
【问题讨论】:
标签: c++ directx rendering direct2d
我有几组(层)要渲染的几何图形。例如,第一和第三组/层是静态的(渲染应该只执行一次),但第二组/层应该渲染几次。有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?我看过 ID2D1Layer 接口,但显然它不能保存渲染结果。您能否建议如何避免对第一层和第三层进行不必要的渲染?
【问题讨论】:
标签: c++ directx rendering direct2d
有没有办法保存第一层和第三层的渲染结果,以便只渲染第二组然后合并结果?
是的,有。您可以在位图 (ID2D1Bitmap/1) 中渲染(缓存)静态几何图形。然后将位图渲染到最终渲染目标而不是几何图形。通过这种方式,您可以用内存换取速度。
D2D layers 不会按照您的假设行事。它们用于为渲染器(设备上下文)设置(可堆叠)设置。设置包括:裁剪矩形、不透明度、任意画笔、任意矩阵变换等。
【讨论】: