2013-10-12 75 views
0

如何在桌面應用程序中使用C#生成可用玻璃紙3D眼鏡看3D的基本3D形狀(紅色和藍色)? (請注意,這個問題不限於任何特定的語言,如果我能在任何語言中領先一步,那就太好了,我總是可以從中學到東西,並最終知道如何嘗試用我想要的語言來實現這一點。 )3D形狀和玻璃紙眼鏡

我見過這麼多的問題,但答案看起來非常複雜,並沒有讓我到最後的任何地方。我甚至找不到關於此的任何文檔或文章。

+1

...玻璃紙3D眼鏡... ????這是什麼 ? – Jasper

+1

@Jasper我認爲他的意思是說,當3D是一件新事物時,你曾經從電影院那裏得到那些雙色「太陽眼鏡」。你知道有1個紅色鏡頭和1個藍色鏡頭?我認爲Giovani想要創建2個形狀並將它們疊加在一起,以使它們看起來像3D ......不過,不知道如何在C#/ Winforms中做到這一點。 – sab669

+0

@ sab669沒錯。你理解100%。我要添加一些標籤。這在C#中可能是不可能的,但如果我可以用C++或VB或其他.NET語言編寫它,我可以使用它。即使是非基於.NET的語言也是一個很好的起點。 – uSeRnAmEhAhAhAhAhA

回答

2

要生成立體照片3D圖像,首先必須從兩個略有不同的視口渲染場景,每個人都爲每個眼睛一個場景。它們越遠,場景越小,3D感越強。

最簡單的方法是使用一些現有的庫來渲染圖像。使用「照相機」,將其稍微放在視圖中心的左側(和右側)。渲染兩個圖像,並獲取像素。

第二步是將兩幅圖像組合成立體圖3D圖像。一種方法是將一個圖像的紅色通道與另一個圖像的綠色和藍色通道相結合。

(Pseduo-C#:)

Color Combine(Color left, Color right) 
{ 
    return new Color(left.Red, right.Green, right.Blue); 
} 

Image Combine(Image left, Image right) 
{ 
    Image result = new Image(left.Width, left.Height); 
    for (int y = 0; y < left.Height; y++) 
    for (int x = 0; x < left.Width; x++) 
    { 
     result.SetPixel(x, y, Combine(left.GetPixel(x, y), right.GetPixel(x, y))); 
    } 
}