View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001412||NoesisGUI||Unity3D||public||2019-02-24 01:01||2019-02-25 21:44|
|Target Version||Fixed in Version|
|Summary||0001412: Noesis fails to render Bengali/Sinhala/other fonts with ligatures and unicode characters|
|Description||See summary :)|
|Steps To Reproduce||1. Display any ligature/non-English compound character font.|
<TextBlock Text="প্লাবনের পরে সমস্ত পৃথিবী" FontFamily="Fonts/#Nirmala UI" FontSize="48"/>
(attached Nirmala.zip font used above)
<TextBlock Text="প্লাবনের পরে সমস্ত পৃথিবী" FontSize="48"/> (just use default font)
Expected: displays correctly (same as Word or Google Translate:
Both default and Nirmala fonts are wrong. Displayed correctly in Word and online for comparison
Note: this has been issue in Noesis 2.1. I opened it now because we got reports from 2 different users last week, and I was waiting to try and test Noesis 2.2 beta.
|Tags||No tags attached.|
Nirmala.zip (2,135,613 bytes)
ExampleFontIssue.jpg (91,614 bytes)
ExampleFontIssue.jpg (91,614 bytes)
|Yes, ligatures aren't implemented yet. Thanks for the ticket.|
Thank for the info! Is it possible for me to implement them somehow? (maybe expose some access to the text renderer/options?)
I'm not sure what's involved in implementing them, however it will significantly hinder a group of customers from using the app our team is making. I'm willing to do some work to get them done faster, if needed.
Also confirmed issue with Arabic, Hindi, Tamil, Telugu. Btw, our app's biggest user base currently is India (if it helps with prioritization.)
Not sure how many Noesis users are affected overall across all Noesis apps.
just checking - are you using Skia for font rendering? I'm looking into Skia + HarfBuzz combination to render everything (same libraries used in Chrome)
Ligatures are not implemented. It's been requested many times. Unfortunately this feature won't go in 2.2 (we need to release this version before GDC). We use our own internal renderer (+ a few parts of FreeType), so probably the way we will go is using HarfBuzz.
For now the only workaround is preprocessing the text yourself and change the unicode points accordingly. How urgent is this for you?
Thanks for the info! I would like to have it in our app's next release (~1 week.) Deciding whether to release now and do this later. Generally it's the next top 2 issue on our task list (after startup performance, which is ongoing investigation.)
Do you know if HarfBuzz can pre-process text and generate new codepoints? Or is it another solution? If you don't know yet no problem! I am researching on my own too. Haven't worked with HarfBuzz until last week when we got the issue reports.
|Yes, HarfBuzz can do that.|
Just discussed with my coworker.
We have two font rendering tasks:
1. UI, currently Noesis
I'll look into HarfBuzz for that part.
2. Render to texture, currently uses TextMesh with Unity's native OS font rendering. We were hoping to use Noesis since 2.2 mentioned support for OS fonts
For #2 we just decided to try OS font rendering instead of TextMesh (Android only, since 90% of our users are on Android in India), because we haven't tested Noesis 2.2's font support for OS fonts yet. Example: does Noesis load the full OS font? or just characters needed? When is memory freed, etc. I'll ask on the forums.
We'll render to texture from a native plugin, then draw in Unity with mesh.
Thanks again for the info!
Just realized HarfBuzz may substitute characters, but will also reposition glyphs -> not sure how this will work with the current Noesis. Thus will wait for Noesis to support ligatures for #1 above (the UI) and will use OS-side font rendering for #2.
Either way I don't want to take too much time from your GDC work, no problem to pick up the discussion later.
Yes, please ask about those font doubts you have on the forums.
|2019-02-24 01:01||nokola||New Issue|
|2019-02-24 01:01||nokola||File Added: Nirmala.zip|
|2019-02-24 01:01||nokola||File Added: ExampleFontIssue.jpg|
|2019-02-24 04:16||jsantos||Assigned To||=> jsantos|
|2019-02-24 04:16||jsantos||Status||new => assigned|
|2019-02-24 04:16||jsantos||Note Added: 0005454|
|2019-02-24 06:37||nokola||Note Added: 0005456|
|2019-02-24 19:36||nokola||Note Added: 0005458|
|2019-02-24 21:02||jsantos||Note Added: 0005459|
|2019-02-24 21:02||jsantos||Status||assigned => feedback|
|2019-02-24 21:08||nokola||Note Added: 0005461|
|2019-02-24 21:08||nokola||Status||feedback => assigned|
|2019-02-24 21:18||jsantos||Note Added: 0005464|
|2019-02-24 21:27||nokola||Note Added: 0005465|
|2019-02-24 21:34||nokola||Note Added: 0005466|
|2019-02-25 21:44||jsantos||Note Added: 0005471|