|
|
Trevor G Quayle wrote:
> DJ Wiza <Kil### [at] sohcahtoanet> wrote:
>
>>http://www.sohcahtoa.net/videos/amazinggrace.m1v
>>
>>This roller coaster is called Amazing Grace. It was designed by RiscIt,
>>one of the admins of CoasterSims.com. The actual track looks FAR better
>>in No Limits, because he uses terrain and 3DS objects, both of which I
>>have not implemented yet. Also, the lack of supports kind of takes a
>>bit away from the feel of the ride.
>>
>>That said, this represents the fact that I've fixed my banking problem
>>in that corkscrews and loops work (See my post on p.general), though
>>loops with little lateral movement will show a glitch, which shows
>>itself in one of the loops in this ride.
>>
>>I need to change the method of interpolation though...through the
>>corkscrews, the ride kind of wobbles because the interpolation is
>>linear. I know that No Limits uses some sort of bezier interpolation,
>>but I'm not sure how exactly to implement it for banking. I might
>>settle for 3rd order b-spline interpolation. While it may end up being
>>very smooth, it won't be as accurate to the original track.
>>
>>-DJ
>
>
> Got any barf bags? That was kind of fun.
>
> As a note, you have a kink in your track, ascending the loop at about the
> 38sec mark.
>
> -tgq
>
>
I know about the kink, that's why I noted above that vertical loops with
very little lateral movement will show a glitch.
The problem is with vertical track. If a track is exactly 90 degrees
down, how do you know which way is up? To make an up vector, I use
VPerp_To_Plane to find a vector that is perpendicular to a plane defined
by a vector that points "foward" along the track and the vector y. This
creates a vector pointing right. I then use vaxis_rotate to rotate that
by the amount of banking defined by the track.
Of course, this creates the problem that as track gets closer and closer
to going 90 degrees either straight up or down, you get rounding errors
that result in those kinks.
The author of No Limits found a way around it by allowing the user to
specify that a banking angle is "relative" to the previous control
points banking. Not sure how I could implement that though. I might
have to do a lot of reworking.
-DJ
Post a reply to this message
|
|