Comments (8)
Oh yes, you're right. Never paid attention to this detail.
That's called in ink trap!
from msdfgen.
Excellent: https://en.wikipedia.org/wiki/Ink_trap
from msdfgen.
Unfortunatelly, my method only improves corners and just like monochrome distance fields, doesn't handle well thin strokes that only span 1 or 2 pixels in the distance field. In the example, I used Arial Bold, which has thicker strokes. You should be able to reproduce it using the arguments in example.bat. But I admit the example is a bit biased, since 16x16 is almost never a sufficient size for a glyph's distance field, and I would strongly recommend choosing a larger size.
from msdfgen.
Thanks for the explanation, I wanted to be sure to have understood usage of your code.
There might room for improvement on the technique, maybe on the shader side ? If you look at this thread (you will realize we were waiting for your code) you'll see some possible tips: rougier/freetype-gl#110 and rougier/freetype-gl#97.
from msdfgen.
I'm afraid this cannot be fixed by any fragment shader (not to mention the test renders aren't generated with an actual shader, so it can't be a problem with fwidth or something like that), it's just the nature of distance fields. However, you can take advantage of the multiple channels to represent a thin stroke as the intersection of larger areas. You can do this by just using a different edge coloring strategy:
a_thin.txt (pass this as -shapedesc)
Although you would need more color channels to simultaneously also take care of corners, and I suspect certain configurations of multiple thin strokes would also cause problems.
from msdfgen.
I definitely need to read you paper (any tentative date ?) to get a better understanding of your technique.
By the way, I've been playing a bit more with the Arial font using different settings but in most cases, the upper pat of the internal left oblique line of the A letter seems to be curved (compared to the right) one. Could this be some kind of bug or a side-effect ?
msdfgen msdf -font Arial.ttf '0x41' -o msdf.png -size 32 32 -pxrange 4 -testrender render.png 1024 1024
from msdfgen.
Actually, I'm pretty sure that's exactly how it's defined in the Arial typeface. I have just tested that Firefox renders it the same way.
from msdfgen.
Oh yes, you're right. Never paid attention to this detail.
from msdfgen.
Related Issues (20)
- Just a couple of questions.
- 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
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.