在Silverlight 3.0中展示360度图像(非全景图)

8
我有很多从360度相机拍摄的图片,希望能在Silverlight 3中显示。它们不是普通的全景图像。拍摄照片的相机实际上创建了一个失真的JPEG文件,一旦将其作为纹理包裹在球体上,就会变得无畸变。我有桌面软件可以查看该图像(不仅是从侧面,而且是直接向上、向下等),我需要尝试在Silverlight中获得相同的功能。这与Google StreetView非常相似。
我认为我需要创建一个球体,将JPEG文件作为纹理包裹在球体上,然后把“相机”放在球体内部。我怀疑这在Silverlight中不可能,但也许有一种方法可以模拟这个过程?
到目前为止,谷歌搜索没有找到任何相关内容。有人能指引我如何做吗?是否有任何现有的项目可以做到这一点?
一个典型图像的示例在这里

在Silverlight中,不会有“现成”的解决方案来完成这个任务(除非有人之前已经做过并在某处共享了代码,但这可能不是情况)。我建议研究使用像素着色器对图像进行扭曲。 - KeithMahoney
像素着色器可能是完美的选择,但看起来它们只能在Silverlight中用于静态图像。如果我的理解是正确的,那么使用像素着色器就无法移动相机。 - Phil
4个回答

1

这些可能会对你有所帮助(也可能不会)。它们是用于Silverlight的3D引擎,但它们可能会将图像包裹在球体外面而不是里面,这可能不是你想要的。

Kit3Dhttp://www.codeplex.com/Kit3D

Balderhttp://www.codeplex.com/Balder

另一个可能更有前途的选择是使用JavaScript。到目前为止,你可能已经研究了如何在Silverlight中实现这一点,但你可以进行类似的搜索来使用JavaScript。可能已经有一个选项存在,由于Silverlight可以与JavaScript互操作,你可能会很幸运。


1

你需要将纹理映射到一个球体上,就像你说的那样。但据我所知,Silverlight 3不支持硬件加速的3D。

所以你的选择是:

  • 尝试找到一个Silverlight软件3D库(像这个
  • 编写自己的软件光栅化器(多页指南

希望这可以帮助到你。


0

你可能想尝试从图像中裁剪窗口并显示它。如果用户想向右移动,则将窗口向右移动并裁剪。如果用户想向左移动,则将窗口向左移动并裁剪。要缩小,请扩大窗口;要放大,请缩小窗口。如果您将框架移动到最右侧,则从左侧拼接图像数据。

您可能需要修改图像以消除畸变,这不应该太难,取决于相机镜头的焦距。

不要尝试将图像映射到球体上,这会更加困难。


实际上修改图像听起来相当困难,除非你知道一个简单的方法来做到这一点。这张图片实际上是由几个相机拼接在一起生成的。 - Phil
你其实不需要裁剪,而是从一张图像中复制一个窗口到另一张图像源。可以将其视为具有图像背景的小框架。你要做的就是将背景以所需方向移动即可。 - Gilad

0

https://hdviewsl.codeplex.com上说,HD View SL(Silverlight版本)支持“正交(2D)”,并且可以用于360度全景图的包裹。

如果没有其他人尝试过,您也可以尝试将PtViewer源代码从Java移植到Silverlight。

更新: VRLight可能是您的解决方案: http://vrlight.thecloudsite.net/ http://vrlight.thecloudsite.net/tutorial.html http://ivrpa.org/blog/3651/vrlight_vredit_20

该软件的作者(Jurgen Eidt)还制作了cPicture(http://cpicture.thecloudsite.net/index.en.html),如果您在VRLight网站上找不到他,请尝试从cPicture网站或他在IVRPA网站上的博客(http://ivrpa.org/blog/3651)中查找,该博客似乎有最新的帖子。


这很接近,但不完全是我要找的。我的360度图像不是普通的全景图像 - 它们允许您向上直视。[示例图像](http://img211.imageshack.us/img211/5640/113014255138.jpg)。 - Phil
你尝试过使用http://research.microsoft.com/en-us/um/redmond/groups/ivm/HDView/Preview/(选择HD View SL选项卡)来测试你的图像URL吗?我已经在那里尝试了你的URL,但第二个选项卡似乎没有被激活。也许你应该尝试一下侧边栏中使用.xml文件的链接,并自己创建一个这样的xml文件(可能基于Zoomify示例,不确定),以进行测试。 - George Birbilis

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