使用C#直接将DirectX 3D图形渲染到图像上

时间:2010-12-07 21:57:23

标签: c# image directx rendering

我正在进行的项目需要能够转换图像的任何四个角。由于GDI +不幸没有此功能,我们正在使用DirectX的3D图形。

虽然我有一个方形网格,其纹理在屏幕上成功显示,但我需要能够从此渲染生成图像,背景设置为透明。有没有办法有效地实现这个目标?

最好,我想在不使用Control初始化设备的情况下执行此操作。或者,我不介意创建一个自定义的,不可见的控件,它将为我生成一个图像。

修改

实际上,我刚刚意识到透明背景是非常必要的,但它会对我们项目的性能有所帮助。

无论如何,我有幸做过这样的事情,但速度太慢了。也许有更好的方法?

// Create a surface to render an image to
Surface mSurface = mDevice.GetRenderTarget(0);

// Render the visualization
mDevice.Clear(ClearFlags.Target, Color.Transparent, 1.0f, 0);
mDevice.BeginScene();

/* Do some amazing stuff */

// Exit rendering
mDevice.EndScene();
mDevice.Present();

// Render the bitmap images
GraphicsStream mGraphics = SurfaceLoader.SaveToStream(
        ImageFileFormat.Bmp, mSurface);
Image mImage = new Bitmap(mGraphics, false);

1 个答案:

答案 0 :(得分:0)

如果您使用D3D进行最终渲染到屏幕,那么您可以轻松地使用渲染到纹理来完成您正在谈论的事情。

相关问题