2010-10-21 18 views
1

在我的WPF應用程序中,我想從xaml文件中添加多個3D對象。但是,如果我在應用程序的viewport3D性能中使用的更多對象在添加每個對象時變得更糟。 正如我只能與一個3D對象在同一時間,我想,也許我可以代替,我不是他們的圖片使用3D對象,當我嘗試使用一些未使用的對象的交互圖像替換回來才起作用其原始的3D對象。WPF:如何將Viewport3D中的3D對象替換爲圖像?

有關如何從3D對象獲取此位圖的任何建議?

回答

0

你需要能夠動態地做到這一點嗎?如果沒有,您可以渲染對象,截取屏幕截圖,然後將相關部分保存爲位圖。

如果您確實需要動態執行該操作,則可以渲染3D對象一次,然後將該視圖保存爲RenderTargetBitmap,然後在將來使用該對象。例如。 http://www.codeproject.com/Articles/103184/How-to-Render-Bitmap-or-to-Print-a-Visual-in-WPF.aspx

無論在哪種情況下,位圖都可以作爲紋理應用於簡單的正方形。

+0

是的,我需要能夠動態地做到這一點。但據我所知,使用RenderTargetBitmap,我只能獲取整個Viewport3D的位圖,但是我需要爲視口中的單獨3D對象獲取位圖,然後在不使用它們的情況下用位圖替換它們。 – Maris 2010-10-24 20:46:39

+0

您可以將其渲染爲較小的視口,然後在將圖像添加到實際視口中的紋理之前保存該圖像。只要兩個視口的背景相同,它應該看起來不錯。 – 2010-10-25 18:24:23

+0

如果我使用RenderTargetBitmap作爲原始viewport3d,那麼我得到的圖像,因爲我需要,但是當我添加modelVisual3D到臨時viewport3D得到我的3d對象的圖像我得到空白圖像:( – Maris 2010-10-29 20:13:34