Richard Baker
Senior Members-
Posts
62 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by Richard Baker
-
As far as the face-on-face contact problem goes, I realize that I can't remove contact points willy-nilly. But it is important to make sure, each contact normal is facing the same direction. Sometimes they don't due to numerical issues. So, I remove contacts that don't face the same direction, as the normal returned by the GJKEPA. Sometimes objects will interpenetrate a tiny amount, and pop out on another side, resulting in a bad GJKEPA normal. This is particularly the case for very neat stacks. Messy stacks don't have this problem. But it seems as long as I used small enough time steps, this doesn't happen. Is this the correct way to do it? My next question: What is the best way to find contact data? When GJKEPA returns a normal end location, that is all I need to feed into my contact force solver, when one of the objects is a sphere. For polytopes this is not the case. I am currently going through all vertex face and edge combinations if a collision was detected. This seems inefficient. Also, I want the geometry of the objects to be consistent between collision and contact forces. But because I am using margins with collision detection, all the edges and vertices are beveled. Is it sufficient for the signed distance of the unenlarged objects to be negative or less than the sum of the margins? Thank you. I did not have a computer for a few weeks.
-
I am using VSP trees. They also help with painter's algorithm. My problem is not with collision detection, however, but with contact force. Check out my last post about the optimization I want to use with PGS. Also, another contact force problem I am having; when I have a force act along a similar line but opposite direction of another force Baumgarte stabilization makes the termination criteria bad because the resulting acceleration is not 0 due to the contact force pushing objects away. This causes PGS to stall.
-
Thank you. More to come.
-
Update: I am now using Gilbert Johnson Keerthi with margins and expanding polytope algorithm whenever the depth exceeds the sum of the margins. No narrow phase, no binary search, much better. My next question is about an optimization I want to use on the contact force side. A sphere has only one contact point, but a polytope can have many. For example, a box stacked on another box has up to eight contact points. I know how to find location, signed distance, and normal vector. I want to consolidate these contact points into one contact force. Is it possible? Thank you.
-
I have another question. It has to do with the interplay of collision detection and contact force. Is it possible to have GJK ignore collision points that are already in contact? I want to turn off collisions for these points and let Baumgarte correction prevent interpenetration.
-
I successfully implemented GJK. It is fast, but narrow phase is a bottleneck because i do GJK many times in the binary search. I read about the EPA, expanding poly tope algorithm. Question: EPA returns the point on the CSO closest to the origin. Does this point correspond to the edge/edge or vertex/face to collide first?
-
I successfully implemented GJK. It is fast, but narrow phase is a bottleneck because i do GJK many times in the binary search. I read about the EPA, expanding poly tope algorithm. Question: EPA returns the point on the CSO closest to the origin. Does this point correspond to the edge/edge or vertex/face to collide first?
-
Thanks for the responses. As it turns out, I was incorrectly binding dynamic friction to equal zero if there was enough force to break static friction but still zero tangential velocity. If instead I just let PGS work its magic, the non-zero friction at each vertex cancels out so that an object at rest will continue at rest. Unfortunately, I don't know much about parallel processing on the GPU. But that will probably be my next step after extending to 3D. I suppose in a multi-player online setting the GPU can perform server-side computations such as if a grenade starts to slide or grow after bouncing a few times? Thanks again.
-
I am using PGS to solve the contact force part of my rigid body simulator (2D for now). It seems to be functional but I can only seem to get a few decimals worth of accuracy. The algorithm will start cycling between different values. I realize that due to the lack of uniqueness theorem that there are many solutions to the NCP due to the introduction of friction. I want to find one solution that works and I feel that this cycling reduces accuracy. I tried subspace minimization but that doesn't seem to fix the problem. Fingers crossed that someone can help me. Thank You.
-
This is about the paper "Fast contact force computation for non-penetrating rigid bodies". Has anybody made sense of this? I have questions. Do I completely neglect the unprocessed a's that are neither mc nor c? If the sign for an unprocessed "a" changes, should I stop and pivot and put that index in either nc or c? I know that the unprocessed "f's" remain zero, but what if the sign of an unprocessed "a" changes? Do I actually perform a pivot operation on a matrix? Or is that done by moving between a "c" and an "mc"?
-
I have a function y (x) defined over a range from x0 to x1 I want to know the probability that y will equal some number within a given interval if I choose a random value for x.
-
Now my son wants a statistics textbook. (for the uninitiated, I am only his humble scribe and mother). I remember my stats textbooks from 35 years ago in grad school (Statistics: An Intuitive Approach: Weinberg, George H.: 9780818504266: Amazon.com: Books), but they are not necessarily the best today. He wants one that will take him from relatively basic stuff up to regression analysis. If not one, then two in a series. Hopefully something that is inexpensive and/or available secondhand through Amazon. Suggestions? Thank you.
-
The normalizing factor m = 1/(pi2*{2pi}2*{3pi}2*...{npi}2) I derived this from the products formula but it is only valid for x in the neighborhood of 0. It was a neat exercise but I don't totally understand why m should equal this but it is cool nonetheless.
-
Thank you. I will be watching the thread for other responses.
-
If you look at the graph of sin (x) you see that all the zeroes are located at multiples of pi. So if you were to factor sin (x) as if it were a polynomial you would get m * x * (x-pi) * (x + pi) * ( x-2pi) * (x + 2pi) * ( x - 3pi ) * (x + 3pi) ..... (x - n pi) * ( x + n pi) as n approaches infinity. Question: what is m? I figured this much from computer experiments, m is not a constant, it is a function of x and n. m is less than 0 if n is odd, m is greater than 0 if n is even. If you graph abs (x) and scaled it by the appropriate very large factor you'd see that m (x) looks like a bump centered at x =0 which morphs as n increases, it retains the bump figure. It is not of the form c * exp ( - k x2), although it looks like it could be. What is this mystery function m? Please help me figure this out.
-
Thank you again.
-
I already used back face culling on some polygons but not all of them. I tried using the average z value of the vertices of the polygon but that doesn't work because some polygons have closer points but are further away from the average. Thank you. Be back later in a rush right now.
-
I am working on a platform that does not have z buffering hardware support. I am trying to sort polygons in a scene according to z distance so I can implement the painter's algorithm, but I am having no luck. Currently I divide the game into regions and sort the polygons manually in each region according to what looks right. But I would like to know the mathematical solution. I don't have any cyclical overlaps and I don't have any intersecting objects but I do have polygons that touch. Thank you for your help.
-
He has decided that William of Occam had a better idea.
-
Sensei or others-- I have received a copy of the code for his problem. Others, ask and you shall receive.
-
He has very limited access to word-processor, and handwriting is difficult for him. For I in range 0, pixel columns, sample frequency (:enter l for j in range 0 pixel rows, sample frequency initialize ray of (i, j) --> unitvector for k in range numberofreflections enter findintersection (origin, unitvector) --> parameter enter parameter times unitvector plus origin --> x, y, z evaluate derivatives (x, y, z) equals partialderivatives reflection (normalvector), unitvector --> unitvector x, y, z --> origin #now for the second pass nested within the i and j loops more later.
-
He is eager to be able to interact directly. I will see what can be done to make communication easier. Glad you responded. I will be gone for a good part of today.
-
The way I was taught to conceptualize it on scratchapixel.com the focus point is behind the screen plane so it was probably awkward wording on my part because some people conceptualize the focus point in front of the screen plane. My question still stands; in the case of the interpolating quadric with two intersection points how do I determine which intersection point is a valid interpolation of the implicit surface. Thanks.
-
I am using bi-quadratic interpolation but the coefficients of the interpolating quadric surface are weighted according to the position in screen-space. I know it seems unorthodox but it seems like a real viable method. If anybody has ever ray-traced a sphere (a quadric surface) they would know that no meshes are required; you simply find the ray-sphere intersection using the quadratic formula. My solution didn't work for weeding out the false hits. What I currently do is calculate the local Lipschitz constant and divide the value of f at the surface of the quadric where the intersection of the ray occurs. Then subtract c, and divide that difference by the Lipschitz constant. This doesn't work because it is overzealous; it eliminates a lot of true hits. Thank you for showing interest in my problem. Specific language is difficult, my scribe is not perfect .
-
OK. I got it figured out. Would be easy with a larger computer, but I am limited to my TI super-calculator.