Здравствуйте,
Пытаюсь освоить Stage3D, все аспекты вполне ясны и имеется много уроков, но один вопрос не могу решить уже неделю:
Как правильно для Matrix3D присвоить значение поворота относительно оси Z. ( аналог "rotation" )
Позиция и размер вычисляются правильно, но как только добавляется поворот картинка растягивается.
Опробовал 2 метода:
1.
Код AS3:
_positionMatrix.identity();
var v3:Vector.<Vector3D> = new Vector.<Vector3D>(3);
v3 = _positionMatrix.decompose();
v3[0].incrementBy(new Vector3D( x, y, 0 ));// x, y, z
v3[1].incrementBy(new Vector3D(0,0,-rotation*Math.PI/180)); // rotationX, rotationY, rotationZ
v3[2].incrementBy(new Vector3D(width,height,0)); // scaleX, scaleY, scaleZ
_positionMatrix.recompose(v3);
2.
Код AS3:
_positionMatrix.identity();
_positionMatrix.appendScale(width,height,1);
_positionMatrix.appendTranslation(x,y,0);
_positionMatrix.appendRotation(-rotation,Vector3D.Z_AXIS );
Cправа Stage ( Спрайт с графикой ), слева Stage3D ( оба метода поворота дают один и тот же результат )
Подозреваю, что тут как то замешан AspectRatio для Stage3D,
Помогите пожалуйста.