Crisp text issue when reproducing playground in my own repo

I am having trouble reproducing the clarity of the text in this playground:

In my own repo, this is the code:

window.advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI('UI');
const textAffordance = Button.CreateSimpleButton('textAffordance', textString);
  textAffordance.width = 0.8;
  textAffordance.height = 0.8;
  textAffordance.color = 'white';
  textAffordance.background = 'green';

And here are the two buttons created by the playground and repo:

image (10)
image (9)

I’m viewing them both on the same monitor, both in fullscreen. I’ve tried messing around with rootContainer.scaleX/Y and renderScale but nothing seems to help.

In case it’s relevant, a coworker and I both took videos of this playground:

I’m on Windows and you can see changing the render scale resizes the text, and he’s on Mac and it just makes it crisper.

renderScale should have made an effect :thinking: Can you share your project, or at least a small reproduction of it? It will be easier to understand what’s going on.

It has an effect, it just doesn’t help with how crisp the text is. Here is the advancedTexture.renderScale set to 0.5 and 2. it changes the size, but not the resolution it seems.

Unfortunately I’m not permitted to share the repo, and can’t really reproduce a small part as it’s thousands and thousands of lines at this point, but if you have questions about a specific part I can try to pull that out. I’m sorry, I know that might make debugging this impossible.

So it turns out it was something in our post-processing. Need to figure out exactly what, but I disabled it and it works.

1 Like

Ooooh, I’m glad you found something there! I was looking at the Leonardo da Vinci text example and realized that you might also need to increase the font size when you change the renderScale: Simple GUI in fullscreen mode | Babylon.js Playground ( (Which makes sense to me, because if you increase the render size of the texture in pixels the font should also grow in response) :thinking:

It turned out it was FXAA :man_facepalming: Might need to split our GUI into a different camera then to not apply post processing to it?


There’s a bit easier way now: just set adt.layer.applyPostProcess on the ADT :smiley: New Kernel Blur Postprocess | Babylon.js Playground (


Now, that’s a nice adding :smiley: Bookmarked.

1 Like