freenode/#shirakumo - IRC Chatlog
Search
7:58:59
Shinmera
Which would mean either the patented technique is different, or the patent is not valid due to prior publication, yeah?
8:16:49
Shinmera
For text layout I mean stuff like alignment options and an algorithm that actually selects line break options.
8:49:25
Colleen
github.com/servo/pathfinder Website (HTML), Title: GitHub - servo/pathfinder: A fast, practical GPU rasterizer for fonts and vector graphics
8:53:33
Shinmera
Though figuring out which part of that stuff to tear out to get glyph rendering is giving me a headache
9:07:31
|3b|
doesn't sound too bad, looking at https://nical.github.io/posts/a-look-at-pathfinder.html
9:07:31
Colleen
nical.github.io/posts/a-loo... Website (HTML), Title: Eight million pixels and counting – A look at pathfinder
9:09:12
Shinmera
Maybe it'll be ready by the time I've worked myself up from the gutters to the top of the stack
9:10:06
Shinmera
Yeah, thought so. I just really like the idea of something that doesn't need an atlas.
9:10:54
|3b|
ACTION is also wondering about whether it would be reasonable to generate sdf atlas on GPU at runtime
9:11:30
Shinmera
Maybe, but needing a texture large enough to hold all glyphs in a font can still be bad
9:12:43
Shinmera
Though having to recompute atlases at runtime when the set changes might introduce unwanted stutters if it's not fast enough.
9:12:46
|3b|
seems like for most normal uses, you have maybe 1-2k active at any point (and that's for something like chinese)
9:14:33
|3b|
if set of characters doesn't change rapidly, calculating a few new glyphs per frame is probably not much, and GPU bandwidth is probably high enough to make a copying GC for space in the atlas. particularly with sparse textures
9:15:55
|3b|
https://github.com/3b/first-light/blob/msdf-wip/examples/shaders/text.lisp is where i got adding it to virality
9:15:56
Colleen
github.com/3b/first-light/b... Website (HTML), Title: first-light/text.lisp at msdf-wip · 3b/first-light · GitHub
9:17:53
|3b|
https://github.com/Chlumsky/msdfgen/blob/master/README.md#using-a-multi-channel-distance-field
9:17:53
Colleen
github.com/Chlumsky/msdfgen... Website (HTML), Title: msdfgen/README.md at master · Chlumsky/msdfgen · GitHub
9:19:11
Shinmera
I know my way around SDF, just haven't read anything about how MSDF encodes the info.
9:20:37
|3b|
https://msdf-bmfont.donmccurdy.com/ is a tool to generate the atlas and metadata or https://github.com/soimy/msdf-bmfont-xml directly if you have node or whatever it uses set up
9:20:39
Colleen
github.com/soimy/msdf-bmfon... Website (HTML), Title: GitHub - soimy/msdf-bmfont-xml: Generate BMFont texture and spec XML using msdfgen
9:22:38
|3b|
https://github.com/3b/3b-bmfont is the part that parses the metadata files from either of those generators
9:22:39
Colleen
github.com/3b/3b-bmfont Website (HTML), Title: GitHub - 3b/3b-bmfont: read/write bmfont metadata files
9:26:19
|3b|
ACTION has that pathfinder thing stuck in my head now, pondering options for how to implement it
9:27:31
|3b|
ACTION really needs to focus on one thing though, bad enough mfiano making me want to rewrite pngload again
9:27:51
Shinmera
Afaiu the Rust Pathfinder supports stuff with GL 4.3 by using compute shaders and things below by gradually doing more on the CPU. Though that might not be the case anymore since the original article from 2017
9:33:11
|3b|
ACTION doesn't have a screenshot, but it also does lines and points, theoretically with arbitrary width/size
9:37:21
|3b|
currently no fancy joins/caps, but i want to write a 2d API in it with stuff like that also
9:38:29
|3b|
right now it just has the low-end version that expands points/lines to quads (and draws quads as 2 tris)
10:11:45
Shinmera
It just occurred to me that doing something like knowing where the cursor position is in a text field with bidi is.... uh,
11:25:58
Shinmera
|3b|: It seems the bmfont stuff has support for multiple "banks", but the bank id does not seem to get passed during MAP-GLYPHS. Do you know what's up with that stuff?
12:34:24
|3b|
i think i just assumed single atlas, since most hardware supports pretty big textures these days
12:47:22
Shinmera
So if I pass :flip-y NIL to pngload the UVs do display something, but the letters are upside down.
12:51:12
|3b|
worked in virality, but possibly just by luck (or due to some odd configuration there)... wouldn't be surprised if it is wrong in general though
12:54:19
Colleen
github.com/Shirakumo/trial/... Website (HTML), Title: trial/workbench.lisp at master · Shirakumo/trial · GitHub
12:55:16
Shinmera
Easier to add than expected. Can't replace the current system quite yet though, since I can't generate the atlas in-engine yet.
12:58:53
|3b|
msdf seems to be a reasonable 'good enough' level, which is why i'm not super motivated to work on the direct vector rendering, but does have issues with more complicated characters
13:09:57
|3b|
hmm, seems to be lots of duplicates, will have to check on that next time i mess with my sdf generator
13:16:01
|3b|
also, i think https://github.com/Shirakumo/trial/blob/master/workbench.lisp#L15-L20 might not be right... you should probably just set texture format from # of channels in atlas
13:16:01
Colleen
github.com/Shirakumo/trial/... Website (HTML), Title: trial/workbench.lisp at master · Shirakumo/trial · GitHub
13:18:17
|3b|
i think those alpha-chnl etc fields say what is in the channel, not whether it exists (and might not even be meaningful in msdf variants of the format... not sure all the generators agree on that)
13:19:35
Colleen
www.angelcode.com/products/... Website (HTML), Title: Bitmap Font Generator - Documentation
17:02:44
Shinmera
|3b|: I started writing a more general version of MAP-GLYPHS that could be used in conjunction with bidi, but I'm realising it's basically all just an LTR layouting algorithm, which should probably be done entirely in a different library, together with other layout options.
17:03:48
Colleen
github.com/3b/3b-bmfont/pul... Website (HTML), Title: Fix vertical normalisation when mapping glyphs. by Shinmera · Pull Request #9 · 3b/3b-bmfont · GitHub
17:07:38
Shinmera
I guess I'll PR the other thing as well, up to you whether you want to merge it though.
18:22:01
mfiano
It also works with nil to flip them. I just re-integrated pngload into our engine with images of differing origins
18:23:00
mfiano
Yeah was just responding to Shinmera │ Oh, right, I think the :flip-y option in pngload stopped working some time ago?
18:23:26
Shinmera
That was a thing I remembered wrong from when I was last ripping my hair out about origins.
18:25:16
mfiano
SO you have to decide whether to store images on disk wrong, rewrite UV buffer after parsing binary data, fix every shader, flip pixels with image loading lib, etc
18:27:38
mfiano
Much worse if you use a format like TGA, which allows the artist to save the origin in any of the 4 corners!
18:56:40
mfiano
Shinmera: btw I just pushed to pngload some changes 3b made which swaps out chipz for his thing. Should be closer to 2x faster now