ԥ abkhazian letter shows as a square in Blender #62009

Closed
opened 2019-02-27 10:38:12 +01:00 by Daniel Tlisha · 14 comments
Member

Ԥ(U0524),ԥ(U0525) abkhazian letters are displayed in Blender as squares.
Here is an screenshot to the issue:
https://drive.google.com/open?id=1j5p4pj3w2KSBTV9QYxpPcxR_pFfgFC0G

Ԥ(U0524),ԥ(U0525) abkhazian letters are displayed in Blender as squares. Here is an screenshot to the issue: https://drive.google.com/open?id=1j5p4pj3w2KSBTV9QYxpPcxR_pFfgFC0G
Bastien Montagne was assigned by Daniel Tlisha 2019-02-27 10:38:12 +01:00
Author
Member

Added subscribers: @Nart, @mont29

Added subscribers: @Nart, @mont29

Thanks, will check on that

Thanks, will check on that
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

Yes, the google font "Droid Sans", that comes by default with Blender, does not appear to support those characters.

@Nart - You should, for now, select a font (Preferences / Interface / Text Rendering / Interface Font that does work for your character set.

A good one to try is google's "Noto Sans" found here:
https://www.google.com/get/noto/

NotoSans-Regular.ttf is only 445KB and supports 582 languages (including abkhazian)

Yes, the google font "Droid Sans", that comes by default with Blender, does not appear to support those characters. @Nart - You should, for now, select a font (Preferences / Interface / Text Rendering / Interface Font that does work for your character set. A good one to try is google's "Noto Sans" found here: https://www.google.com/get/noto/ NotoSans-Regular.ttf is only 445KB and supports 582 languages (including abkhazian)
Author
Member

@Harley Acheson (harley) This is a good solution for my personal use.

In order to attract new comers to Blender that would use it with the Abkhazian interface, this can be a serious issue.

@Harley Acheson (harley) This is a good solution for my personal use. In order to attract new comers to Blender that would use it with the Abkhazian interface, this can be a serious issue.
Member

@Nart :

In order to attract new comers to Blender that would use it with the Abkhazian interface, this can be a serious issue.

I understand, but it is a bigger problem that it might seem at first.

We need to do our own font-handling and drawing and so can't rely on using a font that is supplied by the operating system. Therefore we have to ship blender with font(s).

We are currently shipping with a font (Droid Sans) that supports a fairly large number of languages fairly well. But there isn't a single font that does all languages very well. Nor can there be, because of the way that so many languages and regions overlap in the way that they use characters.

Google has a project to support all languages and regions in a typeface family that also tries to maintain some similarity between them. That is Noto Fonts . But using those would involve shipping a few different fonts with Blender rather than one. And that would also mean we'd need to logically tie a font to a translation so that we'd use "Noto Sans" for most, Noto Sans CJK for some, etc. But I think just three or so would cover all that we need (and far more than we would probably ever need) and could still be smaller than the total size of droid sans (5MB uncompressed).

I'll do some research on it.

@Nart : > In order to attract new comers to Blender that would use it with the Abkhazian interface, this can be a serious issue. I understand, but it is a bigger problem that it might seem at first. We need to do our own font-handling and drawing and so can't rely on using a font that is supplied by the operating system. Therefore we have to ship blender with font(s). We are currently shipping with a font (Droid Sans) that supports a fairly large number of languages *fairly well*. But there isn't a single font that does all languages very well. Nor can there be, because of the way that so many languages and regions overlap in the way that they use characters. Google has a project to support all languages and regions in a typeface family that also tries to maintain some similarity between them. That is [Noto Fonts ](https://www.google.com/get/noto/). But using those would involve shipping a few different fonts with Blender rather than one. And that would also mean we'd need to logically tie a font to a translation so that we'd use "Noto Sans" for most, Noto Sans CJK for some, etc. But I think just three or so would cover all that we need (and far more than we would probably ever need) and could still be smaller than the total size of droid sans (5MB uncompressed). I'll do some research on it.
Author
Member

@Harley Acheson (harley) I found Ҧ(U04A6) ҧ(U04A7) in Droid Sans, this can be used instead, it's not a perfect solution.

Couldn't we add the missing Unicode characters to the Droid Sans font that is shipped with Blender? the process is fairly simple, the svg file for the character can be imported to it's corresponding Unicode slot, can be done with this online tool glyphrstudio , one thing is that I'm not sure if it keeps all the font's data intact afterwards.

cyrillic_small_letter_pe_with_descender.svg
cyrillic_capital_letter_pe_with_descender.svg

@Harley Acheson (harley) I found Ҧ(U04A6) ҧ(U04A7) in Droid Sans, this can be used instead, it's not a perfect solution. Couldn't we add the missing Unicode characters to the Droid Sans font that is shipped with Blender? the process is fairly simple, the svg file for the character can be imported to it's corresponding Unicode slot, can be done with this online tool [glyphrstudio ](http://www.glyphrstudio.com/), one thing is that I'm not sure if it keeps all the font's data intact afterwards. ![cyrillic_small_letter_pe_with_descender.svg](https://archive.blender.org/developer/F6735666/cyrillic_small_letter_pe_with_descender.svg) ![cyrillic_capital_letter_pe_with_descender.svg](https://archive.blender.org/developer/F6735676/cyrillic_capital_letter_pe_with_descender.svg)
Member

@Nart

Couldn't we add the missing Unicode characters to the Droid Sans font that is shipped with Blender?

Actually I hadn't thought of that because I had assumed that the font we shipped was an unchanged binary.

But I was wrong. It turns out that the font we ship, that we call "droidsans.ttf", is already a custom thing. From the notes about it:

Blender Main I18n font ("droidsans.ttf") includes glyphs imported from the following fonts:

  1. DejaVu Sans
  2. Droid Sans Regular
  3. Samyak-devanagari
  4. Droid Sans Hebrew Regular
  5. Droid Sans Ethiopic Regular
  6. Samyak-tamil
  7. KhmerOSsys
  8. tlwg' Loma (Thaï)

These were merged using FontForge in (approximately) the above order.

So if the font we use has empty unicode slots for just a few characters you need then they can certainly be added.

Is this something that you can look into? Not necessarily all of it, but anything you can do would be appreciated. For something like this it would make the most sense for it to be initiated by someone familiar in the target language.

The font that comes with blender can be found easily. There's probably a "2.80" folder (or similar) inside the folder that contains the blender executable. then in "datafiles / fonts" you should find "droidsans.ttf.gz". That file can be uncompressed with many compression utilities.

The best thing would be to look through those other fonts listed above since we are already dealing with their licenses correctly, looking for a character that matches the rest as best as you can in style, size, weight, character. It especially has to be a similar weight or will look funny. But that is easy to see by just testing the font in some other application that will allow you edit Abkhazian sentences.

If you are able to actually merge them in that would be great, but even doing part of this would be nice. So just saying "copy U04A6 and U04A7 from the current Droid Sans Regular as found on google" would be awesome.

Personally I'd prefer this approach to dealing with custom strokes like in your attached svg files as that would make future maintenance of the font more complex.

Note that I am not the maintainer of this part of the Blender source. Any changes would most likely be approved by @mont29.

Thanks for you help!

@Nart > Couldn't we add the missing Unicode characters to the Droid Sans font that is shipped with Blender? Actually I hadn't thought of that because I had *assumed* that the font we shipped was an unchanged binary. But I was wrong. It turns out that the font we ship, that we call "droidsans.ttf", is already a custom thing. From the notes about it: > Blender Main I18n font ("droidsans.ttf") includes glyphs imported from the following fonts: > > 1. DejaVu Sans > 2. Droid Sans Regular > 3. Samyak-devanagari > 4. Droid Sans Hebrew Regular > 5. Droid Sans Ethiopic Regular > 6. Samyak-tamil > 7. KhmerOSsys > 8. tlwg' Loma (Thaï) > > These were merged using FontForge in (approximately) the above order. So if the font we use has empty unicode slots for just a few characters you need then they can certainly be added. Is this something that **you** can look into? Not necessarily all of it, but anything you can do would be appreciated. For something like this it would make the most sense for it to be initiated by someone familiar in the target language. The font that comes with blender can be found easily. There's probably a "2.80" folder (or similar) inside the folder that contains the blender executable. then in "datafiles / fonts" you should find "droidsans.ttf.gz". That file can be uncompressed with many compression utilities. The best thing would be to look through those other fonts listed above since we are already dealing with their licenses correctly, looking for a character that matches the rest as best as you can in style, size, weight, character. It especially has to be a similar weight or will look funny. But that is easy to see by just testing the font in some other application that will allow you edit Abkhazian sentences. If you are able to actually merge them in that would be great, but even doing part of this would be nice. So just saying "copy U04A6 and U04A7 from the current Droid Sans Regular as found on google" would be awesome. Personally I'd prefer this approach to dealing with custom strokes like in your attached svg files as that would make future maintenance of the font more complex. Note that I am not the maintainer of this part of the Blender source. Any changes would most likely be approved by @mont29. Thanks for you help!
Author
Member

Copy U0525 and U0524 from DejaVu Sans

I did it with fontforge, here is the output file if needed: droidsans_blender.sfd

@Harley
@mont29

Copy U0525 and U0524 from [DejaVu Sans ](https://www.fontsquirrel.com/fonts/dejavu-sans) I did it with fontforge, here is the output file if needed: [droidsans_blender.sfd](https://archive.blender.org/developer/F6743749/droidsans_blender.sfd) @Harley @mont29
Member

@Nart

Copy U0525 and U0524 from DejaVu Sans

I came close, but I am not happy enough to continue yet...

I was able to use FontForge to confirm that U0525 and U0524 are blank in our current font, then copy those from DejaVu Sans (Book weight). Then export the TTF file to the same name, and then make a "gz" version of it.

Afterward that missing "n" is there. However. When viewing the list of available languages in Blender, I see another issue. The following image shows that language in my list (while resolution scale set to 2.0). The top one without the "n", and the bottom shows it there after patch applied. But what is with the second-to-last character? I wouldn't want to proceed without fixing that too. Do you see the same thing? If yes, can you figure out which character that is and try to find a replacement for that too? Note that at "Resolution scale" set to 1.0 it doesn't spike up so high, but still looks like a little solid spikey thing that doesn't look right.

WeirdLetter.png

@Nart > Copy U0525 and U0524 from DejaVu Sans I came close, but I am not happy enough to continue yet... I was able to use FontForge to confirm that U0525 and U0524 are blank in our current font, then copy those from DejaVu Sans (Book weight). Then export the TTF file to the same name, and then make a "gz" version of it. Afterward that missing "n" is there. However. When viewing the list of available languages in Blender, I see another issue. The following image shows that language in my list (while resolution scale set to 2.0). The top one without the "n", and the bottom shows it there after patch applied. But what is with the second-to-last character? I wouldn't want to proceed without fixing that too. Do you see the same thing? If yes, can you figure out which character that is and try to find a replacement for that too? Note that at "Resolution scale" set to 1.0 it doesn't spike up so high, but still looks like a little solid spikey thing that doesn't look right. ![WeirdLetter.png](https://archive.blender.org/developer/F6749766/WeirdLetter.png)
Author
Member

@Harley

I wasn't able to produce the issue, I tested on Ubuntu 18.04 and Windows 10 x64, it seems good from my end.
On another note, Can we add these two U0525 and U0524 to the mono font as well, it's missing there, How can I know the list of fonts that has been merged for the mono?

Screenshot from 2019-03-04 10-44-30.png
Screenshot from 2019-03-04 10-41-13.png

@Harley I wasn't able to produce the issue, I tested on Ubuntu 18.04 and Windows 10 x64, it seems good from my end. On another note, Can we add these two U0525 and U0524 to the mono font as well, it's missing there, How can I know the list of fonts that has been merged for the mono? ![Screenshot from 2019-03-04 10-44-30.png](https://archive.blender.org/developer/F6758638/Screenshot_from_2019-03-04_10-44-30.png) ![Screenshot from 2019-03-04 10-41-13.png](https://archive.blender.org/developer/F6758637/Screenshot_from_2019-03-04_10-41-13.png)

This issue was referenced by ba55cbf5b5

This issue was referenced by ba55cbf5b5ddbe2d5f8bb0609c5b7c9b2ba745f0

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'

Thanks for the investigations, I ended up adding all 'extended cyrillic' chars present in DejaVuSans font.

Ideally using noto font would have been nicer, but this one is not really compatible with the DejaVu/Droid familly.

Thanks for the investigations, I ended up adding all 'extended cyrillic' chars present in DejaVuSans font. Ideally using noto font would have been nicer, but this one is not really compatible with the DejaVu/Droid familly.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#62009
No description provided.