Globe Anchor doesn't Detect Transform Changes if Prim has xformOp:orient instead of xformOp:rotation

Hi! :slightly_smiling_face:

I’m working in scene with most basic Omniverse+Cesium setup (the one you can get by following cesium’s guides on “Cesium for Omniverse - Getting Started”).

Today I’ve stumbled upon a problem:

In my scene I have a georeferenced prim that has no xformOp:rotate, but instead has xformOp:orient*.
Unfortunetely it’s Cesium Globe Anchor doesn’t automatically update Global Positioning (lat, lon, height) when prim’s transform changes, neither does changing Global Positioning manually change the transform on that prim. The problem disappears once I put xformOp:rotate back on the prim and get rid of xformOp:orient. Also everything works fine with prims that never had xformOp:orient on them in the first place.

Prim’s Cesium Globe Anchor has Adjust Orientation for Globe when Moving and Detect Transform Changes are both set to True.

The question is: is there something I should be doing that I’m missing, or is it simply not supported by Cesium for Omniverse as of 0.17.0? :thinking:

Potential Workaround??: Another thing I’d like to run by you before investing even more hours in the matter is my idea for a workaround. You see, at the moment it seems that I need to retain xformOp:orient on my prim, but I would still like it’s Cesium Globe Anchor functionality present. For that purpose I was thinking about making another georeferenced prim (preferably empty xform) follow my main prim every update loop, so they remain in the same place, and then somehow setting all the associated values on my main prim so that it mimics working Cesium Globe Anchor. But I think that would’ve required coming up with the missing functionality for xformOp:orient support, wouldn’t’ve it? :sweat_smile:

If that wouldn’t work, maybe you happen to have any other ideas on how to make it work? I’d greatly appreciate all the info on the matter.

  • I need xformOp:orient, because I need to avoid some nasty gimbal lock I’ve been getting when trying to perform animated rotation transitions with standard rotationXYZ on my camera (the main prim).

Hi @maxiping20

Thanks for the bug report. Initially globe anchors were only meant to work with translate, rotate, and scale ops. I submitted a PR to make it work with orient as well: Allow globe anchors to work with `xformOp:orient` by lilleyse · Pull Request #694 · CesiumGS/cesium-omniverse · GitHub

1 Like