Stimpy1983

Member

5

110 Neutral

• Rank
Newbie
1. [AGAL / Stage3D] Outline / Silhouette Shader

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. [AGAL / Stage3D] Outline / Silhouette Shader

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: [url="http://blogs.aerys.in/jeanmarc-leroux/2012/01/23/single-pass-cel-shading/#comment-1593"]http://blogs.aerys.i...g/#comment-1593[/url] And i have try to implement it in AGAL, with this Result: [code] 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" [/code] 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. OpenGL [Stage3D] Picking / Ray Intersect don't work

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?!?! [u]EDIT: okay, another notice.[/u] 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 [u]EDIT #2: I'm really go crazy![/u] 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 camera[img]http://public.gamedev.net//public/style_emoticons/default/wacko.png[/img]I build my view matrix like the post before this. When i move the camera 1 unit , the ray hit nothing[img]http://public.gamedev.net//public/style_emoticons/default/unsure.png[/img]
4. OpenGL [Stage3D] Picking / Ray Intersect don't work

Hi bwhiting, sounds good when it is close - But not near enough [img]http://public.gamedev.net//public/style_emoticons/default/huh.png[/img] 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. OpenGL [Stage3D] Picking / Ray Intersect don't work

Hi, i have a little Question about Ray Picking - I use the Flash API "Stage3D" where it is hard to find informations. [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] 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 [img]http://public.gamedev.net//public/style_emoticons/default/blink.png[/img] ).... 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