1

使用 Unity3D 和 C# 我正在尝试显示真实世界位置的 3d 版本。在我的 Unity3D 应用程序中,用户将指定一个位置的 GPS 坐标,然后我的应用程序必须生成该位置的 3d 平面(任何东西都不必是平面)。飞机将显示该位置的 500 米乘 500 米的 3D 快照。

你会建议我如何在 Unity3D 中实现这一点?您将使用什么方法来实现这一目标?

注意:我知道这是一个非常困难的尝试(在 Unity3d 中动态渲染现实世界的位置),所以我希望执行许多操作来实现这一点。我只是不知道那里的所有技术,哪些技术最适合我的需求

例如:

建议的方法1:

  • 提示用户指定 GPS 坐标
  • 使用 Google earth API 和 HTTP 以编程方式获取描述该位置的 .khm 文件(不确定 google earth 是否提供该功能
    • 可以?)
  • 解压 .khm,这样我就有了 .dae 文件
  • 使用 ??? 将该文件转换为 .3ds 文件 第三方转换器(是否存在转换器?)
  • 在运行时将 .3ds 作为平面导入 Unity3D(这可能吗)?

建议的方法 2:

  • 提示用户指定 GPS 坐标
  • 使用 Google earth API 和 HTTP 以编程方式获取描述该位置的 .khm 文件(不确定 google earth 是否提供该功能
    • 可以?)
  • 解压 .khm,这样我就有了 .dae 文件
  • 使用我自己编写的 C# 解析器解析 .dae 文件(你认为有可能编写一个 .dae 解析器,将 .dae 解析为描述该位置高度图的 Vector3 数组吗?)
  • 在 Unity3D 中动态创建一个平面并用我的 Vector3 点数组/列表填充它(是否可以这样创建一个平面?)也许我打算创建一个网格而不是一个平面?

你能想到我可以在 Unity3D 中渲染真实世界 3d 环境的任何其他方式吗?

4

1 回答 1

0

没有可用的服务具有给定 gps 坐标的区域的详细 3d 地图。谷歌有一个超级简单的高度图,他们绘制然后将他们的航拍图映射到上面,但即使你可以通过程序访问它,如果你在街道上看起来会很糟糕。如果你对可怕的细节水平没问题(比如你要从高处观看这个或其他东西)也许这是可行的,但不是任何一种第一人称的街头体验。

于 2012-06-22T16:55:18.043 回答