我认为我需要创建一个球体,将JPEG文件作为纹理包裹在球体上,然后把“相机”放在球体内部。我怀疑这在Silverlight中不可能,但也许有一种方法可以模拟这个过程?
到目前为止,谷歌搜索没有找到任何相关内容。有人能指引我如何做吗?是否有任何现有的项目可以做到这一点?
一个典型图像的示例在这里。
这些可能会对你有所帮助(也可能不会)。它们是用于Silverlight的3D引擎,但它们可能会将图像包裹在球体外面而不是里面,这可能不是你想要的。
Kit3Dhttp://www.codeplex.com/Kit3D
Balderhttp://www.codeplex.com/Balder
另一个可能更有前途的选择是使用JavaScript。到目前为止,你可能已经研究了如何在Silverlight中实现这一点,但你可以进行类似的搜索来使用JavaScript。可能已经有一个选项存在,由于Silverlight可以与JavaScript互操作,你可能会很幸运。
你可能想尝试从图像中裁剪窗口并显示它。如果用户想向右移动,则将窗口向右移动并裁剪。如果用户想向左移动,则将窗口向左移动并裁剪。要缩小,请扩大窗口;要放大,请缩小窗口。如果您将框架移动到最右侧,则从左侧拼接图像数据。
您可能需要修改图像以消除畸变,这不应该太难,取决于相机镜头的焦距。
不要尝试将图像映射到球体上,这会更加困难。
在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)中查找,该博客似乎有最新的帖子。