пятница, 7 сентября 2012 г.

Rotations in 3D. Part 1 - Euler Angles.

Hello. Today I want to talk about rotations in 3D. I hope to cover several possibilities to rotate an object, so stay tuned. In first part I'll try to explain what the Euler Angles are.

четверг, 2 августа 2012 г.

Fast isEven() function

Just a note for myself...

This is a way I used to know if int is even or odd:
(i % 2) == 0;
And here's a faster way
((i * 0.5) - (i >> 1)) == 0;
I was afraid that first part
i * 0.5;
can give 1.0000001, for example, due to round error. But it sems that integer numbers divided by 2 without presision lost. If someone have another information, please let me know.

Also the best performance gain experienced if above code used inline. Calling a method like this
private function isEven(i:int):Boolean{
 return ((i * 0.5) - (i >> 1)) == 0;
}
is 10 times slower!

Upd.: method that you can find in comment below or here - great blog - is even faster. I definetely will use this approach.

пятница, 13 июля 2012 г.

I don't need flash.geom.Matrix3D class anymore


I don't like native math classes for several reasons. For example, I don't have control over it and I can't say exactly is it my error or class implementation error when something going wrong. And according to this post Bugs in Vector3D and Matrix3D there're a lot of bugs. Also every matrix.transformVector() call creates new vector instance. Also in some cases I need 3x3 matrix instead of 4x4 for 3D math.

пятница, 11 мая 2012 г.

Stage3D DisplacementMapFilter

Hi. Today I want to show how to achieve famous 'displacement map filter effect' using AGAL. This effect can be done as postprocess so there can be infinetely many sources of space distortions. Be careful - there's a huge number of word 'DISPLACEMENT' in the text.

четверг, 3 мая 2012 г.