Render text label on ExpoTHREE

Creating an AR app with ExpoTHREE (sadly unable to use ARKit as it will be for Android and iOS versions below 11), but I’ve been running into problems trying to get text labels to render next to objects dynamically.

It appears that Three.TextGeometry is not supported in Expo, is that correct? The only way I can find to create a floating sprite text label it is to use a text to .png converter and then create a texture with that on top of a PlaneGeometry, but this isn’t ideal. Is there another way?

If you don’t really want to render in 3d space you could just render React UIs on top of your GLView. So you could use position: 'absolute' in the style and position them (say with left: ..., top: ...).

2 Likes

Here is an example of creating 3D text in expo: Source Code
Expo Demo

Notice that this example uses the Three.TextBufferGeometry which is just a more efficient version of Three.TextGeometry

2 Likes

I thought about this. But wanted to try to render in 3D space using lookAt(camera.position) to keep the text facing the viewer, and it avoids doing the conversions between 2D and 3D coordinate spaces.

Originally I thought this would need ARkit to function, but looking again, I think it will work. Thanks!!