CesiumGS / cesium-omniverse

Bringing the 3D geospatial ecosystem to Omniverse
https://cesium.com/platform/cesium-for-omniverse/
Apache License 2.0
55 stars 7 forks source link

Verify consistent tile lod/downloads with Cesium for Unreal #654

Open r-veenstra opened 7 months ago

r-veenstra commented 7 months ago

Tests in #653 yielded substantially different download quantities over network for what should be identical locations / tilesets / screen space error / screen resolution between Unreal and Omniverse.

This may have simply been a settings issue between the two tests.

However, we should setup identical scenarios between Unreal and Omniverse to verify we're acheiving consistency between the two platforms.

lilleyse commented 7 months ago

I wonder if this is because of lack of DPI scaling, which was added to Unreal in https://github.com/CesiumGS/cesium-unreal/pull/885.

r-veenstra commented 7 months ago

Initial test from the same camera position + fov, same dataset, MSSE at 16, shows OV loading more detail than Unreal

Omniverse capture 2024-02-02 11 41 50

Unreal HighresScreenshot00010

Changing Apply Dpi Scaling from Project / Yes / No in unreal does not change what is loaded in Unreal

Adding a breakpoint into Cesium3DTilesSelection::ViewState computeViewState seems to be using all the correct aspect ratios, resolution etc.

Possibly a discrepancy with the FOV's being displayed in OV vs UE.

For Omniverse: Horizontal FOV is 73.29272455654551 deg Vertical FOV is 45.42412168861224 deg calculated in Cesium3DTilesSelection::ViewState computeViewState

In Unreal: Vertical FOV is 36.259151 deg Horizontal FOV is 60.405945 deg using the GetHfov and GetVFov blueprint functions of CineCameraActor

I can't guarantee that the above values in Unreal are actually being passed into Cesium Native, so that's just a guess.

I don't have UE setup for debugging at the moment. Next step would be to compare exactly what is being sent to Cesium Native on both platforms.

timoore commented 7 months ago

Ryan, how did you set up the identical positions and camera settings in the two programs, if Unreal is reporting something different?