ClipsDescendants should work with rotated UI elements

Wanted to add on that this would make developing flight computer UIs much, much easer for flight sims. Currently to make an artificial horizon, I have to Add black frames around a solid blue frame, and set the z index of the brown frame in between the black borders and the and blue horizon. This takes up more time and resources to achieve the same result if ClipDescendants would behave properly for rotated objects.

8 Likes

This behaviour can be achieved with the release of CanvasGroups.

7 Likes

As stated in the above reply, this feature was implemented in the form of CanvasGroups

1 Like

Ah turns out it works if the ZIndexBehaviour is on:
image
I was testing on Global…

I’m afraid I have to disagree that it is hard. It involves Math, not stencil buffer or CanvasGroups. When the parent GUI intersects with the child GUI, Find the intersection point, then split into multiple triangles around the origin point. that should work.

7 Likes

If implemented in C++, this shouldn’t be too expensive, or too difficult. Again, we have CSG, which is essentially the 3D version of this.

6 Likes

its been 6 years and this feature still has not been added

4 Likes

I am surprised this is not a thing yet

4 Likes

I still can’t believe this hasn’t been added yet. It must be possible now? Is there seriously no way of doing it?

2 Likes

@Buzzyy_Bee @iOwn_You
Please see the above.

I’ve noticed that at low graphics qualities, CanvasGroups crap out and have awful resolution. It’s very noticable and doesn’t look natural at all. Also, using this just to clip things while rotated would be a good waste of texture memory.

3 Likes

it’s end 2023 and this bug still hasn’t been fixed

2 Likes

2024 and this is still an issue :confused:

3 Likes

This is still a very annoying issue, limits our UI a lot since most of our UI is or become rotated

Edit: Found a work around, use a CanvasGroup instead as it will always clip descendants

The “workaround” you mentioned appeared previously. Too many and it’s a great memory waste and it affects performance.
Performance and memory usage are important, so this must be implemented.

2 Likes

What exactly is the performance issue? Is it the use of canvas groups? Should I be avoiding them?

Little is good, but not too many. if you put too many big CanvasGroup in a single place, it might experience memory leak.

Is there a dev forum post on this with more details? Wanna make sure this doesn’t affect my game

CanvasGroups generate a texture that is rendered in the place of the CanvasGroup. This texture does use up extra memory, albeit that probably shouldn’t be your main reason behind avoiding CanvasGroups. The two major limitations with CanvasGroups are that:

  1. The final rendered texture is subject to the player’s selected graphics quality. This could ruin your image quality.

  2. When a device is close to being out of memory, CanvasGroups render as a pure black texture; this means in this case, players will not only be unable to see the intended UI but also unable to see game-content which is rendered behind.

1 Like

YOU must understand that this would involve strikingly complex math. It could be imperformant on weak devices. Now that CanvasGroups exist, they’ll probably never add this. Unless of course, too many people realize that CanvasGroups are blurry at low graphics qualities, which weak devices will be using…