WPF (Sparkle) overlays in 3D virtual earth

Ultimately, we would like to be able to go way beyond simple polyline overlays on maps.

I.e. we would like to be able to bring the full power of WPF interactive (sparkle) animated graphic embedded in the 3D space of Virtual Earth. (all geo-located). In addition we would love to be able to download all textures and tiles for a region and work off-line.

Of course, this is not possbile yet, But how close are things and what can we fake or mock up to get close to this?

1. Can we host the control in a WPF application (outside of IE?)

2. Can we find out the camera vector and bounds of the display region?

3. Can we get events and updates when the camer shifts?

4. If so we might be able to apply our own 3D overlays on top of the map each time the map is redrawn (if we can overaly WPF over the activeX control).

--

Also, are there any white papers or descriptions on how we could take our own photogrammery and build the 3D texture map world. We know that Photosynth is supposed to be released as an SDK and we are curious if that will be an easier path to what we are wanting to accomplish.

[1152 byte] By [Dr.YSG] at [2007-12-26]
# 1

1. Yes, you can but it's not officially supported yet and there's no managed SDK. This will be coming soon.

2. The camera position and visible lat/long bounds are available from the current control API, but not the look vector.

3. Yes, the control will raise events when the view changes.

4. Unfortunately no, WPF does not play well with DX surfaces. You can host inside a WPF app, but drawing anything on top of the DX surface is a real problem. We will be adding the ability for you to insert objects into the 3D scene directly, so that might allow you to do what you need.

Building 3D models from imagery alone is pretty tricky. There are lots of research papers on the subject. The Photosynth method doesn't generate texture mapped models, but creates a point cloud of know positions that appeared in multiple images.

DuncanLawler at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...
# 2

yes, being able to embed the 3D sparkle (WPF) objects and control their animation would be the preferable way.

It appears something like this is possible. (at least from C# and using the DirectX api).

I.e. I am thinking of what heptazane did for the "ghosts in Virtual Earth". Where he is doing animated point clouds. We would prefer to do animated constructive geometry.

http://heptazane.spaces.live.com/

Does this mean that we can even do this sort of thing today, using his techniques?

http://soapbox.msn.com/video.aspx?vid=1a6474da-1d84-479c-a95f-59e8234d745e

Dr.YSG at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...
# 3

Let me simply this.

We want to be able to (embedd) 3D objects into Virtual Earth. We would like to push things way beyond what one does with polylines that are part of the surface.

If possible. we want our 3D polygonal elements to be:

* complex multi-part CSD items

* Texture mapped and lighted with our light system

* animated over time

* interactive events from the GUI (press or drag them to new locations, etc)

Obviously, we don't want to do all this at the low level of C# and DirectX (as the ghosts in Virtual Earths) does

Ideally, we want to use Sparkle/WPF for this.

We see two approaches:

Inside out (Virtual Earth supports injection not of polylines, but supports full WPF 3D objects under the control of Sparkle, and pass events and other indications for change of camera vector, location, focus, etc) so that we can redraw

Or, perhaps easier. Virtual Earth has a stripped down passive viewer object that is dead to the interface. We can embedd this into a Sparkle/WPF application. It then becomes the backdrop for the 3D overlays that we would put "into" it. We would need an API for VE that let us specify the camera location, and focus vector, and field of view. We would maintain in Sparkle a mapping between lat/long coords and the coords used for our 3D items.

Is this making sense yet?

Dr.YSG at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...
# 4

I'm not sure I fully understand your scenario. There will be a higher-level API for inserting world objects, but it is not yet available. It will be very capable, but will probably not be in terms of WPF objects. Eventing and UI elements integrated in the scene will be possible.

While you will easily be able to host the 3D view in a WPF application, you will not be able to have any WPF UI elements overlay any part of the 3D view surface.

DuncanLawler at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...
# 5

Your answers have been very helpful. So let me try to return the favor by making the "scenario" clearer.

Imagine a SecondLife-type world. But now, instead of a virtual 3D set made out of 3D CSG objects - Instead one has a "real-world" backdrop with real street level scenes done as texture maps on 3D geometry (i.e. Virtual Earth).

Now, overlaid (or inserted if that is the only choice) are 3D objects. (virtual robots, people, animated vehicles, machinery, animated video etc). It is necessary to create a lighting model for these items. As well as to control their lighting and rendering based on the time/space locations where they are. E.g. texture maps of video change and stream over time. Vitual trees need to be procedurally rendered differently based on their location (so that they don't all look the same). Things need to blend into the scenary as well as possble (hence the need to control the lighting models of the inserted 3D objects).

Also, since this is a multi-player game-like activity, inter-player shooting and collisions (which are kept track of outside of Virtual Earth) need to cause updates to the location & rendering of in-scene objects. The bookeeping is all done outside of virtual earth, which is why it would be nice to have the (outside-in) option of drawing over VE. But I can appreciate if DirectX does not play well with WPF.

The application that controls the objects would not be in the browser. What we want is a Rich Internet Application that runs local to the box, but hosts the VE MapControl which has a feed for the maps, geometry, and textures of the world. Best would be an SDK (or what Google provides - a way of providing our own terrain server with our own maps, building geometry, etc). So that we would not be taxing Microsoft's servers.

As you can probably guess by now, this is a DOD-funded research project, and we will have our own DEM, building geometry, etc. data coming from live feeds. Since we a non-profit laboratory, we would be glad to do a joint project with Microsoft Research/LiveLabs if that would be of interest. Contact me off-line if there is interest.

Dr.YSG at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...
# 6

Duncan,

(just watched your video on Channel 10, nice job explaining where you are headed with this).

Let me see if I can't get your attention a different way.

A few months ago, I contacted Eyal Ofek and Gilad Golan (Windows Live Local Project Lead and Manager) and we had a few conversations about work that I and my team have done regarding mobile collaborative shared mapping applicaitons (no, not just another yada yada location based sales thing) but more in the idea of multi-player gaming and collaborative work applications. In addition to the concept I outlined above - would you be interested in talking about doing some shared work in the area of taking Virtual Earth and making it useful for mobile applications (It seems to us that the real place where one wants this sort of virtual travel, is not in the desktop environment, but rather when I am walking about town, and I need to do spatial oriented queries and social networking based on location).

Dr. Y. Gutfreund

Dr.YSG at 2007-9-4 > top of Msdn Tech,Windows Live Developer Forums,Virtual Earth: Map Control Development...

Windows Live Developer Forums

Site Classified