Recently i'm playing with my hypersphere project I first posted in code snippets ages ago. Past few days i've been trying to implement a plains (planes) system where the planes remain facing the camera, but do not rotate along the line of sight from observer to object (in the world frame). In other words you can roll when looking at the plains, and they wont roll with you.
Playing Half Life 2 on the Xbox, i noticed in the level where a giant rocket launches, and you look up at the trail it's left, the particles spin with you, which looks totally rubbish.
Anyway, it sounds simple, and it sort of is, but for the past 3 days, feeling that it should pop out easily with a bit of trial and error, and having a "feeling" for what form the solution should take, kept trying things that didn't work at all. So today I actually sat down and thought about it and got it done. I feel happy but also stupid.
The reason i'm doing this current project is mainly because of the challenge. It's pretty pointless otherwise. The version I posted in code snippets uses 4x4 rotation matrices, and works fine. I figured i'd make it work with (double) quaternions. The reason : because it's more elegant, and i was worried about my so(4) matrices going all wonky. Unless you play the game for a week though, they won't. I still did it because it's cool. There are clues on the internet about how to do it, but compared to the standard 3d case, it's pretty poorly documented. So i feel more smug to have got it working.
I find the hardest part of coding is doing the intellectually unstimulating but necessary parts of a project. The parts where you know what has to be done.