簡體   English   中英

使用C#將DirectX 3D圖形直接渲染到圖像上

[英]Rendering DirectX 3D graphics onto an Image directly, using C#

我正在從事的項目要求能夠轉換圖像的四個角中的任何一個。 不幸的是,由於GDI +不具備此功能,因此我們求助於使用DirectX的3D圖形。

盡管我有一個正方形網格,其紋理可以在屏幕上成功顯示,但是我需要能夠從該渲染中生成圖像,並且將背景設置為透明。 有沒有辦法有效地做到這一點?

最好是,我希望在不使用控件初始化設備的情況下執行此操作。 另外,我不介意創建一個定制的,不可見的控件來為我生成圖像的選項。

編輯

實際上,我只是意識到透明的背景是絕對沒有必要的,但是這將對我們項目的性能有所幫助。

無論如何,我在做這樣的事情時有些運氣,但是速度太慢了。 也許有更好的方法?

// 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);

好吧,如果您使用D3D進行最終渲染到屏幕,那么您可以輕松地使用“渲染到紋理”來完成您正在談論的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM