that's weird, 0001 is supposed to go to 4th row, not column. could you
post your FLARTransMatResultand engine matrices?
also, flash.geom.Matrix3D has its values ordered by columns, so
matrix.m00 matrix.m10 matrix.m20 0 is actually 1st column, and 0001 is
really last row.
it's hard to say where this comes from, but it could be that 4:3 video
corresponds to 1:1 aspect ratio, and changeScreenSize call to
dimensions other than 4:3 changes aspect from 1:1 internally (which
imho it should not do). can't say about away math, but alternativa
math relies on 1:1 aspect ratio for sures. if so, papervision math
must have some scaling hack in there to work with non-1:1 aspects.
personally, I would just set FLARParam to values corresponding to 1:1
aspect for your video size by hand.
i'll take a look as soon as i have a moment.
-e
you're really looking in the wrong place, this one calculates
projection matrix, not transformation matrix.
public function setScreenSize (w:int, h:int):void {
_screen_size.w = w;
_screen_size.h = h;
// this hack should not be needed in flartoolkit trunk
var hack:Number = 0.1;
var diag:Number = Math.sqrt (w * w + h * h); // 640x480 -> 800
var dist:Vector.<Number> = Vector.<Number>([
w / 2, h / 2, 25 * Math.pow (800 / diag, 2), 1.01
]);
trace ("1, dist", dist);
var proj:Vector.<Number> = Vector.<Number>([
0.9 * diag + hack, 0, w / 2, 0,
0, 0.9 * diag - hack, h / 2, 0,
0, 0, 1, 0
]);
trace ("1, proj", proj)
setValue (dist, proj);
}
and change line 136 in flartoolkitmanager class to
this.cameraParams.setScreenSize(flarSource.source.width,
flarSource.source.height);
and - voila - it all works again