Jump to content
• Advertisement  # Stimpy1983

Member

5

110 Neutral

## About Stimpy1983

• Rank
Newbie
1. 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?!
2. Hi Everybody, i search for a good Outline Shader - So that i draw the Outline of my Mesh. I don't need complete Toon Shading or things like that. Just a Outline from my Mesh. I have found this paper: http://blogs.aerys.i...g/#comment-1593 And i have try to implement it in AGAL, with this Result: va0 = VertexPosition va3 = VertexNormal vc0 = WorldToScreenMatrix vc4 = CameraPosition vc20 = Constants (.y = 0.04) vertexShaderAssemblerColor.assemble(Context3DProgramType.VERTEX, "sub vt0, va0,vc4\n" + "dp3 vt1, va3, vt0\n" + "slt vt2, vc20.x,vt1\n" + "mov vt3, vc20.y\n" + "mul vt4, vt2, va3.xyz\n" + "mul vt4, vt4, vt3\n" + "add vt5, va0, vt4\n"+ "m44 op ,vt5 vc0\n" fc20 = Constants,x= 0.1 fc8 = Color Context3DProgramType.FRAGMENT, "tex ft0 v1 fs0<2d,linear,repeat,linear,mipnone>\n" + "slt ft1 v4.x fc20.x\n" + "mul ft2 ft1 fc8\n" so, but there nothing happens - Or a white screen. Have somebody some cool Outline Shader or know what is wrong with my? Greeting Stimpy
3. 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 cameraI build my view matrix like the post before this. When i move the camera 1 unit , the ray hit nothing
4. Hi bwhiting, sounds good when it is close - But not near enough 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
5. Hi, i have a little Question about Ray Picking - I use the Flash API "Stage3D" where it is hard to find informations. After a lot of searching i dosn't find a stage solution so i adapt some opengl/directX Code, but i don't became it work. Here is my current code: [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(); trace(nearPos.toString()); ray = new CRay(nearPos, Dir); return ray;[/source] But when i click on some boxes on the screen the intersection never happens, or on the wrong element(everytime the same ).... So now i don't have any idea what is wrong and i'm very frustrated. Can here somebody help me out? That were soo great! p.s. sorry for my bad english. Greetz Stimpy
• Advertisement
×

## Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!