create3000 / cobweb

Cobweb is now X_ITE
https://github.com/create3000/x_ite
Other
10 stars 5 forks source link

GeoPositionInterpolator #10

Closed andreasplesch closed 8 years ago

andreasplesch commented 8 years ago

Wow, great progress. There has been some discussion on how coordinates should be interpolated:

http://web3d.org/pipermail/x3d-public_web3d.org/2015-November/003880.html

While most implementations just linearly interpolate, there is an expectation that interpolation should happen on a Great Circle as it is the shortest path between two points on a sphere. However, the spec. does not require this. For small distances, there is no real difference between linear and great circle interpolation but for larger distances (between continents) there is.

So I added an option for this in x3dom, "onGreatCircle": http://doc.x3dom.org/author/Geospatial/GeoPositionInterpolator.html

create3000 commented 8 years ago

I interpret the interpolation as simple interpolation of the geo coords, which results in a great circle interpolation. For other interpolation paradigms one can use the interpolators from the Interpolation component.

andreasplesch commented 8 years ago

Simple interpolation of the geo coords as they are before their transformation to world coords will lead to different paths depending on the geoSystem. For example, linearly interpolating between Berlin and Seattle will produce these 3d paths: a) GD: more or less along the latitude: across the Atlantic and across the U.S b) GC: drilling through earth, under the Atlantic and Canada, and reemerging in the U.S. c) UTM: does not make sense since in different UTM zones I believe this is what most implementation do although it is a bit absurd. Is this kind of simple interpolation what you were referring to ?

A great circle interpolation would produce a path d) from Berlin north to Greenland, Canada and back to the U.S. West Coast This is really what makes most sense but is not specifically required.

For great circle interpolation one could use SLERP between the two GC vectors, in 3d. It is actually pretty straightforward.

I tested http://www.web3d.org/x3d/content/examples/Basic/Geospatial/_pages/page02.html in cobweb. It looks good ! Looks more like the a) kind of interpolation.

create3000 commented 8 years ago

Ok, thank you, now I understand. Yes Cobweb uses interpolation paradigms of a,c and for GC a SLERP interpolation. I will think about great circle for a and c.

create3000 commented 8 years ago

As it turned out now, Cobweb uses different interpolation paradigms for each geoSystem. That's not the best choice. I will testwise implement great circle interpolation for all geoSystem's, although it leads to extra calculations, but I think this is the best choice.

create3000 commented 8 years ago

Fix committed. Now, Cobweb always uses SLERP interpolation for all geoSystem's.

andreasplesch commented 8 years ago

I tested again with http://www.web3d.org/x3d/content/examples/Basic/Geospatial/_pages/page02.html and the viewpoint uses the great circle path. Thanks. I proposed a change to the spec. to specifically allow for great circle interpolation. Would you mind if I repropose that great circle interpolation should be used as a default using cobweb (and x3dom) as example implementations ?

create3000 commented 8 years ago

Great arc between Berlin and San Francisco.

maph_0332

create3000 commented 8 years ago

Would you mind if I repropose that great circle interpolation should be used as a default using cobweb (and x3dom) as example implementations?

I think it would be a great help for X3D developer if the interpolation paradigm for GeoPositionInterpolater is further specified, and it would be very important for cross browser compatibility, and this is what X3D authors would expect. What can I do if you repropose it?

andreasplesch commented 8 years ago

Nice. Is this d3 ?

I think as a x3d browser implementor, and one who cares about the standard, your opinion would have significant weight. Are you a member of the web3d consortium ? It should make you a member, in any case.

Are you on the x3d geospatial working group mailing list ? It is very low volume but would be the place where support for such a proposal would be discussed. I would repropose on x3d-public and if I get support from you on the geospatial list I can report back that there is support from the geospatial working group. I think then it would come down to specific wording.

Specification of the interpolation of paradigm would actually be less intrusive than introducing an additional Boolean field ("onGreatCircle") which is what I originally proposed. It may be just a non-binding recommendation first to give other x3d browsers time to catch up.