• Content count

  • Joined

  • Last visited

Community Reputation

130 Neutral

About HalcyonX

  • Rank
  1. Verlet ragdoll problems

    Quote:Original post by AlfredR How many times do you loop over your full set of constraints? It's possible that your correction code is wrong, and that the constraint code actually diverges instead of converges. Try taking smaller timesteps and see if the simulation is more well-behaved. I loop over the constraints 5 times every 20 milliseconds, each time checking all constraints and then resolving collisions. I tried turning it down to 10 milliseconds, and the sliding does get slower, but so does everything else, so I'm guessing it's just because the 0.95 multiplier in the verlet integration is being applied more frequently. As for friction, how exactly should I implement it? I'm thinking that each time i find a collision, I'll apply onto each object a force against its velocity along the tangent of the surface. But how should this force be applied? Should I add the vector to the acceleration portion of the verlet integration equation? Or should I simply calculate the final velocity and adjust the object's previous position accordingly?
  2. Verlet ragdoll problems

    Thanks for the replies, guys. You guys are right about the friction not being implemented being the problem. I tried removing the velocity component from the verlet integration, and the pile stops moving. However, I do use a bit of damping during the verlet integration (ie. x’=x+0.95(x-x*)+a*×Dt2), which usually brings the objects to a stop within a second or two. However, it doesn't seem to work for the pile, it does not. Any ideas why?
  3. Verlet ragdoll problems

    I'm writing a 3D verlet ragdoll, mainly along the lines of stuff found here: http://www.teknikus.dk/tj/gdc2001.htm It seems to be mostly working, but I've come across a problem. When multiple objects that are constrained to each other (ie. parts of the ragdoll) pile together, the pile sometimes starts sliding in some random direction. I'm guessing that this is caused when trying to satisfy multiple conflicting constraints (fixing one violates another, and in trying to fix them, the points get a net movement). I have no idea how this could be fixed without major changes. Can anyone help? Thanks.
  4. Yea if i do add in the support for it, then I'll probably modify my graphics code to support it directly.
  5. Wow, I didn't expect to get so many replies! Thanks guys. From reading this, though, it seems like my understanding of curved surfaces is a bit off. So just to clarify, the only real advantage that they give over pre-calculated triangles is that they allow for variable LOD? And that with today's gfx cards, it is faster to draw all the triangles to the screen than to perform the tesselation calculations, which is why they are no longer used much? So the original reason for my post is that my friend and I are developing a 3D game. I did the implementation for graphics module, and he is writing a model loader, with which We plan to load in models from Doom3, HL2, etc. Currently, my graphics module doesn't have any support any curved surfaces, and he is insisting that I add it in. What is your guys' take on this? Is it worth the effort? Thanks.
  6. So while discussing this topic with a friend, we came across some disagreements. How long have commercial game engines been supporting curved surfaces? Which well-known engines (past and present) support them, and which ones don't? Thanks. [Edited by - HalcyonX on January 20, 2006 9:50:56 PM]
  7. nice job, it looks pretty good. A few things though. On my dell inspiron 500m laptop with an Intel Extreme graphics card, the mouse is slightly laggy. Nothing major, but a bit annoying. Also, the pieces seem to twitch every once in a while shortly after they get flipped. Its as if they didnt flip all the way when they flipped, and then suddenly got fully-flipped in one frame 1-2 seconds later. Finally, the most annoying thing is that once you alt-tab out, you cant get back in. When i tried to alt-tab back into the game, all i see is a white window.
  8. [quote]Original post by Anonymous Poster Quote:Original post by Daniel Miller Quote:Original post by Promit To elaborate -- first, move everything. Don't collide in this step. Next, detect all of the collision events and generate collision pairs. Third, make the collision pairs behave as appropriate. Should you wait until next frame to test whether objects are still inside of each other? No, it is done in every frame. So to say it all at once, in each frame, first move stuff, detect collisions, do collision response, render, and go to next frame (repeat).
  9. float vs double

    Quote:Original post by Daniel Miller If you shouldn't use == or !=, then wouldn't > and < be messed up as well? No, < and > are fine. The problem with == and != is that rounding errors could turn what you think is 1.234567 into 1.234693, and if you try to == it with 1.234567, it'll return false, when it actually should be true. On the other hand, 1.234693 is still, say, < 0. You only have a problem if you compare 2 numbers that are very close to each other.
  10. float vs double

    Thanks for the replies, everyone. Ill try to stick to floats when possible. Quote:For renderable data, floats would be far more sensible..... What exactly is "renderable data"? Is it things like colors, polygon vertex coordinates, etc.? Quote:another place it may be noicable is when storing characters positions. If your character starts at a position of 0,0,0. Then floats will start losing precision as ou move further away from that point. ie, at coords 100000,100000,100000 you may only have a small precision left to deal with.... So i should store object position coordinates as floats? But these values are passed to openGL's translate function when I render, which then gets put into a matrix and is multiplied with all the verticies. Does this count as "renderable data"? Should i cast them to floats before calling the translation function? Thanks.
  11. Hmmm... the program doesnt run on my machine at all. The MainCode window comes up, but its all black, and i get the "MainCode.exe has encountered a problem and needs to close blablabla" and asks me if i want to send an error report to MS. Im running (or trying to) this on my Dell Inspiron 500m on Windows XP. The graphics card is one of those onboard intel ones.
  12. oh heh, now it looks so simple. Makes me wonder why i didnt think of doing it that way. Thanks a bunch!
  13. Im making a game that involves the player controlling a human character, and am faced with a problem im sure everyone has encountered. When the player hits the "up" key, the character is supposed to move forward. At first, I made it so that if the "up" key is held down, then at every cycle of the game loop, the character's position is moved forward by some amount. It worked fine until i tried to implement physics. For physics, i need velocity and acceleration. When a force is applied, acceleration changes. At every cycle, i update velocity based on acceleration, then update position based on velocity. This, then, is a problem, because the change in position due to the "up" key is not reflected in the velocity. I then thought about having the "up" key adjust velocity, but then that would cause a similar problem between velocity and acceleration. If i make it adjust acceleration, it would involve some weird logic. Anyone know of a good solution? What is the method used in most games? Thanks.
  14. float vs double

    hmmm.. seems like theres a mix of opinions about which one to use. Ill use a typedef and give both a try then, and see if my program can handle the increase in memory. Thanks guys!
  15. float vs double

    mmm ic. Ok, thanks. Ill just stick to floats then.