Код AS3:
var perspectiveProjectionMatrix:Matrix3D = new Matrix3D();
var scaleX:Number = 2.0 / _stage.stageWidth; // 2.0 / 500
var scaleY:Number = -2.0 / _stage.stageHeight; // -2.0 / 375
perspectiveProjectionMatrix.copyRawDataFrom(
new <Number>[
scaleX, 0.0, 0.0, 0.0,
0.0, scaleY, 0.0, 0.0,
0.0, 0.0, -1.0, 0.0,
-1.0, 1.0, 0.0, 1.0
]
);
var modelViewMatrix:Matrix3D = trs(0,0,-45*Math.PI/180, 0.05, 0.13 ); //( "trs" - функция, выше в комментариях )
var resultMatrix:Matrix3D = new Matrix3D();
//resultMatrix.append(perspectiveProjectionMatrix);
resultMatrix.append(modelViewMatrix);
_context.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0,resultMatrix , true);
Результат как на картинке
Код AS3:
var perspectiveProjectionMatrix:Matrix3D = new Matrix3D();
var scaleX:Number = 2.0 / _stage.stageWidth; // 2.0 / 500
var scaleY:Number = -2.0 / _stage.stageHeight; // -2.0 / 375
perspectiveProjectionMatrix.copyRawDataFrom(
new <Number>[
scaleX, 0.0, 0.0, 0.0,
0.0, scaleY, 0.0, 0.0,
0.0, 0.0, -1.0, 0.0,
-1.0, 1.0, 0.0, 1.0
]
);
var modelViewMatrix:Matrix3D = trs(0,0,-45*Math.PI/180, 0.05, 0.13 ); //( "trs" - функция, выше в комментариях )
var resultMatrix:Matrix3D = new Matrix3D();
resultMatrix.append(perspectiveProjectionMatrix);
resultMatrix.append(modelViewMatrix);
_context.setProgramConstantsFromMatrix(Context3DProgramType.VERTEX, 0,resultMatrix , true);
В результате, экранного объекта не видно ( судя по всему находится, где-то за stage3D )