Minetest logo

IRC log for #minetest, 2023-03-22

| Channels | #minetest index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:40 Verticen joined #minetest
00:49 mannerism joined #minetest
01:13 smk joined #minetest
01:16 YuGiOhJCJ joined #minetest
01:23 proller joined #minetest
01:25 Unit193 joined #minetest
01:40 proller joined #minetest
01:44 calculon joined #minetest
02:27 Verticen joined #minetest
03:04 YuGiOhJCJ joined #minetest
03:52 proller joined #minetest
04:00 MTDiscord joined #minetest
04:43 sagax joined #minetest
04:45 lemonzest joined #minetest
04:51 Verticen joined #minetest
05:25 calcul0n joined #minetest
07:36 fling_ joined #minetest
09:08 mrkubax10 joined #minetest
09:57 dv^_^ joined #minetest
10:54 illwieckz_ joined #minetest
10:56 illwieckz joined #minetest
11:37 proller joined #minetest
12:03 sys4 joined #minetest
12:10 kilbith joined #minetest
13:17 lemonzest joined #minetest
13:54 cation joined #minetest
14:51 z812 joined #minetest
14:51 staceee joined #minetest
15:14 sid0 joined #minetest
15:40 wsor joined #minetest
15:40 MisterE123 joined #minetest
15:55 staceee joined #minetest
15:55 z812 joined #minetest
16:55 definitelya joined #minetest
17:06 sparky4 joined #minetest
17:07 Verticen joined #minetest
17:18 LandarVargan joined #minetest
17:31 mrkubax10 joined #minetest
17:53 ___nick___ joined #minetest
17:58 lemonzest joined #minetest
18:04 Talkless joined #minetest
18:19 ___nick___ joined #minetest
18:22 ___nick___ joined #minetest
18:55 definitelya_ joined #minetest
18:57 sparky4 joined #minetest
19:02 Guest54 joined #minetest
19:02 Guest54 rubenwardy have you thought about semgrep for cdb?
19:02 Guest54 to figure out if any mods do something weird if an API is broken again
19:04 ROllerozxa there is a grep package search feature, but only available for ruben
19:05 Guest54 semgrep is different
19:05 Guest54 it operates on the AST
19:05 Guest54 ROllerozxa which means you could find stuff like “this mod uses the API in a deprecated way” and notify the author (do not forbid it, it may be compatibility code)
19:06 Guest54 or find opportunities to dupe hehe
19:06 Guest54 ROllerozxa https://semgrep.dev/playground/r/c.lang.security.double-free.double-free
19:06 * muurkha finds opportunities to dope
19:10 MTDiscord <luatic> Guest54: are you erle?
19:12 MTDiscord <GoodClover> CDB has zipgrep, which does extended grep patterns
19:12 MTDiscord <GoodClover> Extended with a capital E, stupidly named
19:16 Guest54 luatic i am indeed, and i am sorry for being so unfriendly last time i was here. turned out i had two serious vitamin deficiencies, which can lead to all kinds of unfunny stuff, e.g. increased irritability.
19:17 MTDiscord <luatic> Guest54: it's okay lol, I don't hold any grudge against you
19:18 MTDiscord <luatic> which two vitamins were deficient (of you are comfortable sharing)?
19:18 diceLibrarian joined #minetest
19:18 Guest54 luatic, b12 and d
19:18 Guest54 both are very cheap to acquire, but you actually have to know that you are lacking them
19:18 Guest54 also, vitamin D deficiency is not tested by default
19:22 Guest54 luatic i have worked on a gift for the community as penance
19:22 Guest54 a pure lua text renderer so people can make signs
19:22 MTDiscord <luatic> text renderer from TTF?
19:22 Guest54 i do not know why everyone makes signs out of texture modifiers, can you maybe explain? it seems a bit weird
19:23 MTDiscord <luatic> it used to be the most viable (the only) option before dynamic media / [png became a thing
19:23 Guest54 like, i have seen people who IMO *should* know better have directories with a.png b.png c.png etc. pp.
19:23 MTDiscord <luatic> yeah, I did the same thing when I had to render text to texture
19:23 Guest54 why
19:23 MTDiscord <luatic> because it was the only option
19:24 MTDiscord <luatic> now with dynamic media it is probably indeed inferior
19:24 Guest54 i don't really get it, you can just write the pixels to a file, am i missing anything?
19:24 MTDiscord <luatic> you couldn't always
19:24 Guest54 i thought people had to reload anyway to see signs in early versions, maybe i was mistaken
19:24 MTDiscord <GoodClover> I drew pixel text in a long string and then converted it to pixels for dynamic media
19:24 Guest54 you could always write them to a file, you could not just always send them to the client
19:25 MTDiscord <luatic> yeah, but people don't have to reload for texture modifiers to work
19:25 Guest54 i see.
19:25 MTDiscord <luatic> besides, another advantage is that texmods are "on demand"
19:25 Guest54 wdym
19:25 MTDiscord <luatic> you send the texmods only to clients who get close to the entity
19:25 MTDiscord <luatic> whereas with dynamic media you'd have to send it to all clients just in case they ever get close to the entity
19:26 Guest54 anyways, here is some sample output. i am not finished yet: https://mister-muffin.de/p/Lh5L.png
19:27 MTDiscord <luatic> wow, impressive
19:27 Guest54 it was not too hard
19:27 Guest54 i have not done the arabic script shaping and the bidirectional text is wonky
19:28 Guest54 but i do intend to bring full unicode sign support to minetest 5.3 and above that way
19:29 Guest54 luatic you can see this in the first and last line
19:29 Guest54 the arabic in the first line is messed up
19:29 Guest54 the letters do not connect even
19:29 Guest54 in the last line you can see a control character being rendered (it should be processed) because i have to implemented explicit bidi control characters
19:39 Guest54 luatic an interesting tangent, working on font rendering i have also noticed that simple deflated TGA is unexpectedly competitive on both filesize and processing speed compared to PNG for large images too. take the colorful example text i posted – gimp makes it ~104K, optipng can strip it down to 88K (and takes a while). taking the TGA and
19:39 Guest54 compressing it with DEFLATE is 84K.
19:43 Guest54 so for generating textures it could be *very* useful if minetest transparently compressed TGA on the wire (if the client supports it and it is actually smaller)
19:50 Guest54 a quick example: the devtest checkerboard is about 5061 bytes (thanks to minetest.encode_png()), the same file as a deflated TGA is 165 bytes. which is funny, because i thought it would be easy to undercut that using optipng, but the best optipng can do is 236 bytes.
19:51 MTDiscord <luatic> TGA is presumably a simpler format with less overhead
19:51 Guest54 it's not really about the overhead i think
19:51 Guest54 for me it's more about encoding speed
19:51 Guest54 we are talking dynamically generated textures after all
19:52 MTDiscord <luatic> I vaguely remember benchmarking encoding speed and I don't think it was an issue
19:52 MTDiscord <luatic> optimizing e.g. using optipng would of course slow things down though
19:52 Guest54 that's the point
19:53 Guest54 deflating the TGA makes it instantly smaller than the best thing optipng can do (for the checkerboard)
19:53 Guest54 like at literally no runtime
19:53 Guest54 optipng runtime even on the best machines i have seen can be measured in seconds per file
19:54 mrkubax10 every machine currently implemented in IndustrialTest: https://0x0.st/HoiH.png
19:54 Guest54 luatic the issue is that i did not think that non-prefiltered compression could ever be that good. no one did, apparently.
19:55 Guest54 even though i did use it, i just never compared it for non-maps
19:56 Guest54 anyways, it's an unexpectedly elegant solution that's quite simple to implement in a backwards compatible way to speed up texture transfer.
19:57 Guest54 (and storage, if you really want to, but you probably do not)
19:58 Guest54 luatic i also found out what the deal is with “sqlite is faster than the filesystem” people. they do not read the part of the description of the benchmark where “SQLite does not perform as well as direct I/O when experiments are run using a cold filesystem cache”.
20:00 Guest54 basically, what it proves is that you can read data fast if you have it in the cache
20:00 Guest54 which … is useful if you compare it to a lot of little reads and writes (which is a common database access pattern)
20:03 mazes_80 joined #minetest
20:05 Guest54 GoodClover luatic muurkha do you have any proposals on how the font rendering should work? currently you have to create a font object (i.e. table) and configure properties on it (like foreground and background color) and load glyphs (to allow for loading several fonts) first, unless you really like U+FFFD REPLACEMENT CHARACTER (it is the only glyph
20:05 Guest54 my lua code knows by default)
20:06 Guest54 and then you do stuff like: tga_encoder.image( font:render_text( "(*ˊᗜˋ*)/ᵗᑋᵃᐢᵏ ᵞᵒᵘ*" ) ):save("unicode.tga")
20:06 Guest54 i originally had it non-object-oriented and it was much harder to develop and use
20:07 Guest54 because you usually want the same font with the same color etc. for several renderings
20:08 Guest54 if you do it like that you will get white on black grayscale text, so i guess people *may* want to learn font and encoding options
20:08 Guest54 but i think that's a good default
20:08 Guest54 also if someone of you knows arabic or hebrew, go read up on bidi text and help me (later) please
20:09 Guest54 AFAIK arabic letters look different depending on their surroundings
20:15 kilbith joined #minetest
20:15 Guest54 luatic btw i do not render from TTF but from GNU unifont (or any hexfont)
20:15 Guest54 kilbith i bet you have opinions on font rendering, do you?
20:16 Markow joined #minetest
20:16 Guest54 also i did recently dive into how the french do their stuff vs the germans and it seems you were right about the french kinda electing a king
20:18 kilbith ??
20:18 Guest54 you said something like that a long time ago
20:18 Guest54 i think?
20:18 Guest54 maybe i remember it wrong
20:19 Guest54 anyways, i am rendering unicode in pure lua: https://mister-muffin.de/p/Lh5L.png and the API is kinda like font.render_text("foo bar baz") would that be acceptable to you?
20:19 Guest54 i ask you because you would probably not hold back with expletives if it was not
20:43 gxt__ joined #minetest
20:49 MTDiscord <luatic> seems fine to me
20:49 MTDiscord <luatic> though font. rather than font:?
20:52 MTDiscord <Flamore> no font is complete without U+130B8
20:53 Guest54 luatic i apologize it is font:render_text()
20:55 Guest54 luatic is hexfont a good font format? do you know a better one?
20:56 Guest54 btw, i have been testing minetest on a machine with a hidpi screen (Xft.dpi: 284) and i wonder, what is the option to upscale everything? that + undersampling should fix the small fonts ig
20:58 Guest54 Flamore shockingly, unicode is lacking that important character!
20:58 Guest54 unifont
20:58 Guest54 i mean
20:58 Guest54 > *Note: Scripts such as Cuneiform, Egyptian Hieroglyphs, and Bamum Supplement will not be drawn on a 16-by-16 pixel grid. There are plans to draw these scripts on a 32-by-32 pixel grid in the future.
20:58 Guest54 https://unifoundry.com/unifont/index.html
20:59 Guest54 i guess that means you can not send dick pics by means of unicode characters using my renderer, which pleases me
20:59 MTDiscord <luatic> Guest54: I'm not that familiar with fonts :P
20:59 Guest54 luatic the thing is, am i missing something obvious? like the : vs . lol
21:00 Guest54 e.g. do users want a default direction of text? do they want to render text to a canvas that has a specific size? etc. pp.
21:00 MTDiscord <luatic> doesn't sound like it from your description
21:00 MTDiscord <luatic> yeah, users usually only care about left-to-right I think
21:00 Guest54 is “grayscale 1bpp output with white text on black background” a good default?
21:01 Guest54 don't laugh, i had grayscale 1bpp output with black text on slightly more black background before
21:02 Guest54 because it made it easier to create palette images
21:02 Guest54 but it was not idiot proof
21:02 Guest54 (me being the idiot)
21:03 muurkha luatic: right now Minetest users don't care about right-to-left text because Minetest doesn't support their languages at all
21:03 Guest54 luatic i have very stupid kerning, it removes up to 1 line left and 1 line right of the character to make them variable width
21:03 Guest54 oh btw
21:04 Guest54 i am not doing this because it is easy
21:04 Guest54 i am doing it because i thought it was easy when i started
21:04 muurkha heh
21:04 muurkha "We do these things not because they are easy!  We do them because we thought they would be easy."
21:04 Guest54 it's also kinda true, if you don't care about bidi text
21:05 Guest54 like, the worst bug that i can find right now is that control characters i do not explicitly handle are printed, which is kinda neat (because it shows what i should handle)
21:05 muurkha that is cool
21:05 MTDiscord <luatic> Guest54: I know this sentiment
21:05 Guest54 well it is the default if you use unifont, since it does have a picture for each control character (presumably in case you accidentally render the glyph instead of going to the next tab stop or so)
21:06 MTDiscord <luatic> That's how I wrote a b3d to glTF converter in like 2-3 days
21:06 MTDiscord <luatic> (but it currently doesn't have provisions for "neutral bones" i.e. static geometry, I'll have to add them when I have time)
21:07 Guest54 i have a task at work where i have to do a complicated pairing with an android device and a hardware prototype
21:07 Guest54 i thought it was easy to test the pairing 100 times
21:07 Guest54 turns out that this can fail in so many ways that are non-recoverable in software
21:08 Guest54 e.g. you can end up with a bluetooth pairing device list in which your device is … twice … and still fail to connect
21:08 MTDiscord <luatic> oof
21:09 Guest54 also the hardware prototype has a powersaving feature that makes it go into standby after 2 minutes. now i also got a special fake battery so i can turn the power on and off again. basically it goes into a wall socket on on end and in the battery compartment on the other end.
21:09 Guest54 now if the device goes into standby it does not react to bluetooth stuff AFAIK
21:10 Guest54 but i want to do a lot of things that require turning power off and on again
21:10 Guest54 guess what it loses … yes, the powersaving setting! if i ever turn it off as part of a test, it will turn itself to standby mode after 2 minutes.
21:10 Guest54 and the thing has permanent storage
21:10 proller joined #minetest
21:11 Guest54 it's just someone in the firmware department was not thinking of the “battery is empty” case
21:11 Guest54 which leads to it forgetting a lot of things when i use the special battery adapter
21:12 Guest54 to wake it up from standby you have to physically press a button on the device
21:12 Guest54 if i can not fix that in software, i am going to fix it by means of lego technic
21:12 Guest54 though the majority of my old lego technic motors have locked up
21:15 Guest54 luatic is there anything regarding signslib etc. i should know before cluelessly claiming i have a new method of text rendering that is superior?
21:17 MTDiscord <luatic> I don't think so, but I'm not familiar with signslib
21:18 Guest54 well, the way i am envisioning it is “render text to image, send image to client”.
21:25 book` joined #minetest
21:26 diceLibrarian joined #minetest
21:46 Guest54 joined #minetest
21:51 nuala joined #minetest
21:58 Guest54 does anyone know what prompted mineclone2 devs to rip out all textures from the mods and make a single texture directory and also rename some of them? it seems like what people would do who constantly have issues with mod dependencies (i.e. make a big ball of mud) but i don't really know if there is a technical reason (i doubt it, but asking can't
21:58 Guest54 hurt).
22:28 sparky4 joined #minetest
22:34 Guest54 Warr1024 you probably also want to render text, anything that a font:render_text() unicode text rendering function should do that i may be missing?
22:35 Guest54 i mean i take it from this: https://github.com/minetest/minetest/issues/9946
22:35 Guest54 > if this can be done without engine changes, I'm open to suggestion
22:37 sparky4 joined #minetest
22:39 YuGiOhJCJ joined #minetest
23:00 proller joined #minetest
23:27 diceLibrarian joined #minetest
23:29 Guest54 joined #minetest
23:39 YuGiOhJCJ joined #minetest
23:40 Evergreen joined #minetest

| Channels | #minetest index | Today | | Google Search | Plaintext