Select to view content in your preferred language

Water/Ocean simulation for ArcGis Unity

1125
2
Jump to solution
09-14-2022 11:31 PM
ChristofferLindellBolin
Occasional Contributor

Hi, in ArcGis the water texture is part of the basemap and this makes it rather complex to replace it with Ocean/Water shaders. I found one approach that places the water shader (flat plane object) at a low altitude with a location component and the water hovers over sea-level on the map above by 1 pixel. This way, it hides the ocean images. Although this approach is not ideal since it involves lots of manual labor, especially if you want a global scene.

So my question is if there is any built-in approach to solve this issue? For example by removing the ocean textures?

Thankful for any help!

Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Matt_Nelson
Esri Alum

The solution you discovered is certainly the easiest to get working. You can even adjust the water texture to "follow" the camera so you only need the one and you don't need to work about the whole earth.

Another approach that Cory mentioned would also be possible where you update our tile shader and reference another ArcGIS Layer that has a water mask to hide our content. This is not something we have done yet although it is possible.

View solution in original post

2 Replies
coryeicher
Frequent Contributor

Hi,

That is a creative solution. Very cool.

One other idea is to do this on the back end by publishing a custom ArcGIS basemap with ocean areas removed or rendered as 100% transparent.

My first thought to achieve this was to use the Vector Tile Style Editor... Here is an example of what I created Light Gray Canvas - Oceans Removed. Unfortunately, I tested and it didn't work in Unity.

Then I remembered that the Unity SDK does not currently support vector tile layers. Check out this thread for confirmation of this and some alternate ways to create a custom basemap without oceans/water.

FWIW I found this useful, non-Esri tutorial which walks you through editing ArcGIS vector tile services: https://opengislab.com/blog/tag/Design+Custom+Basemap

Good Luck,

-Cory

CORY EICHER
www.eichcorp.com
cory@eichcorp.com
Matt_Nelson
Esri Alum

The solution you discovered is certainly the easiest to get working. You can even adjust the water texture to "follow" the camera so you only need the one and you don't need to work about the whole earth.

Another approach that Cory mentioned would also be possible where you update our tile shader and reference another ArcGIS Layer that has a water mask to hide our content. This is not something we have done yet although it is possible.