2

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

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

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

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

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

4

2 回答 2

1

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

但是您还有另外两个选择:

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

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

如果你最终这样做了,那么我希望你开源这个项目,因为你可以用等距 3d 做很多有趣的事情 :-)

于 2011-03-03T10:53:24.130 回答
1

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

我假设 SL API 应该类似于 WPF 的 3D API。根据我的偶然理解,您可以使用 OrthographicCamera(包含在 WPF 中)的正确角度创建等距投影。

于 2011-03-03T15:19:01.467 回答