Rendering Text

Hello together,

is there a way to render Text? For example a digital clock…

Thanks

Carl

1 Like

This is reguest also on my menu!

Hi all! Thanks for your question! I’ve brought this up with the development team and I expect them to respond soon!

1 Like

Hi Both,

So there is current 2 main options for you

if you need 2d overlay text on the viewport you can use omni.ui, there is a workflow where if you create a ui.Window that is named “Viewport” like the viewport one, the content of that Window will be “merge” with the viewport and you will be able to be integrated into the viewport rendering
you will be able to do more than just text, effectively any omni.ui.Widget can be rendered there. but only 2D

Second if you need 3D then it is a little more tricky as currently you need to use USD Geometry and MDL texture.
you can generate MDL Texture Texture using something like OIIO for example.

for simple numbers and clean animation for a Digital Clock for example you can use workflow and update/animatie the UV of the polygon that have the MDL with time assigned to it.

Let me know what of those is what you are after and we can go into more details if needed

Finally coming in the Fall probably there will be a new API that will enable to do UI in the 3D space that will include Text and more we are not yet ready to give too much details as it is still being designed

Thanks

1 Like

please can you share some more links to the 2d overlay text solution?

Thank you for the information.

I need to implement a dimension line like this…

…so I need it in 3d-space.

I’ll generate small jpgs and use thos as textures, as a workaround and then switch to omni-ui when it is possible to use it in 3d.

Thanks

Carl

in the latest create we have a good example on the 2D overlay workflow
omni.kit.viewport_widgets_manager : Viewport Widgets Manager

            window = ui.Window("Viewport")
            window.detachable = False
            with window.frame:
                   # .... some ui code like 
                   with ui.HStack(): 
                         ui.Spacer()
                         ui.Label("Some)
                         ui.Spacer()

you don’t need to use that Height Level API , that is usef by the collaboration manager but this is a good examples for 2D

@c.bickmeier : for 3d and what you are showing here it will be complicate with 21.3
you can check the above post as we do track the 3d position of object and project that in screen space but doing both text and line/arrows is not gonna work well or be hard

for 21.4 we are working ona new Manipulator and Overlay 3D system that will make that easier

thanks for the info… will wait for 21.4 then :-)