I’m attempting to make a 3d, textured cube based off of Senocular’s write-up about 3d functions here:
http://www.senocular.com/flash/tutorials/flash10drawingapi/
I’ve got the whole thing going great except my UVT data, I’m still getting distortions when the cube rotates. Here is the code in question:
create planes:
var p:Vector.<Vector3D> = new Vector.<Vector3D>();
for(var i:int = 0;i < points.length; i++) {
var pt:Vector3D = matrix.transformVector(points*);
pt.w = fov.focalLength / (fov.focalLength + pt.z);
pt.project();
p.push(pt);
}
var planes:Array = [
[p[0], p[1], p[2], p[3]],
[p[7], p[6], p[5], p[4]],
[p[0], p[4], p[5], p[1]],
[p[1], p[5], p[6], p[2]],
[p[2], p[6], p[7], p[3]],
[p[3], p[7], p[4], p[0]] ];
etc etc, this part is not the issue
drawPlane(plane);
drawPlane:
graphics.beginBitmapFill(Model.instance.getBitmap("test"));
var vertices:Vector.<Number> = new Vector.<Number>();
vertices.push(p1.x,p1.y, p2.x,p2.y, p4.x,p4.y, p3.x,p3.y);
var indices:Vector.<int> = new Vector.<int>();
indices.push(0,1,2, 1,3,2);
var fov:Number = fov.focalLength;
var t1:Number = fov / (fov + p1.z);
var t2:Number = fov / (fov + p2.z);
var t3:Number = fov / (fov + p3.z);
var t4:Number = fov / (fov + p4.z);
graphics.drawTriangles(vertices,indices, Vector.<Number>(
[0,0,t1, 1,0,t2, 0,1,t4, 1,1,t3]));
What am I doing wrong with my UVT?