0

是否可以创建多个 ID3DXRenderToSurface 实例并让它们在线程中并行渲染?这似乎不太可能,但由于 DirectX 的某些方面对我来说仍然有些令人难以置信,我想我会问。

如果做不到也没什么大不了的。只是我正在处理的应用程序(不幸的是)将其对象渲染拆分为渲染到表面的组,然后将完成的表面渲染到后台缓冲区。我只是想,如果可能的话,我可以让所有组并行而不是串行渲染,那会很好。

4

1 回答 1

0

这个接口只允许你渲染到指定的表面而不是后台缓冲区。为了渲染任何东西,您仍然需要设置 D3D 设备的状态并调用其方法。D3D9中的设备接口不是线程安全的。所以,答案是“不,你不能以这种方式在多个线程中渲染”。您可能可以创建多个设备,在那里绘制部分,然后在单个设备上组合生成的图像,但我怀疑这会带来很多好处(如果可以的话)。

如果您寻找多线程渲染,请尝试使用 DX11。

于 2012-01-05T02:39:06.767 回答