Minetest logo

IRC log for #minetest-dev, 2024-02-07

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

All times shown according to UTC.

Time Nick Message
01:02 LandarVargan Same issue on 5.9-dev. I don't see the walls of peer addition/deletion though, or anything that looks out of place in a way that suggests an obvious problem
01:06 LandarVargan Lots of `con(4/1)RE-SENDING timed-out RELIABLE to ###.###.###.###(t/o=0.352): count=<1-8>, channel=0, seqnum=65506` and `con(4/1)WARNING: ACKed packet not in outgoing queue seqnum=65500`
01:07 LandarVargan The log file is 326MB, on second thought maybe Minetest is just fumbling that
01:08 ShadowBot joined #minetest-dev
01:10 LandarVargan debug_log_size_max is set to 10 IIRC, but that only applies on restart from what I can tell
01:12 proller joined #minetest-dev
03:09 SFENCE joined #minetest-dev
03:18 LandarVargan Nope, just went down again in less than 30 minutes after I set the log level to action
03:53 SFENCE joined #minetest-dev
04:06 Lupercus joined #minetest-dev
05:00 MTDiscord joined #minetest-dev
06:43 MTDiscord <paradust> how we would we feel about
06:44 MTDiscord <paradust> purging euler angles from irrlicht and everything else
07:27 MTDiscord <jordan4ibanez> Why would you want to do that?
07:27 SFENCE joined #minetest-dev
07:28 Mantar yeah, for what purpose? euler angles are generally useful for 3d stuff, and I can't imagine it's a huge hairy block of spaghetti code that touches everything
07:38 MTDiscord <paradust> To replace them with quaternions. Less distortion at certain angles, less gimbal lock. And it reduces the number of representations of rotations from 3 to 1 (currently euler angles are used in both radians and degree form, in addition to quaternions)
07:39 MTDiscord <paradust> And it is computationally easier to compose quaternions
07:55 MTDiscord <jordan4ibanez> Yeah but how is it for the average Joe mod dev? Maybe instead of degrees that should be totally scrapped and it should be locked into euler
07:57 MTDiscord <jordan4ibanez> Degrees and radians mixed into the same api can be heckin confusing, what I meant was radians only
07:58 Mantar personally I find radians annoying to deal with, but conversion is super easy so it's not a big deal
07:58 MTDiscord <paradust> quaternions are just so much better. you can multiply, rotate, and convert to a matrix without needing to call a trig function
08:00 Mantar quaternions are nice, yeah
08:00 Mantar but is that a reason to remove euler angles?
08:00 MTDiscord <jordan4ibanez> Yeah but you need the starting point, something that the average moe can understand, perhaps if it used SIMD under the hood this would be less of an issue?
08:00 MTDiscord <paradust> it's a reason to keep the internal representation quaternions, and only convert euler angles for the api maybe
08:01 MTDiscord <paradust> right now the internal representation of rotation for all scene nodes is euler angles in degrees
08:01 MTDiscord <jordan4ibanez> Alright paradust, you're scaring me
08:01 MTDiscord <jordan4ibanez> Nah I'm just kidding, yeah it's pretty bad
08:02 MTDiscord <jordan4ibanez> That because of b3d I'm guessing?
08:02 MTDiscord <jordan4ibanez> Or maybe it was rooted deeper than that
08:03 MTDiscord <paradust> i dunno. irrlicht shrug
08:08 calcul0n joined #minetest-dev
08:13 SFENCE joined #minetest-dev
10:07 pgimeno I'd love to abolish Euler angles from the internal representation and only offer them for mod APIs
10:08 pgimeno it might solve one or two problems with animations too
10:10 YuGiOhJCJ joined #minetest-dev
10:11 pgimeno I believe one of the problems with animations had to do with gimbal lock
10:13 pgimeno in doing so, care must be taken due to Minetest's left-handed coordinate system, though
10:17 pgimeno https://irrlicht.sourceforge.io/forum/viewtopic.php?p=272097#p272097
11:44 Desour joined #minetest-dev
12:18 rubenwardy Yeah I agree, we should use transformation matrices
12:24 proller joined #minetest-dev
12:25 Desour we could encode 90° directions and rotations in integers, and so make them easier to handle and probably cheaper: https://github.com/Desour/minetest/tree/rotnums_cpp
12:27 Desour (^ RotNums are incomplete as of now)
12:32 rubenwardy *matrices or quaternions. Matrices seem a bit more common in game engines
12:45 Lupercus joined #minetest-dev
13:17 pgimeno quaternions are like an abbreviated form of a rotation + scaling matrix, but the scaling is not very comfortable to work with so in practice they are used only for rotation, with normalized quaternions
13:17 pgimeno irrlicht has separate scaling and rotation though, so that's OK
13:18 pgimeno the only drawback is that it's one more FP number to store per scene node
13:35 Desour why is there a `project(minetest)` call in src/CMakeLists.txt and CMakeLists.txt?
13:43 nrz Desour sounds to be an historical mistake 🙂
13:44 MTDiscord <warr1024> That sounds pretty harsh; I don't think Desour was a mistake at all.
13:47 Desour unlike war
13:47 MTDiscord <warr1024> War was a mistake, but r1024 was on purpose.
14:06 MTDiscord <luatic> yes yes yes quaternions everywhere
14:25 MTDiscord <warr1024> *yes yes yes 1, quaternions everywhere
14:26 MTDiscord <luatic> For transforms, I think TRS (translation vector, rotation quaternion, scale vector) is more modder-friendly than translation matrices (and would also map better to what we currently have).
14:48 proller joined #minetest-dev
14:49 MTDiscord <luatic> transformation matrices*
14:56 rubenwardy We want to use something consistent in the engine and can provide whatever API we want on top of that
14:57 rubenwardy transformation matrices make it much easier to apply all the operations when working in a scene node hierarchy
15:02 MTDiscord <paradust> pgimeno: when you rotate a vector q by a quaternion p, you're actually computing the conjugate p q p^(-1), so the scale goes away anyway
15:37 LandarVargan joined #minetest-dev
15:52 LandarVargan2 joined #minetest-dev
15:55 pgimeno paradust: no it doesn't, it is squared
15:55 pgimeno @paradust ^
15:56 MTDiscord <paradust> ?
15:56 pgimeno hold on, let me check to be sure
15:58 pgimeno yes, what I mean is that the vector's length gets multiplied by the square of the norm of the quaternion
15:59 pgimeno hence why it's not comfortable to work with for scaling
16:00 MTDiscord <paradust> any scaling is the result of the equation's denominator being omitted because it is assuming to be a unit quaternion
16:01 MTDiscord <paradust> it's not part of the quaternion structure itself
16:02 pgimeno when multiplying a quaternion by its conjugate, you don't get a normalized quaternion, you get one with the squared norm - the conjugate does not cancel the norm
16:02 MTDiscord <paradust> yes it does, because if the quaternion p has length d, then p^(-1) has length 1/d
16:02 pgimeno noooo
16:03 pgimeno the conjugate has the same norm as the original quaternion
16:03 MTDiscord <paradust> inverse not conjugate
16:03 MTDiscord <paradust> ok we're using different notation, I always meant inverse
16:04 pgimeno ok but to rotate a vector you need to multiply by the conjugate, not the inverse
16:04 MTDiscord <paradust> conjugation in group theory uses the inverse
16:04 MTDiscord <paradust> if you have unit quaternions, they are the same thing
16:04 pgimeno the conjugate of a+bi+cj+dk is a-bi-cj-dk and both have the same norm
16:05 MTDiscord <paradust> you know the trick where you compute 1/(a+bi) by multipling numerator and denomator by (a-bi) to get (a-bi)/(a^2 + b^2)
16:05 MTDiscord <paradust> the same thing works for quaternions
16:05 MTDiscord <paradust> the inverse (a - bi - cj - dk)/(a^2 + b^2 + c^2 + d^2)
16:05 pgimeno yes, if you have unit quaternions - that's why I said that they're usually used for rotation only and in normalized form, because using them for scaling is uncomfortable
16:06 pgimeno to rotate a vector you do q times v times q's conjugate, that's not the inverse
16:07 pgimeno so if q's norm is not 1, you're multiplying the vector's length by the quaternion's norm squared
16:07 MTDiscord <paradust> this is how it is implemented for convenience, but what i'm saying is, the mathematics behind quaternions always uses the inverse
16:08 MTDiscord <paradust> despite the unfortunate conflict in terminology, "conjugation" as a math operation always uses the inverse, not the conjugate
16:08 pgimeno ok
16:08 MTDiscord <paradust> https://en.wikipedia.org/wiki/Conjugacy_class
16:09 pgimeno anyway we're in agreement, even if possible, it's not very practical to use quaternions for scaling too
16:10 MTDiscord <paradust> yea there's really no reason to
16:35 LandarVargan2 joined #minetest-dev
17:25 proller joined #minetest-dev
17:28 Desour joined #minetest-dev
18:57 grorp joined #minetest-dev
18:58 grorp merging #14071 in 10 min
18:58 ShadowBot https://github.com/minetest/minetest/issues/14071 -- Move hard coded minimap to builtin by cx384
19:07 ROllerozxa has anyone tested translation support on real windows? (mingw codepaths)
19:07 ROllerozxa I'm very confused, I tested translations in my own build from master (built with MSYS2 CLANG64) and they don't work, neither detecting from system or setting manually. I also tried the official 5.8.0 build and it doesn't work there either (in fact I went as far back as 5.5.0 and it doesn't work)
19:07 ROllerozxa to make things weirder the official builds have functional translation support on wine! so did I mess something up with my windows install (wouldn't be surprised if so) or can anyone else reproduce?
19:11 ROllerozxa um
19:11 MTDiscord <landarvargan> Spanish works for me with the official builds, you do need to restart the game though
19:11 ROllerozxa it just started working again, no idea what happened to my windows
19:13 grorp merging done.
19:13 ROllerozxa yeah I'm aware you need to restart, it just wasn't working no matter what I tried but obviously it magically went away when I asked in IRC. please disregard me 8)
19:53 SFENCE joined #minetest-dev
20:13 LandarVargan2 joined #minetest-dev
20:17 SFENCE joined #minetest-dev
20:24 [MTMatrix] joined #minetest-dev
20:26 LandarVargan In case people missed my last message, these are still my best guesses as to culprit logs: `con(4/1)RE-SENDING timed-out RELIABLE to ###.###.###.###(t/o=0.352): count=<1-8>, channel=0, seqnum=65506` and `con(4/1)WARNING: ACKed packet not in outgoing queue seqnum=65500`
21:24 SFENCE joined #minetest-dev
22:04 LandarVargan Sometimes if I grep the IP for the above log entries I won't see anything but those entries. As if no player with that IP ever joined the game. This is the case across every crash log I have, and the logs go back to when the server started
22:21 LandarVargan The server profiler still works after the server hangs, here's the output: https://pastebin.com/ZnvejYxk
22:28 proller__ joined #minetest-dev
23:34 panwolfram joined #minetest-dev

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