을 내가 한 perspectiveFieldOfViewLH 사용하지 않고 stage3d에 투영 행렬을 정의합니다.방법이 튜토리얼을 방법
http://www.songho.ca/opengl/gl_projectionmatrix.html
내가 정말 이해할 수 있는지 확인하기 위해 내 자신의 매트릭스를 구현하기 위해 노력 : 나는 3D 프로그래밍, 그래서 투영 행렬이 explenation을 읽은 후 새로운 해요
var y2:Number = near * Math.tan(fov * Math.PI/360);
var y1:Number = -y2;
var x1:Number = y1 * aspect;
var x2:Number = y2 * aspect;
return new Matrix3D(Vector.<Number>([
2 * near/(x2 - x1), 0, 0, 0, //x
0, 2 * near/(y2 - y1), 0, 0, //y
0, 0, (far + near)/(near - far), -2 * far * near/ (far - near), //z
0, 0, -1, 0 //w
]));
그리고 검은 색 화면이있어. 내가했던 모든 것은 튜토리얼의 행렬을이 행렬과 교환하고 있었다. 나는 얼마 동안 그걸 가지고 놀려고했지만 결과는 없었다. 제 1 및 제 2 행이 동일한 지
protected function perspectiveProjection(fov:Number=90,
aspect:Number=1, near:Number=1, far:Number=2048):Matrix3D {
var y2:Number = near * Math.tan(fov * Math.PI/360);
var y1:Number = -y2;
var x1:Number = y1 * aspect;
var x2:Number = y2 * aspect;
var a:Number = 2 * near/(x2 - x1);
var b:Number = 2 * near/(y2 - y1);
var c:Number = (x2 + x1)/(x2 - x1);
var d:Number = (y2 + y1)/(y2 - y1);
var q:Number = -(far + near)/(far - near);
var qn:Number = -2 * (far * near)/(far - near);
return new Matrix3D(Vector.<Number>([
a, 0, 0, 0,
0, b, 0, 0,
c, d, q, -1,
0, 0, qn, 0
]));
}
공지 : 이것은 가이드의 행렬이다.