create3000 / cobweb

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

z fighting, clipping for Viewpoint in GeoLocation node #33

Closed andreasplesch closed 7 years ago

andreasplesch commented 7 years ago

https://raw.githubusercontent.com/andreasplesch/QGIS-X3D-Processing/master/examples/output/demUTM_GeoVP.x3d

uses a GeoViewpoint and

https://raw.githubusercontent.com/andreasplesch/QGIS-X3D-Processing/master/examples/output/demUTM_Viewpoint.x3d

uses a regular Viewpoint wrapped in a GeoLocation which should result in the same effect.

However, the second scene has clipping issues. First nothing is shown. Then rotating with the mouse can show the half of the scene closer to the viewpoint. Double clicking to reset the view shows flickering.

A precision issue with large numbers ? But not in the GeoViewpoint scene ?

image

create3000 commented 7 years ago

For geospatial object (very large objects) GeoViewpoint is appropriate. GeoViewpoint uses other automatic clip plane determination functions than Viewpoint. But automatic is not always the best solution. Authors can add a NavigationInfo with appropriate visibilityLimit to prevent clipping.

andreasplesch commented 7 years ago

ok, I see. https://github.com/create3000/cobweb/blob/master/cobweb.js/cobweb/Components/Navigation/NavigationInfo.js#L302 uses getMaxZFar which is 1e5 for regular Viewpoints and 1e9 for Geoviewpoints. Strictly speaking, the spec. says the visibilityLimit default is 0 which indicates infinity: http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/navigation.html#NavigationInfo But since infinity is hard to deal with, I agree, it makes sense to define a max. which is reasonable. Thanks for the clarification.