2011-03-02 61 views
2

如何在Silverlight中獲得完美的等角視角?Silverlight中的等距視角

我想在Silverlight中創建一個3D環境,它必須處於等軸測視角。 如果我使用平面投影,我可以使網格類似於等軸測透視圖,但它不是一個完美的等軸測透視圖,因爲網格單元不相等。

http://uwconcept.be/projects/uwconceptcity/grid_base_1.jpg

人們必須能夠「滾動」沿網格;即向前,向後,向左和向右移動。您可以將其視爲在網格上方飛行,但始終保持正確的等軸測視角。旋轉將不會執行(在第一個版本中)。即使這樣做,旋轉角度也會精確到90度,以保持等軸測視角。

編輯:我還注意到,「正常」等距x,y,z座標不適用於我試圖在Silverlight中重現視角。以下維基百科文章中顯示了「正常」轉換:http://en.wikipedia.org/wiki/File:Wikipedia_isometric_cube_3.jpg

+0

哇,很好的問題。相機的位置是靜態的嗎? – foson 2011-03-03 05:29:01

+0

好評,@foson,我更新了我的問題。 – 2011-03-03 07:41:44

回答

1

如果你能等待SL5被釋放,它應該有一個3D API。 Silverlight 5測試版在2011年上半年宣佈發佈(應該是現在的任何一天)。最終版本計劃於2011年底發佈。

我假設SL API應該與WPF的3D API類似。從我的偶然理解中,您可以創建一個等距投影,其中包含一個OrthographicCamera(包含在WPF中)。

+0

好吧,我會暫時擱置這個問題。謝謝(你的)信息 – 2011-03-16 09:22:58

1

在SL4中內置的3d投影支持可能不足以滿足您的需求。它非常有限,通常只適用於旋轉簡單物體。

但你還有其他兩個選項:

  • 使用3D引擎,並將其設置在等距3D渲染。我認爲Balder可以做到這一點,但可能不是開箱即用。
  • 通過在正確的位置繪製預渲染的精靈來僞造等軸3D。我想你希望你的「遊戲世界」由旋轉的瓷磚(方塊)組成,以適應等距3D視角。如果預先渲染所有瓷磚的角度正確,那麼您可以計算放置它們的位置並獲得所需的效果。使用這個選項,您不會在顯示屏上獲得任何深度,遠離的地磚尺寸與附近的地磚尺寸相同,但除此之外,它不是太難。

我試圖自己做一次,只是爲了好玩。繪製平坦的景觀非常容易,但一旦想要支撐斜坡就會變得更加艱難。

如果你最終這樣做,那麼我希望你的開源項目,因爲有如此多的樂趣,你可以用等距3D做:-)

+0

非常感謝這些信息,是的,一旦我獲得了一個良好的基礎層,我就會開源。雖然我不得不放置10000個貼圖進行計算,但我擔心圖形性能。 – 2011-03-03 11:13:02

+0

10.000瓷磚?這聽起來太過分了,但我不知道你在做什麼。即使您有適當的ISO-3d引擎,計算也必須完成。不同之處在於你看不到它。SL不支持太多的硬件加速,因此無論您做什麼,大部分計算都必須由CPU來完成。 – 2011-03-03 11:24:10

+0

我想從一開始就創建一個強大的平臺,但要記住網格最終可能會增長到100x100瓦。在屏幕截圖中,只有一個計算,我創建了一個網格,其中有* n個n *個字段,然後網格被平面投影轉換爲「等軸測圖」透視圖 – 2011-03-03 11:32:27