Will it be possible to edit Cesium as a landscape to make room for UE4 Ocean?

I am very happy with the current water mask along with placing foliage on Cesium tiles…however, as am working on a naval project…I wonder if it will be possible soon to edit topography of the Cesium tiles to make room for UE 4 Ocean.

Also, I don’t know if the tutorials updated to cover the new “Exclude” feature as I couldn’t understand how to operate it to be honest.

All’n All I am thankful for the Simul TrueSky solution as it looks even more beautiful with it :slight_smile:

Hello,

Glad to hear that you’re happy with the watermask and the TrueSky compatibility update!

We would certainly like to add terrain editing in the future. However, it may be a while before we are able to look into properly implementing that feature. In the meantime, if collision is not an issue, you may be able to modify the water material to lower the world position of tile vertices within the watermask.

The current Exclusion Zones feature is experimental and temporary, and may not work like you’re expecting. However, if you want to use it, add an element to the Exclusion Zones array. The South and North variables are for latitude, and the West and East variables are for longitude. Think of the Exclusion Zone as a rectangle with sides at these longitude and latitude boundaries - any tile inside this rectangle will be culled.

The easiest way to find the values for the exclusion zone may be to create an actor and add a Georeference Component, then move it around the map to figure out where your latitude and longitude boundaries should be.

Stay tuned for improvements to tile exclusion in the future!

1 Like

Thank you for your kind reply, coincidentally, I have no issue with collision as I managed to remove it specifically for the naval vessels…so, " if collision is not an issue, you may be able to modify the water material to lower the world position of tile vertices within the watermask." if you be kind and just suggest how to achieve this, I would really appreciate it :slight_smile:

Thanks in advance.

I experimented a bit and found something that may work for your purposes:

  1. In the CesiumForUnreal plugin content folder, open the Materials folder, and open the M_CesiumOverlayWater material.
  2. In that material, double click on the CesiumSimpleWaterSurface material function. You are now modifying the material that creates the water effects on Cesium tilesets.
  3. Click on the green “SetMaterialAttributes” node.
    image
    In the details panel, add an array element. Using the dropdown, set the new element to WorldPositionOffset.
    image
  4. You’ll see a new pin on the SetMaterialAttributes node. Add the following nodes between the GetMaterialAttributes WorldPositionOffset pin and the SetMaterialAttributes WorldPositionOffset pin.

    The value you are subtracting can be whatever you need for your project - for this example, I set it to 10,000.
  5. Your node graph should look like this.

    Apply and save the material.
  6. Once that compiles, you’ll see the ocean is now offset downwards by the specified amount. It may look weird around the beaches/waterline - I’m sure there’s a way to smooth that out if you need, but I couldn’t advise you on that.

Now you should be able to add an ocean normally.

Please take this with a grain of salt, as this may not be the best way to implement a material like this, and may cause unexpected issues.
I’m not sure how this ocean would behave over the whole globe - it would be great to hear your feedback regarding using Unreal’s ocean and Cesium World Terrain. Understanding the limitations of the two will be helpful for developing our future solutions. So if you run into weird behavior, please let us know here!

And of course, if you have any screenshots or projects using Cesium for Unreal that you’re able to show, we’d love to see what you’ve created.

1 Like

Quick addendum to this - We are working on ocean visualization, and are planning to add bathymetric data eventually. You can take a look at our roadmap for more information, but a proper ocean floor and ocean is in the future!

1 Like

It is very exciting and I can’t wait for the Cesium to UE5
Ok, I tried your amazing suggestion and I think it is default to the Bing to have that drop
However, when I added my water plugin in same surface level as ocean, I got these odd issues




Where the water mesh from the UE4 ocean would float as if there is a collision issue between materials?!! I dunno if that is possible to begin with…however, physix wise, the vessels works fine…I will try to test if making the UE4 ocean hidden in gameplay would fix it somehow…

I hope you don’t mind me sharing these updates, and again, I appreciate your awesome work and wish you guys more success.

Hello,

That’s a very strange issue, and I’m not seeing it on my end, but I haven’t really used the UE4 ocean beyond what I did for this thread. If you’re able to find a fix for it, please let us know.

Feel free to share your updates, we always love to see what you create!

Hi Guys, Is this method still valid today?

Hi - As far as I know, it should still work. Let me know if you’re experiencing problems with it.

-Alex

Hi Alex,

Since the M_CesiumOverlayWater is deprecated which material function should we adjust to make this work?


I did exactly as you mentioned above, but the See/Ocean bottom does not offset with the given value.
Overview shot:


Detail shot1:

Detail shot2:

Any Ideas what I’m missing here?
Cheers
Andras

Hi @Andras_Sule,

Modifying CesiumSimpleWaterSurface as shown above should still be working for this, though it’s possible an update has changed this. The function is now used in the MI_CesiumThreeOverlaysAndWater material, which is found in the plugin content folder under Materials/Instances.

Try manually dragging that material into the Water Material slot on the tileset after modifying CesiumSimpleWaterSurface, and let me know if that helps.

-Alex

Hi Alex,

In the content/Materials/Instances folder, I only have these two MI-s:


I dragged both into the Water Material slot and nothing seems to happen.

I’m out of ideas, any suggestions?

Andras

Hi Andras,

My mistake, the material instance I meant to refer to was MI_CesiumThreeOverlaysAndClippingAndWater. So try modifying CesiumSimpleWaterSurface and saving your changes.

One thing to note is that the watermask doesn’t cover all bodies of water. Make sure the Enable Water Mask setting is checked on your tileset. If you’re not seeing water effects appear over the area you’re working with, then this approach won’t work in that area because it isn’t currently covered by the watermask. If that’s the case, you’ll want to draw out the area with a cartographic polygon and use that instead to spur the displacement. The Cesium for Unreal samples project now contains a material that you can use to get started with custom watermasks.

-Alex