![]() |
![]() |
#1 |
Orbiter Founder
![]() |
![]()
Just in case you were concerned that it has got a bit quiet on the development front recently: I am in the middle of entirely rewriting the dynamic state propagation code. This was initially sparked by this issue, but has gotten a bit out of hand. Essentially, the problem was caused by some hacks in the ground impact model that I had introduced in order to keep impacts stable at higher time accelerations.
I've now decided that it's time to revise this strategy and instead write a proper dynamics model for ground impacts. This will allow much more realistic effects at real-time and low accelerations, but will need some consideration for high time accelerations (where the entire ground interaction may occupy only a fraction of a single frame. In order to accomodate this, I have now rewritten the time integration routines to allow subsampling, essentially splitting a single video frame into multiple state updates. Since dynamic updates are much faster than frame rendering, a fair number of subsamples can be fitted into a video frame without too much performance impact. Additionally, ground impact forces are no longer considered constant over an update frame. High-order integrators (RK and SY) which evaluate the states at intermediate times, will now receive interpolated ground impact forces. One result of this new model is that linear and angular states must now always be updated in sync, so it will no longer be possible to select different integrators for the linear and angular states (since the evaluation of intermediate states requires information about position, velocity, orientation and angular velocity). It's going to be a while before the new model is stable enough to justify a new beta (I also want to give aerodynamic forces a similar treatment). Also, I may need to fall back to the old behaviour at very large time accelerations, where even subsampling won't be sufficient for impact modelling. Some changes to the API may also be required, with the usual concerns about backward compatibility. Anyway, in the meantime here is a little demo to whet your appetite: |
![]() |
![]() |
Thanked by: | ADSWNJ, Aeadar, agentgonzo, Alfastar, Andy44, APDAF, Arrowstar, Arthur Dent, Artlav, astrosammy, Axertan, Bibi Uncle, BusDriver, Chub777, CigDriver, Columbia42, communist, Cras, dbeachy1, dgatsoulis, diogom, Donamy, donatelo200, dumbo2007, Eli13, Enjo, Evil_Onyx, Fabri91, Face, FatalFlux, fausto, Felipi1205, Fert, Fizyk, flyer, flytandem, FordPrefect, Futhalero, garyw, george7378, Gerdih, Gr_Chris_pilot, GuiConteDGIV2X, Hlynkacg, iamwearingpants, Interceptor, IronRain, Izack, jangofett287, jarmonik, Jarvitä, JEL, Keatah, kuddel, ky, luki1997a, MaverickSawyer, mc_, mojoey, n122vu, n72.75, NOMAD, N_Molson, orb, orbitingpluto, Pablo49, palebluevoice, PeriapsisPrograde, Pipcard, Piper, Quick_Nick, Ripley, RisingFury, River Crab, Rtyh-12, Samuel Edwards, Scruce, SiameseCat, SiberianTiger, sitha241, sorindafabico, spacemonkey81, Spacethingy, statickid, Stevodoran, Sunhillow, Tex, TMac3000, toddhisattva, Tommy, Tschachim, TSPenguin, Tychonaut, Urwumpe, Woo482, Xyon, Zatnikitelman |
![]() |
#2 |
Probenaut
![]() |
![]()
Excellent! It looks quite nice.
![]() In the first segment of the video, am I seeing the DG landing gear compress, or are they clipping the surface of the runway? |
![]() |
![]() |
![]() |
#3 |
Drell Admiral, Citadel Fleet
![]() |
![]()
Oh wow, that looks great Dr. Schweiger.
|
![]() |
![]() |
![]() |
#4 |
Spring of Life!
![]() |
![]()
Excellent stuff!
|
![]() |
![]() |
![]() |
#5 |
Orbiter Founder
![]() |
![]() Quote:
By changing the compression stiffness and damping factors, you can get pretty interesting effects. Also, I noticed that it is now nearly impossible to land on the moon runway-style (i.e. with significant horizontal velocity) without flipping over, in particular if you engage the wheel brakes. Also, I may have to replace the familiar 3 "touchdown points" with a "touchdown convex hull", because at the moment the spacecraft will sink below the surface if you land upside down. |
![]() |
![]() |
![]() |
#7 |
Aperiodic traveller
![]() ![]() |
![]()
Looks great.
While you're at it, can you also leave a hook for altitude? That is, instead of comparing the altitude with the planet, or collision against the planet's sphere, leave an option to have a module that would provide that altitude/collision structure for such point on such planet instead. That could simplify the long-awaited business for making collidable terrain and building meshes into a few lines of add-on code. About subsampling - do you aim at a specific step length, breaking up whatever frame_time into a set of it (plus remainder), or something else? The former is prone to runaways - if the rendering lags and the amount of time to fill up the steps exceeds the time to render the next frame then the next frame would take more time to render, needing even more steps, and so on. Assuming the state update would take negligible time can backfire too - someone may want to make a replicating vessel, running the vessel count into thousands - ![]() |
![]() |
![]() |
![]() |
#8 |
OBSP developer
![]() |
![]() Quote:
---------- Post added at 08:57 ---------- Previous post was at 08:53 ---------- Quote:
Also, what about a way that allows addon devs to define more than 3 touchdown points? |
![]() |
![]() |
Thanked by: |
![]() |
#9 |
Addon Developer
![]() ![]() |
![]()
Thanks for this update, I was feeling the vessel-to-ground interface as one of the "oldest parts" of Orbiter code.
![]() And hopefully this could help to develop 3D terrain with collision detection, as stated above ![]() |
![]() |
![]() |
![]() |
#10 |
Multitasker
|
![]()
Wonderful! I never liked that "snapping to the ground" look very much. Thanks!
|
![]() |
![]() |
![]() |
#11 |
Heat shield 'tester'
|
![]()
So when I crash, I will now actually, well, crash! Awesome!
![]() |
![]() |
![]() |
![]() |
#13 |
OBSP developer
![]() |
![]()
One more thing I suppose I should mention here...
When vessels roll along the runway, they actually jump a little bit. UCGO cars routinely become airborn while driving along. Not actually an issue the average Orbinaut would care about, but I thought I'd point it out here. I'm really excited about the new landing gear compression! It'll add an extra challenge to landings! Last edited by RisingFury; 12-06-2011 at 07:01 PM. |
![]() |
![]() |
![]() |
#14 |
Saturn V Misfire
![]() ![]() |
![]()
B-E-A-utiful, that is spectacular coding, but i have one question:
will there be an upepr limit, defined in a vessel's code for how far the gear can compress? because in the video it showed the belly of the DG going below the surface of the earth, when a DG would really have only 150mm of compression at a maximum (due to the little landing gear struts) this also leads onto another point: if the calculated compression would exceed the given upper limit for compression, vessel damage could be implicated, starting at just the wheels (increased rolling resistance), then to landing gear in general (further increase in rolling resistance, and possibly failed retraction) then to other parts, which can result in broken elevons, reduced lift, increased drag etc ok, now i see why your project got out of hand... did orbiter just start as a simple orbital calculator... then evolve into the sim we see today? |
![]() |
![]() |
![]() |
#15 |
Addon Developer
![]() ![]() |
![]() Quote:
They do? This is good ![]() My tug has the same problem. It was quite bad before, but it is a lot better now (< 2 degrees). It depends on the the touchdown points and the location of the thruster/force. I must say, this has perked my interest, though like you I am not sure what effect it will have. |
![]() |
![]() |
![]() |
|
Thread Tools | |
|
|
Quick Links | Need Help? |