A Flash Developer Resource Site

1. Hi,
Here is a simple VR set-up
Here is an example of it uploaded

http://www.trump.net.au/members/ship...example3D.html

And here is the code. I am sure you will have a number of questions to ask in order to use this code for your purposes. So I will await your questions.
The following code is all there is to the example if you want to play with it. I don't think I can make it much simpler than this. All aspects can be extended if needed.

Code:
```function Vect3(x,y,z){
this.x=x;
this.y=y;
this.z=z;
};
Vect3.prototype.Set=function(x,y,z){
this.x=x;
this.y=y;
this.z=z;
};
function Matrix3x3(){
this.xx=1;	this.xy=0;	this.xz=0;
this.yx=0;  this.yy=1;	this.yz=0;
this.zx=0;	this.zy=0;	this.zz=1;
};
Matrix3x3.prototype.Set=function(a,b,c,d,e,f,g,h,i){
this.xx=a;	this.xy=b;	this.xz=c;
this.yx=d;  this.yy=e;	this.yz=f;
this.zx=g;	this.zy=h;	this.zz=i;
};
Matrix3x3.prototype.SetRotation=function(x,y,z){
var a = Math.cos(x*(Math.PI/180));//x plane
var b = Math.sin(x*(Math.PI/180));
var c = Math.cos(y*(Math.PI/180));//y plane
var d = Math.sin(y*(Math.PI/180));
var e = Math.cos(z*(Math.PI/180));//z plane
var f = Math.sin(z*(Math.PI/180));
this.xx=(c*e);		this.xy=(b*d*e+a*f);		this.xz=(-a*d*e+b*f);
this.yx=(-c*f);		this.yy=(-b*d*f+a*e);  	    this.yz=(a*d*f+b*e);
this.zx=d;			this.zy=(-b*c);  			this.zz=(a*c);
};
function Object3D(){
this.Position=new Vect3(0,0,0);
this.Orientation=new Matrix3x3();
};
this.vertList=vertices;
};
Object3D.prototype.OutPutObjectSpace=function(){
for(i in this.vertList){
trace(this.vertList[i].x);
}
};
Object3D.prototype.TransformVertices=function(){
//displacement camera to object
var dx=this.Position.x-Camera.Position.x;
var dy=this.Position.y-Camera.Position.y;
var dz=this.Position.z-Camera.Position.z;
//transform object position into camera space using Camera orientation matrix
var x =  dx * Camera.Orientation.xx + dy * Camera.Orientation.xy + dz * Camera.Orientation.xz;
var y =  dx * Camera.Orientation.yx + dy * Camera.Orientation.yy + dz * Camera.Orientation.yz;
var z =  dx * Camera.Orientation.zx + dy * Camera.Orientation.zy + dz * Camera.Orientation.zz;
//multiply object and camera orientation matrices
var  mxx = this.Orientation.xx * Camera.Orientation.xx + this.Orientation.xy * Camera.Orientation.xy + this.Orientation.xz * Camera.Orientation.xz;
var  mxy = this.Orientation.yx * Camera.Orientation.xx + this.Orientation.yy * Camera.Orientation.xy + this.Orientation.yz * Camera.Orientation.xz;
var  mxz = this.Orientation.zx * Camera.Orientation.xx + this.Orientation.zy * Camera.Orientation.xy + this.Orientation.zz * Camera.Orientation.xz;
var  myx = this.Orientation.xx * Camera.Orientation.yx + this.Orientation.xy * Camera.Orientation.yy + this.Orientation.xz * Camera.Orientation.yz;
var  myy = this.Orientation.yx * Camera.Orientation.yx + this.Orientation.yy * Camera.Orientation.yy + this.Orientation.yz * Camera.Orientation.yz;
var  myz = this.Orientation.zx * Camera.Orientation.yx + this.Orientation.zy * Camera.Orientation.yy + this.Orientation.zz * Camera.Orientation.yz;
var  mzx = this.Orientation.xx * Camera.Orientation.zx + this.Orientation.xy * Camera.Orientation.zy + this.Orientation.xz * Camera.Orientation.zz;
var  mzy = this.Orientation.yx * Camera.Orientation.zx + this.Orientation.yy * Camera.Orientation.zy + this.Orientation.yz * Camera.Orientation.zz;
var  mzz = this.Orientation.zx * Camera.Orientation.zx + this.Orientation.zy * Camera.Orientation.zy + this.Orientation.zz * Camera.Orientation.zz;
//transform object vertices from Object Space -> World Space -> Camera Space -> 2D screen cordinates
var p,o;
for(i in this.vertList){
p=this.vertList[i];
o=Camera.focalLength/((p.x * mzx + p.y * mzy + p.z * mzz)+ z);
p.sy=  -(((p.x * myx + p.y * myy + p.z * myz)+ y) * o) + (Camera.viewHeight/2);
p.sx=   (((p.x * mxx + p.y * mxy + p.z * mxz)+ x) * o) + (Camera.viewWidth/2);
}
};
Object3D.prototype.Render=function(mc){
mc.clear();
mc.moveTo(this.vertList[0].sx,this.vertList[0].sy);
mc.beginFill(0xFFFFFF,100);
mc.lineTo(this.vertList[1].sx,this.vertList[1].sy);
mc.lineTo(this.vertList[2].sx,this.vertList[2].sy);
mc.lineTo(this.vertList[3].sx,this.vertList[3].sy);
mc.endFill();
};
Object3D.prototype.MoveForward=function(incr){
this.Position.x+=this.Orientation.zx * -incr;
this.Position.y+=this.Orientation.zy * -incr;
this.Position.z+=this.Orientation.zz * -incr;
};
Object3D.prototype.MoveBackward=function(incr){
this.Position.x+=this.Orientation.zx * incr;
this.Position.y+=this.Orientation.zy * incr;
this.Position.z+=this.Orientation.zz * incr;
};
function Camera3D(){
this.Position=new Vect3(0,0,-350);
this.Orientation=new Matrix3x3();

this.focalLength=950;
this.viewWidth = 700;
this.viewHeight= 500;
};
Camera3D.prototype.MoveForward=function(incr){
this.Position.x+=this.Orientation.zx * incr;
this.Position.y+=this.Orientation.zy * incr;
this.Position.z+=this.Orientation.zz * incr;
};
Camera3D.prototype.MoveBackward=function(incr){
this.Position.x+=this.Orientation.zx * -incr;
this.Position.y+=this.Orientation.zy * -incr;
this.Position.z+=this.Orientation.zz * -incr;
};
//create new camera
var Camera = new Camera3D();
//position camera along world z axis
Camera.Position.Set(0,0,-350);
//create a basic 3D object
//set up animation loop
var animationLoop = setInterval(Update,1);
function Update(){
//update object rotation
//transform vertices
};
////////////////////////////////////Camera Keyboard Control/////////////////////////////////////////////
var CameraTranslationIncrement=1;
var CameraRotationIncrement=1;
var CameraRotationX = 0;
var CameraRotationY = 0;
var CameraRotationZ = 0;
Kdwn=Key.isDown;
myListener = new Object();
myListener.onKeyDown = function () {
if(Kdwn(38)){// pan camera around X axis
CameraRotationX+=CameraRotationIncrement;
Camera.Orientation.SetRotation(CameraRotationX,CameraRotationY,CameraRotationZ);
}
if(Kdwn(40)){// -pan camera around X axis
CameraRotationX-=CameraRotationIncrement;
Camera.Orientation.SetRotation(CameraRotationX,CameraRotationY,CameraRotationZ);
}
if(Kdwn(37)){// pan camera around Y axis
CameraRotationY+=CameraRotationIncrement;
Camera.Orientation.SetRotation(CameraRotationX,CameraRotationY,CameraRotationZ);
}
if(Kdwn(39)){// -pan camera around Y axis
CameraRotationY-=CameraRotationIncrement;
Camera.Orientation.SetRotation(CameraRotationX,CameraRotationY,CameraRotationZ);
}
//translate camera forward
if(Kdwn(32)){Camera.MoveForward(10);}
//translate camera backward
if(Kdwn(66)){Camera.MoveBackward(10);}
}
//movie clip to render to
//mouse event handlers

};
};```

2. Looks like the code got knocked around a bit in the transfer so here it is in a text file

3. hey thanks!

4. Hope it helps. Just let me know if you need any advice using it in your set-up. Or would like to add something to it ... like simple lighting or back-face culling.

Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•

 » Home » Movies » Tutorials » Submissions » Board » Links » Reviews » Feedback » Gallery » Fonts » The Lounge » Sound Loops » Sound FX » About FK » Sitemap