2012-11-30 74 views
1

我一直致力於在筆記本電腦和/或臺式機上創建虛擬現實體驗的項目。我在Visual Studio 2010上使用XNA 4.0。當前情況如下所示。我已經通過kinect介紹了一個人頭部的動作。因此,如果該人相對於筆記本電腦向右移動頭部,則圖像中看到的場景向左旋轉,從而給出虛擬漫遊的效果或類似於通過窗口體驗進行觀看的效果。距離霧XNA 4.0

爲了增強視覺吸引力,我想在背面增加黑暗。就像盒子看起來好像是一個隧道一樣。

箱子是用三角形條製成的。用於框的平面的BasicEffect被稱爲效果。

effect.VertexColorEnabled = true; 
     effect.EnableDefaultLighting(); 
     effect.FogEnabled = true; 
     effect.FogStart = 35.0f; 
     effect.FogEnd = 100.0f; 
     effect.FogColor = new Vector3(0.0f, 0.0f, 0.0f); 
     effect.World = world; 
     effect.View = cam.view; 
     effect.Projection = cam.projection; 

Scene

在編譯錯誤是對於一些法線。 我不知道他們是什麼意思。我已經充分挖掘了互聯網。 (我第一次的印象是,病人在盒子的背面插入了黑色的無邊無際的光暈)。

該錯誤是下面所附: Error

'綠黨' 是VertexPositionColor [] []是用於構建框。

我該如何解決這個錯誤?方法/方法是否正確?

任何幫助將受到歡迎。 謝謝。

回答

1

您的頂點具有位置和顏色通道,但沒有法線......所以您必須提供頂點。

您可以使用VertexPostionNormalTexture如果你不需要的顏色,或建立一個自定義的結構,提供了正常......

這裏你是一個自定義的實現:VertexPositionNormalColor

0

您需要添加normal(vector3)到你的頂點類型。

此外,如果你想要距離霧,你將不得不編寫你自己的着色器,因爲BasicEffect只實現深度霧(雖然看起來不是很好,但速度更快)