Comments (11)
TrueType-flavored OpenType fonts (aka TTF) conventionally have clockwise outer contours, while CFF-flavored ones (aka OTF) have the reverse. That said, these are conventions, and both work perfectly fine in most apps if they do not follow the convention. I have some code in GLyphy for fixing up contour directions if you care to check.
from msdfgen.
I've found some other fonts that appear to be inversed, either completely or partially.
This one seems to be completely inverse: http://www.dafont.com/sports-world.font
from msdfgen.
So does the font file specify which direction it uses or am I supposed to guess it from the geometry somehow? Unless it does, I'm thinking of just adding a switch that will invert it. Anyway, for now, you should be able to fix the distance field if you just invert the colors.
from msdfgen.
I had the same problem with svg downloaded from thenounproject.com
I've made some tests in the shader and I have
float sigDist = 0.5- median(sample.r, sample.g, sample.b);
or
float sigDist = median(sample.r, sample.g, sample.b) - 0.5;
depending on the case. (it's just a temporary solution..)
from msdfgen.
I have added an option (-reverseorder) that will fix the output for shapes defined in reverse order.
from msdfgen.
@Chlumsky - I borrowed the logic from invertColor for OTF fonts and the result looks in correct. I changed the 0.5 to 1.0 and it seems to produce correct results. Wondering if I'm missing something on this? Font is Chalet Comprime Cologne 1980. It also lives in various places on the internet.
Also wondering if anyone has seen this on TTF font as well?
from msdfgen.
The -reverseorder flag doesn't seem to be working correctly as noted above.
Compare the two results below. First is generated using no -reverseorder flag and then the image is inverted in graphics magic. Second is generated using -reverseorder flag.
I believe the error is as noted above. If you change the value in invertColor from 0.5 to 1.0. The results come out the same.
from msdfgen.
You are absolutely right, sorry, I have no idea how I overlooked this.
EDIT: Fixed.
from msdfgen.
I'm not getting the same behavior. Actually, what you're claiming is the output with reverse order looks a lot like what would happen before the fix.
from msdfgen.
Looks like you're right. I had a weird local merge on my fork of your repo which seemed to use the old version! Thanks and sorry I'll delete my posts.
from msdfgen.
Since 0e68504, the standalone version will automatically guess the orientation of the input by sampling a distance outside the shape's bounds. This can be disabled by -keeporder
or -reverseorder
.
from msdfgen.
Related Issues (20)
- Msdf generation fails on symbol with several nested holes HOT 4
- Alpha as input ? HOT 1
- Allow FT_LOAD_DEFAULT in import-font extension HOT 5
- Confusing SignedDistance calculation in QuadraticSegment::signedDistance
- Inverting Y Axis makes uneven baseline HOT 2
- Segfault on Empty Shape
- Chinese character rendering issues HOT 5
- The effect of render small character is not good HOT 2
- Outline effect is not good on some glphys HOT 4
- Failure to import SVG file with empty initial <g> element HOT 4
- Using vcpkg leads to compiler error in VS2022 HOT 4
- Incorrect rendering of SVG with internal path HOT 1
- New release soon? HOT 1
- Call project() after cmake_minimum_required() HOT 6
- Artifact on a certain glyph HOT 4
- SVG with Quadradic path commands generates an SDF instead of MSDF HOT 3
- Multiple character output HOT 1
- Render HOT 2
- SDF from glyph curves? HOT 2
- Cyrillic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from msdfgen.