网页-3D地震可视化-Silverlight?

4
我从未编写过任何Silverlight应用程序,但我希望能够为地震编写一个3D查看器,并从我的网站上运行。
我想创建一个简单的查看器,以便用户可以改变"相机"即他们的视角。视图可以包含多达10,000个对象在3D空间中。
我想要快速查看这个 - 我已经在一个Power Basic应用程序上看到过这个,并且想要在Web上实现这一点。
我目前在 http://canterburyquakelive.co.nz 上有一个关于Canterbury New Zealand地震的网站,我想学习基础知识,使其更具交互性。
我想说,例如(开始时),在我可以定义并实时移动摄像机的“空间”中放置2个对象。
该系统必须支持最终的10,000个对象。
每个对象可以是一个简单的圆形 - 不需要特殊的像素着色器。
目前我不确定系统的确切功能,因此,如果我能找到一个教程,允许我将某人(一个圆)放置到3D世界(空间)中并更改相机,那就太好了。
欢迎任何想法 - 似乎有太多关于3D和Silverlight的东西让我迷失在新功能的"光泽"中,而我需要一些基础知识,并且可以随时间学习和适应。
**添加评论+图像** 基本上,我正在等待创建一个看起来像这样使用Silverlight的页面。但是,我对任何技术都持开放态度。 This is what I want to create

你是否局限于特定的解决方案?例如,如果有人提供非Silverlight解决方案,甚至是非编程解决方案,你是否会感兴趣? - OlduwanSteve
因为我想在网站上提供这个解决方案,所以我希望能够在浏览器中运行。我从地震项目中没有获得任何收益,并希望让普通人更容易地可视化我们在过去18个月中经历的事情。我正在研究Silverlight 5及其3D支持-如果可以的话,我会尝试一下。但如果您有其他解决方案,我很乐意听取。 - Chris
@chac 也许我只是过于追求完美,但对我来说这是对一个稍微不同问题的回答。我想在理想的情况下,Chris会修改他的问题以考虑我的评论,然后我可以回答他实际提出的问题 :) - OlduwanSteve
@OlduwanSteve:因为Chris说“欢迎任何想法”,而我一段时间前转换到了Ubuntu(现在我不想安装Silverlight),所以我认为你的评论非常有建设性。 - CapelliC
1
请不要在标题前加上"c# - "等内容,这是标签的作用。 - John Saunders
显示剩余6条评论
2个回答

1

我从未在Silverlight中进行过3D,因此无法确切地回答您的问题,但通常在“真实”的3D地形中显示地理标记相当复杂。最少你可能需要:

  • 获取二进制高度数据文件(上次我查看时,NASA提供了这个)
  • 读取和解释所述文件以获取“位图”高度数据
  • 选择和处理投影(例如UTM)
  • 决定如何细分您的位图高度数据

如果您想要纹理,您还需要获取卫星数据,再次转换或处理以考虑投影。

您可以忽略地形高度,但这可能不会简化事情,具体取决于您的地形有多“崎岖”。

对于预定义的足够小的区域,您可以在某些3D软件包中预先设计出地形的3D模型,但是显示您的标记仍需要将经纬度投影到您的3D空间中,并且您仍然需要知道地形高度(除非您使用静态模型进行网格碰撞)。

与渲染标记相比,渲染相对简单,可从以下选项中选择:

  • 使用3D模型,例如“引脚头”(简单但不总是可见)
  • 渲染一个常规的n-gon,带有“面向观众”的多边形(分辨率独立但可能丑陋)
  • 在四边形上渲染一个圆形纹理(低多边形但选择什么大小的纹理?)

可能有一些库可以为您完成这些工作,因此如果您打算自己开发,则我提到的一些内容可能构成您搜索的基础。

然而,考虑到您描述的网站和情况,我怀疑您最好通过使用现有的解决方案来避免所有这些工作。例如Google Earth API


我已经更新了我的问题,包括我试图表示的图形。基本上,我想先把地面的图像放在那里并围绕它旋转。我想指定图像左上角的位置是一个LAT/LNG对(可以很容易地只是一个数字X/Y),以及右下角。然后我想围绕这个项目旋转并进行缩放。 - Chris

0
你可以考虑使用3D网页插件,这样可以摆脱Silverlight,同时也能加速开发过程。我特别想提到的是Blender 3D网页插件。我理解你需要编写自己的查看器,但在重新发明轮子之前请三思。祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接