stair climbing

Basically, I’m trying to implement smooth stair climbing. I can already climb stairs and small bumps…but its not smooth. What’s the best way to do this?

you may get better results if you hold the handrail…

perhaps tell us the parameters you are sending to glClimbStairs() ?

mmm…good one! …how long did it take you to think of that? Good to see you have some important things to contribute to this forum,
thanks again.

Hi there!

I know I did read up on this - hang on, I’ll just go dig up the URL:

This is collision detection with ellipsoids, which should at least point you in some kind of direction.

Good luck!

Come on! I don’t see what you are doing to contribute to this forum… that topic is just off-topic. It has nothing advanced. It has nothing OpenGL. It even has nothing about graphics programming! I don’t want to sound rude, but you’ve already asked your question on other development sites, so what the hell are you doing here ? Are you so desperate … ?


So tell me, what exactly do you consider advanced then?

Djeez, guys like you just kill a forum…


Search for the posts they’ve made on this forum, masterpoi - then you’ll see that far from killing the forum, they actually make the forum.
And the forum shall from now on be known as ADVANCED OPENGL.
Tell us all what tenuous connection you make between “stair climbing” and opengl…I’d love to hear it.

What exactly does insulting people as being lazy and dumb add to the forum? Love to hear that…

You can’t have advanced topics with only opengl commands, you just can’t. And i still don’t see why this isn’t considered an advanced topic. (While Looking at the beginners forum)

I’ve been following the forum for about 2 years now, every now and then something like this becomes a mayor thread with more than 50 posts.


[This message has been edited by masterpoi (edited 09-18-2002).]

I think your question should be more specific in order to obtain a constructive answer.

For what sort of project do you need this ? a game ?
What method do you use at this time ?
What is your character ? human, animal, robotic, none of the above ?
What sort of things do you want your character be able to climb (exhaustive list) ?
Do you want to calculate animation in realtime ?
Do you want your animation to be physically correct or just believable ?
Did you analyse biomechanics of stairs climbing ?

Originally posted by masterpoi:
You can’t have advanced topics with only opengl commands, you just can’t. And i still don’t see why this isn’t considered an advanced topic. (While Looking at the beginners forum)

You have a point, but simulating climbing stairs is really not related in any way to graphics algorithms, technical issues with rendering, or any opengl related issue. It’s a collision detection question - and there are plenty of other forums that deal exclusively with these kind of questions, so why ask them here?

I have a strange deja-vu feeling…
Don’t make such a big deal out of this or we’re going to have another 70+ post thread over nothing.And that’s what’s hurting the forum most.Wasted,meaningless typing.Besides, vshader’s first remark was ‘a good one’ indeed…No need to take it personal.

I have a strange deja-vu feeling about someone else writing “I have a stange deja-vu feeling”…add infinity.
I’m on mi lunch now…

Ok, thanks for all the help!..i think
I only posted this question because from the things i’ve read, there are deffinently some intelligent people reading/contributing here. I was hoping to get some other peoples ideas on this subject, I already have my own ideas/implementation and wanted to see how it compares to others.

First of all, it would be nice if you can tell people how you did it.
Secondly, I still don’t understand what you are asking. Are you looking for something like:

to do quote: “I’m trying to implement smooth stair climbing”?

Fair enough, here it is:
I’ve implemented collision detection using a bsp tree along with the dynamic plane shifting algo. I have also implemented “stepping”. This allows the player to move up small rises like stairs…but its very rough, it just jumps straight up each step. Im aiming this for use in a FPS style game…and i have a few ideas of how to do it but would like some other opinions.

opinion? no problem!

No need to be realistic in a game. Just do a smooth move up.

It will keep your collision detection simple as a bonus.

PS: I think you now understood how to post in the advanced forum!


I haven’t tried this, but I think it should work: For each frame, you calculate the height it should be at. Currently you just use this value right off, but instead you should do a weighted average between this a previous values. I’d try something like this:

#define AVERAGE_FACTOR … (something in 0…1)

current_y = calcCurrentY();

static float accumulator = 0;
accumulator *= AVERAGE_FACTOR;
accumulator += current_y;

y_to_use = accumulator / sum(i = 0 to infinity, AVERAGE_FACTOR^i);

No need to be realistic in a game. Just do a smooth move up.

Yeah, no need for that pesky realism like self-shadowing, volumetric lighting, fog effects, bump mapping, etc…

If you’re going to try to do something realistic, it should be consistently realistic. Meaning, you shouldn’t gloss over stuff like stairs if you’re going to spend hours getting some stencil-shadow volume technique to work. That’s why it bothers me that very few FPS’s do decent animation; it’s mostly 80’s-style sprite animation.

Medal of Honour: Allied Assault has a magnificent movement model - real shakey-cam stuff, when running around and climbing stairs…very atmospheric, and certainly worth the effort.

Well excuse me if you guys dig that stuff (stair climbing realism) but to me it gets dizzying when the camera shakes too much. It’s a good thing most games dont implement shaking for walking.

Ever tried filming with a camera while walking or running?

Better put that in options section!