Jump to content

  • Log In with Google      Sign In   
  • Create Account

Stimpy1983

Member Since 13 Jul 2012
Offline Last Active Aug 01 2012 08:55 AM

Posts I've Made

In Topic: [AGAL / Stage3D] Outline / Silhouette Shader

24 July 2012 - 06:37 AM

I have figured out, that my code can't be working because all my Normals look up. So i have a plane 2d mesh , not a picture - a mesh , but all my vertexes are on the X/Y Axis. All my Normals are going up. The shader takes the angle between cam position and normal, if i understood right. So that can't be working....

Have somebody an idea how to draw an outline for a mesh where the normals are all in the same direction?!

In Topic: [Stage3D] Picking / Ray Intersect don't work

13 July 2012 - 06:18 AM

Now i'm confused:

I have found some another calulation for ray picking, and now i'm really close to success , but now it seems that the hole coordinate system is a few units more left and bottom. So when i click left , buttom a few pixel away from an aabb box it beginn to hits. Now i'm confused....

The code i have found here:

[source lang="java"]var NEAR:Number = 0.1; var FAR:Number = 5000; var ASPECT:Number = winSize.x / winSize.y; var dx:Number=Math.tan((45 * Math.PI / 180)*0.5)*(p.x/(winSize.x * 0.5)-1.0)/ ASPECT; var dy:Number=Math.tan((45 * Math.PI / 180)*0.5)*0.5*(1.0-p.y/(winSize.y * 0.5)); var mt:Matrix3D = new Matrix3D(); mt.append(getView()); mt.invert(); var p1:Vector3D=new Vector3D(dx*NEAR,dy*NEAR,NEAR); var p2:Vector3D = new Vector3D(dx * FAR, dy * FAR, FAR); p1 = mt.transformVector(p1); p2 = mt.transformVector(p2); var dir:Vector3D = new Vector3D(); dir = p2.subtract(p1);return new CRay(p1, dir);[/source]
How can that be?!?!

EDIT: okay, another notice. When i press the mouse in the direct center from the screen the second algo works perfectly!!! Hits the Box exactly! But when i go away from the center(with the mouse, camera still the same), the ray goes more and more wrong. Hope this helps somebody

EDIT #2: I'm really go crazy!

So this Code work perfectly on begin:

[source lang="java"] var mX:Number = -1 + (p.x / winSize.x) * 2; var mY:Number = 1 - (p.y / winSize.y) * 2; var farPos:Vector3D = new Vector3D( mX, mY, 1.0, 1.0 ); var nearPos:Vector3D = new Vector3D( mX, mY, 0.0, 1.0 ); var mt:Matrix3D = new Matrix3D(); mt.append(getProjection()); mt.append(getView()); mt.invert(); nearPos = mt.transformVector(nearPos); farPos = mt.transformVector(farPos); nearPos.scaleBy(1.0 / nearPos.w); farPos.scaleBy(1.0 / farPos.w); var Dir:Vector3D = farPos.subtract(nearPos); Dir.normalize(); return new CRay(nearPos.subtract(position.add(Dir)), Dir);[/source]

So i hit everywhere with the mouse my boxes - All good....until i rotate or move my cameraPosted ImageI build my view matrix like the post before this. When i move the camera 1 unit , the ray hit nothingPosted Image

In Topic: [Stage3D] Picking / Ray Intersect don't work

13 July 2012 - 06:03 AM

Hi bwhiting,

sounds good when it is close - But not near enough Posted Image

I have tried with no normalized mouse coords - The result is the same, no hit.

Here some values:

Vector3D(0.030640805686170305, 0.0016271979761298063, 0.00006891936057909493) <- The nearPos Vector , btw. the ray orgin (is little small, or?!?!?!)

My View Matrix i set like this:


var m:Matrix3D = new Matrix3D;
m.invert();
m.appendRotation(neigung, Vector3D.X_AXIS);

view.identity();
view.appendTranslation(position.x, position.y, position.z);
view.append(m);

getFrustum();

Hope this helps

PARTNERS