Time Nick Message 00:18 [MTMatrix] speaking about textures, suggestion: please someone fix the bad scaling. It kills pixel art (#10733) 00:18 ShadowBot https://github.com/minetest/minetest/issues/10733 -- GUI images use inconsistent/bad scaling 00:23 MTDiscord enabling gui_scaling_filter would be a workaround for now, but that bug seems to suggest that the entire GUI architecture needs to be rethunk, to enable scaling to be locked to integer multiples and shit. That sounds a fair bit more involved than "can somebody just fix this right now" 00:47 Desour #14478 00:47 ShadowBot https://github.com/minetest/minetest/issues/14478 -- Different algorithm for imageCleanTransparent by Desour 04:44 v-rob Scaling can be precisely controlled with the new UI API 07:00 MTDiscord who do I blame for quaternion multiplication being backwards. irrlicht? the entire game industry?🤦‍♂️ 07:00 MTDiscord i just noticed this. it means that associativity doesn't hold when vectors are involved. (p * q) * v is not equal to p * (q * v) but instead q * (p * v) 07:01 MTDiscord but this seems to match the openxr demo math lib, so I guess it's more than just irrlicht 11:20 MTDiscord What I miss is scaling like CSS vh and vw, where you can choose to have both aspects of an image not depend on the screen (viewport) aspect ratio, while still scaled relative to the relevant aspect. 11:22 MTDiscord I.e. percentage scaling, but both width and height use percentage of either screen width or screen height. 13:21 [MTMatrix] imageCleanTransparent: Luatic vs Desour 14:18 MTDiscord Imagine clean, transparent... code. 14:32 Desour pushing https://github.com/minetest/minetest/commit/751ede516bf006edb9fca2610fc951bcc5eaf1d5 in 15 14:32 Desour !title 14:32 ShadowBot ProfilerGraph: Increase buffer size for min/max formatting · minetest/minetest@751ede5 · GitHub 14:33 Desour (then we can actually see how big a spike is in the F5 profiler graph) 15:27 sfan5 merging #14438 in 10m 15:27 ShadowBot https://github.com/minetest/minetest/issues/14438 -- [no sq] Server code cleanups / refactors by sfan5 16:19 MTDiscord paradust: It depends on the kind of vector multiplication you are doing, whether its associative. Dot vs cross, iirc. 16:33 MTDiscord i find speaking of associativity a bit weird here type-wise. dot product is vector x vector -> scalar (and not associative with scalar multiplication). cross product is vector x vector -> vector at least, but isn't associative either. 16:34 MTDiscord anyways what paradust is talking about here is the "associativity" of quaternion - quaternion with quaternion - vector multiplication, which depends on the convention of order of operands in quaternion multiplication (quaternion multiplication is not commutative). 17:26 sfan5 reviews needed >> https://github.com/minetest/minetest/pulls?q=is%3Aopen+is%3Apr+label%3A%22One+approval+%E2%9C%85+%E2%97%BB%EF%B8%8F%22 17:37 sfan5 especially the docker thing because it's blocking a few MT-using projects that I want to unit / integration test 17:45 sfan5 Desour: do you want to move the irrlichtmt merge forward? 17:48 Desour sure, can do 17:48 Desour is there anything left that you want to change before? 17:48 Desour in the irrlicht repo 17:50 nrz_ oh great great great to see this merge will happen 17:51 sfan5 there are no outstanding PRs and no (relatively) low hanging fruits left on the roadmap either 17:51 sfan5 so nope 17:51 nrz_ (don't hesitate to think about proller custom types at a point too as the faster it's added the best we can think in the future about those map limits with less restrictions 18:23 Desour irr#295 18:23 ShadowBot https://github.com/minetest/irrlicht/issues/295 -- [no sq] Reformat the code (adopted) by Desour 20:24 proller nrz_, how many approvers need to megre? and there is no need to think, just review and press green button... 20:24 proller ... and one week for merge to current master ... 21:01 MTDiscord MisterE: p,q are quaternions, and v is a vector. Quaternion multiplication is associative. But whether the associativity also holds for the vector part depends on whether you apply it to the correct side. 21:01 MTDiscord In a math context, you always place the object being acted upon on the left or right side as necessary to make associativity work 21:02 MTDiscord https://en.wikipedia.org/wiki/Group_action#Left_group_action 21:04 pgimeno @paradust is that something fixable, or are we stuck with it for the rest of the eternity? 21:06 MTDiscord In theory, just swap the operands of operator* and all uses. But it seems like it might be a convention in graphics programming. So maybe we don't want to. I'm just looking at it from a math background 21:06 pgimeno I mean as in, is it better to leave it as is (for reasons like compatibility with ???, or like endangering other parts of the library or the engine)? 21:07 pgimeno I have seen a different order in a different context. Second Life has quaternion multiplication reversed too, but it uses v*q instead of q*v to rotate a vector, which makes v*q*p associative 21:09 MTDiscord Yea that's an option as well. operator* (quaternion, vector3d) could be replaced by operator* (vector3df, quaternion) 21:10 pgimeno wouldn't that also be safer from the point of view of identifying all points where it's used? 21:10 MTDiscord yea 21:20 pgimeno hm, it hides a trap - imagine there's a code fragment using something like v1*q*v2, that wouldn't raise an error but the meaning would change (if vector*vector is defined, which I don't know) 21:20 pgimeno oh nvm that, sorry 21:40 MTDiscord I believe C++ would always interpret v1 * q * v2 as (v1 * q) * v2. So if there's current code like that, it would have to be parenthesized as v1 * (q * v2) and that would generate an error if the order is reversed. 22:39 pgimeno yeah I realized a few seconds after I pressed Enter 22:48 v-rob I'd suggest that quaternions use the multiplication conventions from math (whatever that might be). For instance, to map from matrix A to B, standard math writes that as B*A. To transform a vector v by A, it's A*v. Direct3D is notable in that it gets this backwards, doing A*B and v*A. Maybe Direct3D is more "intuitive" for programmers, but it's contrary to the standard way of doing things, which should be avoided. I don't know how it should look 22:48 v-rob for quaternions, but I highly suggest that math's conventions are followed, even if they aren't as intuitive as one would like. 22:55 v-rob So, I say that graphics programming conventions should be ignored when they conflict with math. Especially considering that graphics programming conventions are never consistent, e.g. OpenGL uses the correct notation for matrices, unlike Direct3D. 23:06 pgimeno yeah, quaternions are a bit like "compressed matrices" in how you operate with them in the most widespread math notation