I spend the whole day writing vector functions that were missing in the past (wich means that ITK is having all typically vector functions I'll need for graphics programming) and, most important, finished writing the raw code for n-dimensional, 2D and 3D matrices. Can you imagine how annoying it is expand matrix multiplications in the third dimension? Holy shit, this was some mess. However, the pain was worth it because that many nulls and ones can be optimized very nicely. This means more than half of the performance than usual. I won't need 3D matrix operations for my graphics engine, but if I want to create my own software 3D renderer in the future, I gonna need them. So yeah, there's a of macro code right now, but it's equally messed up like the bucket sort macro.

What's next is to test it properly, check functionality for 2D, 3D, ND and integrate it into the VM. I'm feeling much better now, this has bugged me for years! Not having own matrix code. After having it infront of me all day, after writing, analysing and optimizing I finally got comftable with it. I even saw the connection that never revealed themselves before. All in all this was a very necessary and worthwhile day.

No comments: