在silverlight的等角透视

时间:2011-03-02 14:34:07

标签: silverlight 3d isometric

如何在Silverlight中获得完美的等距视角?

我想在Silverlight中创建一个3D环境,它必须是等轴测视角。 如果我使用平面投影,我可以使网格类似于等距透视图,但它不是一个完美的等距透视图,因为网格单元不相等。

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

人们必须能够沿着网格“滚动”;即向前,向后,向左和向右移动。您可以将其视为在网格上飞行,但始终保持正确的等距视角。旋转将不会实现(在第一个版本中)。即使它将被实施,旋转也将精确地为90度,以保持等距透视。

编辑:我还注意到,当我尝试在Silverlight中重现透视时,“正常”等距x,y,z坐标不适用。 “正常”转换显示在以下维基百科文章中:http://en.wikipedia.org/wiki/File:Wikipedia_isometric_cube_3.jpg

2 个答案:

答案 0 :(得分:1)

SL4内置的3D投影支持可能不足以满足您的需求。它非常有限,通常仅用于旋转简单物体。

但你还有两个选择:

  • 使用3D引擎并将其设置为以等轴测3D渲染。我认为Balder可以做到这一点,但可能不是开箱即用。
  • 通过在正确的位置绘制预渲染的精灵来伪造等距3D。我想你希望你的“游戏世界”由瓦片(正方形)构成,这些瓦片被旋转以适应等距3D视角。如果您预先以正确的角度渲染所有图块,则可以计算放置它们的位置并获得所需的效果。使用此选项,您将无法在显示屏中获得任何深度,更远的瓷砖将与附近的瓷砖尺寸相同,但除此之外它不太难。

我曾经尝试过一次,只是为了好玩。绘制平坦的景观非常容易,但是一旦你想要支撑斜坡就会变得更加困难。

如果你最终这样做,那么我希望你开源项目,因为你可以用等距3D做很多乐趣: - )

答案 1 :(得分:1)

如果你可以等待SL5发布,它应该有一个3D API。 Silverlight 5 beta宣布于2011年上半年发布(现在应该是任何一天)。最终版本计划于2011年底发布。

我认为SL API应该类似于WPF的3D API。根据我的随意理解,您可以使用OrthographicCamera(包含在WPF中)的正确角度创建等轴投影。