[Most Recent Entries]
Below are 20 journal entries, after skipping by the 60 most recent ones recorded in
[ << Previous 20 -- Next 20 >> ]
[ << Previous 20 -- Next 20 >> ]
|Monday, April 6th, 2009|
|Thursday, April 2nd, 2009|
|Sunday, March 22nd, 2009|
|More quotes from Sherlock Holmes
"The division seems rather unfair," I remarked. "You have done all the work in this business. I get a wife out of it, Jones gets the credit, pray what remains for you?"
"For me," said Sherlock Holmes, "there still remains the cocaine-bottle." And he stretched his long white hand up for it.
|Sunday, March 15th, 2009|
|Saturday, March 7th, 2009|
|The ever-changing English language
"Very sorry to knock you up, Watson," said [Sherlock Holmes], "but it's the common lot this morning. Mrs Hudson has been knocked up, she retorted upon me, and I upon you."
- Sherlock Holmes: The Complete Illustrated Collection
|Tuesday, March 3rd, 2009|
|Sunday, March 1st, 2009|
Someone on tigs made this:
It's a faucet that drips LEDs.
|Berkeley crime reports
The "Burglary, Battery, False Imprisonment, Trespassing & Grand Theft" are all one person, in one day ...
|Saturday, February 28th, 2009|
|Friday, February 27th, 2009|
|Why normals transform as the inverse transpose of your transformation matrix
I don't know if I read this explanation somewhere before, but anyway I (re?)-derived it the other day, and found it neat, so here it is: an explanation of why surface normals transform as the inverse transpose of the matrix you're using to transform your shape.
Instead of deriving the result, we start from the result and work out an intuitive understanding of why it is reasonable.
First recall that all matrices can be decomposed into (Rotation 1) * (Scale) * (Rotation 2) using a singular value decomposition; assume we've done this decomposition:
(M^-1)^T = ((R1 S1 R2)^-1)^T
Now take the inverse transpose on each matrix individually; first the inverse gives us:
(R2^-1 S^-1 R1^-1)^T (reversing order)
and the transpose gives us
(R1^T)^-1 (S^T)^-1 (R2^T)^-1 (reversing order again)
Now, note that the transpose of a rotation matrix IS the inverse (b/c it's orthogonal), and the transpose of a scale matrix does not change the scale matrix at all, because it's diagonal. So really we have:
R1 S^-1 R2
In other words, the inverse-transpose of a matrix leaves the rotation unchanged, while inverting the scale.
Intuitively, leaving the rotation unchanged makes sense: for rigid transforms, right angles (all angles) are preserved, so we can just rotate the surface normal in the same way as the surface itself.
Now we can look at how the normal changes as we stretch a sphere into an ellipse (say, stretch it along the X axis): as the ellipse approaches a cylinder, the forward transform would increasingly cause any normal to be parallel to the +X vector. We want the normal to move in the opposite way, and in the limit to lie in the perpendicular YZ plane; therefore the inverse scale makes a great deal of sense.
|Thursday, February 26th, 2009|
|Wednesday, February 25th, 2009|
|Friday, February 20th, 2009|
|A quote from some wikipedia article
"Katayama, a slow-moving, slow-talking classmate of Kirie's starts to behave strangely, as he begins only attending school when it rains. After a bully strips him naked and tosses him out of the locker room, Kirie discovers a spiral-shaped birthmark on his back. Soon the spiral shape star begins to morph into a full-blown snail shell as Katayama turns into a giant human-sized snail. Imprisoned in a cage at school, soon Katayama's nemesis turns into a snail too and ultimately mates with Katayama. After the Snails escape from their cell together, Kirie and her science teacher find their eggs, which the teacher quickly destroys after declaring the two students abominations. However, in doing so the teacher unwittingly sets the stage for him to become a freakish snail-person too."
|Sunday, February 15th, 2009|
Posted here so I'll remember to try watching this eventually ...
edit: also, a much shorter starcraft video:
|Tuesday, February 10th, 2009|
|Monday, February 9th, 2009|
|out of context
[14.1] What is a friend?
Something to allow your class to grant access to another class or function.
|Sunday, February 8th, 2009|