Closed andreasplesch closed 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.
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.
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.
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.
Fix committed. Now, Cobweb always uses SLERP interpolation for all geoSystem's.
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 ?
Great arc between Berlin and San Francisco.
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?
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.
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