Comments (7)
Keep in mind that this is an approximate rendering method, and it is designed to be most precise at glyph edges. The further away from an edge, the higher the probability that the distance is not evaluated precisely, resulting in an artifact such as this one. This may be mitigated by increasing the distance field density.
from msdfgen.
I am experiencing similar issues with msdf-atlas-gen version 1.9. I believe this is a regression, as I can render fonts created with prior versions without these artefacts. The screenshot below shows the issue with a screenPxRange of 1.8000001907348633. Note the n
and u
. These artefacts appear and dissappear depending as the image grows and shrinks (e.g. not all screenPxRange values).
You can replicate my images with:
msdf-atlas-gen.exe -font Roboto-Regular.ttf -charset chars.txt -pxrange 2 -dimensions 256 256 -format png -json fnt.json -imageout fnt.png
Where chars.txt is a text file with the following characters
"\"\\ ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!`?'.,;:()[]{}<>|/@^$-%+=#_&~*"
from msdfgen.
The issue can also be observed by looking at the bitmaps created by the new (defective) and prior (good) versions (generated with same commands as above, but with -dimensions 512 256
. Note that two colors touch at full brightness (255) in the new version. Therefore, the interpolated median value precisely between these pixels can be high.
Prior versions:
from msdfgen.
@neurolabusc You are right that this is a new regression and it would seem that I've made an embarassing mistake in the new error correction algorithm, which should now be fixed by 35caf38. Please try it out and let me know if there are still problems, if not I will release a hotfix version.
from msdfgen.
@Chlumsky thanks for the quick response. I will not have access to a development system for the next week. Is it possible that you could share a compiled copy - macOS, Linux or Windows would be fine. You could even use the "pre-release" function for Github releases to let users test your fix.
from msdfgen.
@neurolabusc Alright, I have published the pre-release, so you can test it.
from msdfgen.
- The pre-release resolves my regression issue.
- I suggest you close this issue, as the original issue can be resolved by generating the recent RGBA MTSDF textures.
- I only tested the 32-bit application, as Windows 10 rejected the 64-bit pre-release claiming it exhibits the
Wacatac.B!ml
script virus. I suspect this is a false alarm, but it might be nice to see if the 64-bit version can be packaged in such a way to avoid this issue.
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.