Smoothing out the angles on a camera

Discuss programming in the QuakeC language.
Post Reply
Mr Lenguini
Posts: 7
Joined: Fri Oct 22, 2004 2:35 am
Contact:

Smoothing out the angles on a camera

Post by Mr Lenguini »

I set up a cinematic where the camera circles an object while staying pointed towards it. I calculated the angle of the camera by
camera.angles = vectoangles(targ.origin - camera.origin);
where this is updated every cycle of the game, but the change in angle is only changing in whole units and looks really jerky. Is there a way to smooth out the camera angle change or is it some sort of limit of the game. The player view point moves fluid enough so there has to be a way to emulate the smoothness. Any help or ideas.
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

The problem is Quake tends to send angles to the client (even when you're playing single player it emulates client-server format) as bytes, meaning you can only have 256 possibilities for each of the 3 360-degree angles. This makes things pretty jerky, unfortunately.

Darkplaces I believe has fixed this, and sends large angles by default...? This bug was the bane of existance for a long time for a lot of people, but in DP at least it seems to be fixed. I don't know if I set an option or something.
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Sajt
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Post by Sajt »

It isn't a bug, it was just compressed because Quake didn't ever have a need for really precise values, so it did it to save on net bandwidth. IMO they should have made SVC_SETANGLE take WriteCoord instead of WriteAngle... :)
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Mr Lenguini
Posts: 7
Joined: Fri Oct 22, 2004 2:35 am
Contact:

An Old Problem

Post by Mr Lenguini »

So what your trying to say is there is absolutely no way around this in regular .qc based quake coding at all, right?
Wazat
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Post by Wazat »

Probably not. Most Quake engines still have the problem with byte-sized angles. As said above, this was a design decision by ID Software, not a bug; however, it's become a major inconvenience now that we've raised the bar in our mods.

The one non-new-engine-solution might be to use the player as the camera... but I think self.fixangle=TRUE; does the same as the setangle writebyte, so perhaps that won't fix it either. :(

If you can't get DP or the other high-graphics engines to run on your compy, then perhaps Spike has fixed it in FTE? If you're trying to avoid all new engines completely, then I don't know what to tell you. :(
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Post Reply