When doing 3D coding I generally use Translate, Rotate and Scale helper functions that construct a matrix under-the-hood, so - generally operating at the level GN is currently at.
It is rare for me dig down to the matrix level itself - and for the cases where I did, GN has helpers like Align Euler to Vector…
Guess they would be nice to have, but haven’t really found situations where I absolutely can’t do without them.
I haven’t had to do this yet… The reference you show should be doable with cross products, no?
Matrix operations are a natural extension of the vector operations that are already there. I am convinced there are plenty of users who don’t absolutely need the vector operations either. On that note, we don’t absolutely need Geometry Nodes either.
Geometry Nodes are a tool to help users solve a problem. Depending on the user, the problem is solved on a different abstraction level. A nice effect of having those operations is performance. Thanks to the vector operations, it is possible to use accelerated instructions on the hardware. The same is true for matrix operations.
Another area where matrix operations are very important is physics. With the introduction of simulation nodes it simply makes sense to have matrix operations.
Even though they are not going to be relevant for most users, I am convinced there are going to be use cases where having matrix operations can convert a node setup from almost unusable to usable because of performance reasons. Or it might simplify a node setup.
If you’re already using GN, then you will be needing those and as explained earlier these operations often do matrix operations under-the-hood (e.g. translate instance or align Euler to vector)… So, yeah, no, I think you may have not understood my meaning - Not gonna argue that Matrices aren’t important - I’m arguing that at the level of abstraction that GN operates at they can be “transparent” (i.e. under-the-hood).
Same goes for simulation - you should know that you can do something like boids without ever needing to touch a matrix. Again, let me be clear: That does not mean that under-the-hood optimizations can’t use hardware accelerated matrices - you as a user just should not need to bother with them.
My personal experience with using matrices in DirectX/OpenGL applications is to write support functions (like those that exist in GN) to “wrap” them, and then forget about them.
Still haven’t heard a compelling reason why anyone would be using matrices when GN has all of the higher-level support functions that allow you to avoid using them directly.
If you use several of those helper functions, you may be able to combine them and execute them faster using one matrix operations, instead of one per helper function.
However, you may also just use it for visual experiments. If I have a starting position/rotation/scale and I want to move/rotate/scale to a different one, how does it look if I interpolate only the matrix? Can I potentially use curves if I have more in matrices in between?
Or it would be possible to create some sort of a dolly zoom effect. You could change the camera’s field of view, while 100% preserving the geometry of one object in the camera view. The lighting would change though. Even though you might already do it right now, it will become a lot easier!
Edit: There have been plenty of situations where I wished I had access to matrix operations in Cycles shaders because I wanted to work with the camera transformation matrix. But because that’s not possible, I had to figure out workarounds or abandon the idea.
Because matrix operations are available in Geometry Nodes, it becomes possible to create our own helper functions. It becomes a lot easier to compute where a point is in screen space. I don’t have to wait until someone else introduces the helper function for it. I can simply create my own helper function using matrix operations.
I think it’s very usefull to have the ability to directly access and deal with this kind of low-level concepts (such as matrices) rather than just some abstacted representation.
From my experience, when you have a specific (computational geometry-) problem to solve, you might find something helpful e.g. on stackexchange.
But chances are such (non Blender related) sources and solutions deal with (and talk about) general underlying mathematical concepts. So maybe you’ll find a solution to your problem expressed via matrix calculations.
If you have matrix nodes, you can just recreate it. Otherwise, you have to first ‘translate’ it to Blender’s corresponding higher-level concepts.
Maybe it’s my limited understanding, maybe it’s a lack of extensive documentation, but as things are now, it’s already a bit opaque and obscure to me what geonodes even refer to by e.g. a ‘Rotation’.
I’m not sure it’s stated anywhere.
So I think I’ve gathered it’s an euler rotation (not e.g. a quaternion representation, let alone a rotation matrix).
Anyway, the point is, outside sources will often refer to such low-level concepts like e.g. matrices (and why not?) and I think it’s very beneficial if you can just apply the math as such and not have to wonder which is the high-level Blender terminology analogue.
Hey, can anyone who knows how to navigate the new dev site help me out? I had a link bookmarked for a node I was waiting for, Material at Index: https://archive.blender.org/developer/D15176, but I can’t find it on the new site. Has anyone seen it?
I honestly can’t find anything on the new site, it doesn’t even seem to have a search function. And why did they keep those awful “workboard” things with the horrid layout and 3 scrollbars?!
Lukas is testing a new comb brush behaviour. It’s looking GORGEOUS. But… you judge by yourself. Just make the video fullscreen because it doesn’t display in full on Gitea
An initial test of mine showed Geometry Nodes successfully creating a smoothed version of two merged toruses without crashing, so that is a good start.
Now it is obviously just the basics for now, but it is very promising.