Jump to content

[KSP >= 1.3.1] Distant Object Enhancement (DOE) /L - Under new Management - 2.2.0.2 - 2024-0803


Lisias

Recommended Posts

ANNOUNCE

Release 2.1.1.5 is available for downloading, with the following changes:

  • Über refactoring
    • Creating a shareable MeshEngine
    • Decoupling PartModule details from the Engine
      • Now it can be extended by creating new DLLs, instead of recompiling the thing!
  • Adding (preliminary) support for ReStock
    • To tell you the true, just a more thoughtfully implementation of Stock MODEL sections.
  • Significant performance enhancements and CPU savings
  • New Render Mode to allow smooth transitions at the cost of memory.
    • Vessels are not removed from the cache, unless destroyed
    • May use a lot of memory!
  • Option to show the names of all visible bodies
    • Use <ALT> while RightClicking the mouse.

136482404-12b5286b-50f4-4a07-969f-2ee761

Guys, this is the real deal - all the work on the Experimental releases (more some late minute fixes and adjustments) are consolidated on a formal Release! :)

136482674-587d4a79-b637-41b7-9729-9db9ee

(this is also the last time I use the SpySat to take the pictures - I'm learning my way on Cameras, next release I will use something else!! :D 

And a screenshot using the hint from @rextable:

136586730-7793e274-91b8-4c5a-bb71-e709ff

See OP for the links.

— — — — —

This Release will be published using the following Schedule:

  • GitHub. Right Now.
  • CurseForge. Right Now.
  • SpaceDock. (By Saturday, probably, as I need to push some changes on NetKan)

The rationale is that Real Life bitten me this week (again!), and I ended up pushing ahead some tasks (as CKAN)

Edited by Lisias
Distribution Channels updated.
Link to comment
Share on other sites

On 10/7/2021 at 6:20 PM, Lisias said:

Option to show the names of all visible bodies

haha do you know how many times I hovered the mouse all over the sky saying "is that Minmus? nope. Uh... this one? no..." And then I'd hover somewhere random over the ground and see "Eeloo". 

But personally I'd rather turn off the name-on-mouse-over but have the <ALT>+RMB name toggle still active. Right now the mouse over has to be on for the <ALT>+RMB name toggle to work. This would avoid having names pop up over planets or ships. (I was going to request a click-through blocker, but with independent control of these, I personally wouldn't use the mouse-over.)

There's a problem with it too. It's showing the <ALT>+RMB names at 2 places in the sky 180 degrees apart. One place is correct, one place is phantom.

 

Link to comment
Share on other sites

8 hours ago, Krazy1 said:

haha do you know how many times I hovered the mouse all over the sky saying "is that Minmus? nope. Uh... this one? no..." And then I'd hover somewhere random over the ground and see "Eeloo". 

But personally I'd rather turn off the name-on-mouse-over but have the <ALT>+RMB name toggle still active. Right now the mouse over has to be on for the <ALT>+RMB name toggle to work. This would avoid having names pop up over planets or ships. (I was going to request a click-through blocker, but with independent control of these, I personally wouldn't use the mouse-over.)

Hummm… Didn't thought of that.

I need to fire a raycast from the camera to the body, and suppress the labelling if there's anything between...

https://github.com/net-lisias-ksp/DistantObject/issues/9

https://github.com/net-lisias-ksp/DistantObject/issues/10

 

8 hours ago, Krazy1 said:

There's a problem with it too. It's showing the <ALT>+RMB names at 2 places in the sky 180 degrees apart. One place is correct, one place is phantom.

Ouch! I missed that too!!

https://github.com/net-lisias-ksp/DistantObject/issues/8

 

Cheers!

Link to comment
Share on other sites

On 10/7/2021 at 8:30 AM, rextable said:

DELETED

Well, so I believe that fellow Kerbonaut is not going to help. :)

The link you provided on the earlier post provides a "skin" to be used on a spherical mesh. But the SkyBox is made with 6 flats surfaces, forming a cube (since the name, SkyBox).

This is going to need some serious math, as we will need to transform each pixel from a spherical coordinate into a flat one. Or, simplifying things, we need to "render" the sphere with the universe's skin and then render 6 projections using raycast, each projection being one if the sides if the cube used by the SkyBox. It's like a raytracing rendered photo, but the raycast is fired from inside the sphere to the pixel of interest, instead from the pixel into INF of its normal.

This problem was already solved uncountable times, including by me 20 years ago when I studied raytrace and radiosity (when this thing was still a novelty). Problem is… It was 20 years ago, I don't remember a thing!!! :D :D :D 

Let's keep this cooking on vapour some time, this is getting interesting...

Link to comment
Share on other sites

5 hours ago, Daniel Prates said:

What the what? Lisias from what height... or aLtItUdE rather... were these pictures taken from?

From L.K.O.! :)

135759693-4193b931-9989-4196-bf74-9bc346

135706461-0306304c-7709-48fa-8d52-c7440d

It's a "Spy Sat" using Tarsier's telescopes! :)

Use Haystack to select a target, Set Control from Here on the telescope (so it will pinpoint the target as one would expect) and use the SAS!

Edited by Lisias
tyops. as usulla.
Link to comment
Share on other sites

18 hours ago, Lisias said:

Well, so I believe that fellow Kerbonaut is not going to help. :)

Nope. :rolleyes:

 

18 hours ago, Lisias said:

Well, so I believe that fellow Kerbonaut is not going to help. :)

The link you provided on the earlier post provides a "skin" to be used on a spherical mesh. But the SkyBox is made with 6 flats surfaces, forming a cube (since the name, SkyBox).

This is going to need some serious math, as we will need to transform each pixel from a spherical coordinate into a flat one. Or, simplifying things, we need to "render" the sphere with the universe's skin and then render 6 projections using raycast, each projection being one if the sides if the cube used by the SkyBox. It's like a raytracing rendered photo, but the raycast is fired from inside the sphere to the pixel of interest, instead from the pixel into INF of its normal.

This problem was already solved uncountable times, including by me 20 years ago when I studied raytrace and radiosity (when this thing was still a novelty). Problem is… It was 20 years ago, I don't remember a thing!!! :D :D :D 

Let's keep this cooking on vapour some time, this is getting interesting...

...erm... I think your problem has just been solved for you - check your PMs 

Link to comment
Share on other sites

I like the improved skybox dimming... at least it seems like the planets and brighter stars don't dim as much as the skybox when panning the view. But you were talkin about more improvements. Was it changed already or am I krazy? 

I had the game hang when trying to recover a ship after splashing down. I didn't see anything obvious in the logs and now I overwrote them-oops. I relaunched and then recovered it normally. I'm only mentioning it in case a trend develops... last thing I did was update this mod version. \o/

For github issue 2, I also showed a pic of Jool showing through the sun. Not sure if you missed that or figured addressing the atmosphere would also fix that. 

Link to comment
Share on other sites

On 10/11/2021 at 12:16 AM, Krazy1 said:

I like the improved skybox dimming... at least it seems like the planets and brighter stars don't dim as much as the skybox when panning the view. But you were talkin about more improvements. Was it changed already or am I krazy? 

I didn't changed the visual effects itself, but I found some performances improvement opportunities :P on the code, and explored them.

With a bit less of load on the CPU side, perhaps the blinking became slightly "blinkier" perhaps?

 

On 10/11/2021 at 12:16 AM, Krazy1 said:

I had the game hang when trying to recover a ship after splashing down. I didn't see anything obvious in the logs and now I overwrote them-oops. I relaunched and then recovered it normally. I'm only mentioning it in case a trend develops... last thing I did was update this mod version. \o/

Humm... I will give this a try - you are running KSP1.12, right? (I need to ask, this thing run down to 1.4.5 at least! :D )

The only part of the code that could be involved on the mess is the VesselDraw, that needs to keep track of every living vessel in the viable zone (750 km on default). So I hooked into the GameEvents to be aware when a craft is destroyed and when it's changed. 

What you describes implies on a GameEvents frenzy, with a craft  being destroyed and many new ones (the surviving root part and attachments,  and the debris) being created. This would surely fire a MeshEngine creation fest if you aren using DrawVessel with anything other than Target Only...

But, yet, this was a use case I tested.... Perhaps I need to try a more robust test session.... let's see what happens...

— POST EDIT --

I ran a test. TL;DR: nothing obvious on DOE, it may be something else, perhaps being triggered by DOE...

136737704-2971fa2d-238d-4440-bd16-c968ac

136737865-d299748b-eab3-44e8-a098-6fe6cc

136737885-24ba715f-690e-4ae5-821c-863bf8

Note the debris!

---------------------

On 10/11/2021 at 12:16 AM, Krazy1 said:

For github issue 2, I also showed a pic of Jool showing through the sun. Not sure if you missed that or figured addressing the atmosphere would also fix that. 

The problem is that the atmosphere is drawn before all planets, not before its planet.

And the flares are drawn after the planets (for obvious reasons).

So a simple solution for this is out of question.

I'm cooking a stunt to kinda brute force my way into this problem: I will try setting the transparency of the flate as a function of how 'buried' it is on the atmosphere.

I would love to raycast my way out of the problem, but I doubt the atmosphere has a collider :D So I will need to  check the radial of the flare related to the camera,  check the radial of the atmosphere,  and check if they merged. 

Not sure how smart is this solution,  but it's what I managed to think about for now.

Edited by Lisias
I ran a test
Link to comment
Share on other sites

1 hour ago, Lisias said:

KSP1.12, right?

Yes. Thanks for testing!  Atmosphere... transparency... raycast... OK but I'm not sure if I got the idea to you :wink: There are 2 issues:

  1. Planets showing through the atmosphere (you're thinking about that)
  2. Planets show directly though the sun. Like this  Github issue #2 does not mention this.

I'm not sure if these would need different solutions. I think the sun has an atmosphere...? so same solution maybe? 

Link to comment
Share on other sites

9 minutes ago, Krazy1 said:

I'm not sure if these would need different solutions. I think the sun has an atmosphere...? so same solution maybe? 

Yep, it's (more or less) the same problem. There's no (apparent) difference form the code point of view between a planet's atmosphere and a star's heliosphere (and sunglare), it's essentially something being drawn before the body it belongs (or over it, as it appears to be the case of the Sun).

The atmosphere, for sure, it's not a sphere englobing the planet (as it is on real life), but a circle with a fancy paintjob being drawn before the planet is rendered over it (yeah, KSP is cheating!).

Link to comment
Share on other sites

Just FYI, I saw some errors in my log. I only looked because I was getting EXC spam on something else (ModuleDockingNode. I believe they're unrelated). This was during rendezvous and docking. 

KSP log

Spoiler
[LOG 13:49:42.619] Camera Mode: AUTO
[LOG 13:49:42.621] [ApplicationLauncher] SetVisible: 
[LOG 13:49:42.624] ScaleModList: listSize 533 maxListSize 529
[LOG 13:49:42.624] ScaleModList: listSize 492 maxListSize 497
[LOG 13:49:42.624] ScaleModList: listSize 533 maxListSize 529
[LOG 13:49:42.625] ScaleModList: listSize 574 maxListSize 497
[LOG 13:49:58.862] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.878] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.878] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.896] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.907] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.907] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.908] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.908] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.908] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.908] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.931] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.948] [DistantObject] ERROR: Tried to draw part ConformalStorageUnit within rendering distance of active vessel! at error:0
[LOG 13:49:58.948] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.948] [DistantObject] ERROR: Tried to draw part radialDrogue within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.949] [DistantObject] ERROR: Tried to draw part longAntenna within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part ConformalStorageUnit within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part radialDrogue within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.965] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part longAntenna within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part microEngine.v2 within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part ReleaseValve within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.966] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part ServiceBay.250.v2 within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part LargeTank within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part InflatableHeatShield within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part ConformalStorageUnit within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part radialDrogue within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.982] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part trussPiece1x within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part parachuteLarge within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part hinge.03.s within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part structuralWing3 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part structuralWing4 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part solarPanels5 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part longAntenna within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part microEngine.v2 within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part ReleaseValve within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part advSasModule within rendering distance of active vessel! at error:0
[LOG 13:49:58.983] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part batteryPack within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part probeStackSmall within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part miniFuelTank within rendering distance of active vessel! at error:0
[LOG 13:49:58.984] [DistantObject] ERROR: Tried to draw part dockingPortLarge within rendering distance of active vessel! at error:0
[LOG 13:49:59.093] [Rendezvous]: Now tracking Mun 2400 ore return vs. Minmus ISRU lander
[LOG 13:49:59.093] [Rendezvous]: Tracking Mun 2400 ore return vs. Minmus ISRU lander ended.
[LOG 13:49:59.229] [FlightIntegrator]: Reloaded drag cube for zeroed cube root part ServiceBay.250.v2 (Mun 2400 ore return) on vessel Mun 2400 ore return
[LOG 13:49:59.229] [FlightIntegrator]: Vessel Mun 2400 ore return has been unloaded 45775.3234253386, applying analytic temperature 219.902520607787
[LOG 13:50:08.325] Flight State Captured

 

 

Edited by Krazy1
hide log... didn't collapse
Link to comment
Share on other sites

5 hours ago, Krazy1 said:

Just FYI, I saw some errors in my log. I only looked because I was getting EXC spam on something else (ModuleDockingNode. I believe they're unrelated). This was during rendezvous and docking. 

KSP log

Interesting… At first, I though I had forgot to check the viable zone of the craft before drawing it, but I just confirmed on the source that I'm checking it, I'm checking against Vessel.load before attempt to draw it.

So my best guess to this point is that you found a borderline situation: the craft entered into Physics Range in the exact same moment DOE checked if it was loaded or not, and we got a race condition.

(hummmm)

Yeah, I think I need to put something on the FixedUpdated handler. One of the speed ups I made was to remove the mesh building phase from the FixedUpdate (as it was before), and besides this handler is called fewer times then Update, it is called from the hottest code on the Game, the Physics Engine. But now I realised that there was a reason for using the FixedUpdated.

I will need to rework a bit this thing - shoving everything on FixedUpdate is not an option, I will not put render time code on the Physics Engine loop.

In the mean time, you can ignore this. Other than spamming the KSP.log now and then, nothing serious happens as the drawing code aborts the execution on this situation.

https://github.com/net-lisias-ksp/DistantObject/issues/12

Edited by Lisias
Better phrasing
Link to comment
Share on other sites

NOTAM

KSP 1.3.x Informal Compatibility!!

By an incredible lucky strike, a small update on the KSPe.Light.DOE.dll ended up allowing DOE/L to run on KSP 1.3.1!!

Be warned that this is an INFORMAL compatibility. No troughful tests were made (yet), so try it at your own risk. :)

Download the KSPe.Light.DOE.zip file, unzip the dll and replace the old one in GameData/DistantObject/Plugins.

137058683-29d01018-d273-4657-883e-75e6a4

Available on GitHub only.

Link to comment
Share on other sites

Quick FYI, if I have "vessel rendering" on I get a lot of log spam about null objects.  Which isn't a big deal for me as I prefer to have it off anyway.  But what surprised me is that I was getting these errors, and lag, while in the editor and I couldn't understand why distant object would care or be running while I was in the editor.

 

Edited by darthgently
msg doubled for some reason, fixed, clarified
Link to comment
Share on other sites

On 10/18/2021 at 5:24 AM, darthgently said:

Quick FYI, if I have "vessel rendering" on I get a lot of log spam about null objects.  Which isn't a big deal for me as I prefer to have it off anyway.  But what surprised me is that I was getting these errors, and lag, while in the editor and I couldn't understand why distant object would care or be running while I was in the editor.

It should not…. Please send me your KSP.log so I can check where the bork is happening. I'm surely misconfigured some KSPAddOn attribute!

POST EDIT

Don't bother, I found it already. I completely missed that!

POST POST EDIT

There was another issue hidden on the thing: when you click on the "Apply" from the Settings Menu, a function called "Commit" is called to, well.. :) , commit the changes on the running Module so you don't have to switch scenes to get the setting applied.

But I forgot to check if the Module is meant to work on the current Scene on two use cases (I handled it correctly on a third, so I think I was interrupted by some R.L. issue and ending up thinking I had concluded the job after), so the after math was that VesselDraw was being activated no matter the current scene by that click.

This may also explain the problem detected by @Krazy1 - if VesselDraw is already active when entering the Flight Scene, there's a very good chance that a unloaded vessel ends being the current vessel without VesselDraw getting the chance to check it - ending up with the MeshEngine trying to draw the meshes over an active one (a mishap that the original programmer surely ended up doing otherwise he wouldn't had wrote the code - and now I'm pretty glad he did!).

Well, I'm finishing the tests and I think I will release the fix in the next couple hours. [ha… :P]

POST POST POST EDIT

This is extremely frustrating. :/ The latest ReStock, somehow, added something to the mess that is fooling DOE on think that some parts that should not be rendered, should be.

[LOG 17:35:35.348] [DistantObject] WARNING: Failed to load model Squad/Parts/Utility/launchClamp1/model for part launchClamp1 from vessel Tower Of Doom! Vessel will not be rendered as expected!

I will release what I have ready as it fixes some problems being reported, and I will let ReStock for another day - there's so much I can do at once on working days.

I probably will add a new "Engine' just for ReStock, and I will deliver the DLL stand alone for beta-testers. It's not fair to non ReStock users delaying the development cycle due ReStock...

Edited by Lisias
frustration. Also with my grammars.
Link to comment
Share on other sites

For the record, this is my favorite mod.  There are others that I really couldn't play without, and I could play without this one, but this one is the most aesthetically pleasing.  Even more the EVE.  I really like when I capture into Minmus orbit and I can see glints of dozens of other craft in orbit there; tankers, relays, and craft waiting to depart to other planets.  It really adds a lot to the game for the mere price of a few pixels on the screen.  And seeing the inner planets from the Jool system is pretty cool also

Link to comment
Share on other sites

ANNOUNCE

Release 2.1.1.6 is available for downloading, with the following changes:

  • Some brain-farts of mine on handling Scene switch were fixed
    • Thanks for the report, @darthgently!
    • And for the one from @Krazy1too! While fixing the previous, I detected what could be happening on this one and (hopefully) fixed it.
  • Testings down to KSP 1.3.1 suggests it works on these, but
    • "Development" was done on KSP 1.4.1 and 1.4.3, and then tested against 1.7.3 and 1.12.2 and no problems (others than my own ones) were found! #HURRAY!!
    • KSP 1.3.1 appears to work, but I didn't "certified" it yet. Try at your own risk :)
    • On the bottom line, the thing runs downto 1.3.1, but I'm not confident enough yet.

I essentially remade VesselDraw this time, as the previous coding style was becoming hard to "escalate" (how is the exactly term in EN-US?). This fixed a bunch of issues by itself, as they were originate by my attempt to prevent doing exactly that (if it's working, don't fix it! It only happened that it was not working as I needed, so now I fixed it).

think  it will work fine on KSP 1.3.1, I surely did some test runs on it. But not close from the scrutiny I'm doing on KSP 1.4x to 1.12.2 (1.4.3, 1.4.5, 1.7.3, 1.8.1 and 1..12.2 - as experience tells me that if the damned thing works on these ones, it almost surely with work on the others too! KSP 1.5.1 and 1.6.1 passed the smoke tests at least, I ran out of time to keep testing the Unity 2019 series, except by 1.12.2, of course). As I said before, it was by plain luck I didn't used anything not available (and working) on KSP 1.3.1, so we still may get strike by something. So I prefer to deferrer an official statement for the WeekEnd, when I will have time to play with the thing.

No screenshots this time, I'm in hurry. :P 

See OP for the links.

— — — — —

This Release will be published using the following Schedule:

The rationale is to gradually deploy the thing in order to cope with eventual mishaps before it reaches too much people.

Edited by Lisias
All distribution channels are up to date.
Link to comment
Share on other sites

15 hours ago, Lisias said:

 

I essentially remade VesselDraw this time, as the previous coding style was becoming hard to "escalate" (how is the exactly term in EN-US?). This fixed a some issues by itself, as they were originate by my attempt to prevent doing exactly that (if it's working, don't fix it! It only happened that it was not working as I needed, so now I fixed it).

Depends on what you mean. :) Maintain? Understand? Read? Refactor? 

Link to comment
Share on other sites

6 hours ago, Grimmas said:

Depends on what you mean. :) Maintain? Understand? Read? Refactor? 

In PT-BR, when we say "Essa ferramenta não escala…", we are meaning that the tool works on small jobs but as the load increases, the tool can't withhold the load under a vertical landscape neither allows being used on many appliances on a horizontal landscape.

When the tool does it fine (i.e., can withhold loads on vertical, and/or allow easy deployment on many appliances on an easy maintainable way, we say "A ferramenta escala bem!".

It's a concept that involves all what you said and a bit more.

 

1 hour ago, RyanRising said:

Expand, perhaps?

It's the near concept that came to my mind now. :)

 

Cheers!

Edited by Lisias
Better phrasing. Good thing I'm a programmer and not a novelist!!!
Link to comment
Share on other sites

4 hours ago, Grimmas said:

So it was actually about scalability :) The terms in English are "scale up" for vertical and "scale out" for horizontal. Though this is somewhat less programming talk and more distributed computing talk.

Yeah! Thanks! :)

About distributed computing… Believe me, game programming ends up using a lot of these concepts. We have a physics engine that conceptually (i.e., we pretend it does! :sticktongue:) works in parallel with the Game Modules (PartModules, VesselModules, etc), and all of that (also conceptually) works in parallel with the GPU.

Unity ends up squashing everything on a sequential process - but since there're some parallelism on the thing it worths the effort to pretend everything is parallel and code this way. 

If you manage to grab one of that older "Many Core" processor cards, there're some pretty interesting things to explore!

Link to comment
Share on other sites

On 10/21/2021 at 4:16 AM, Lisias said:

Yeah! Thanks! :)

About distributed computing… Believe me, game programming ends up using a lot of these concepts. We have a physics engine that conceptually (i.e., we pretend it does! :sticktongue:) works in parallel with the Game Modules (PartModules, VesselModules, etc), and all of that (also conceptually) works in parallel with the GPU.

Unity ends up squashing everything on a sequential process - but since there're some parallelism on the thing it worths the effort to pretend everything is parallel and code this way. 

If you manage to grab one of that older "Many Core" processor cards, there're some pretty interesting things to explore!

Given even the lastest consoles have multiple cores it is way overdue for games to make use of them.  A lot of KSP involves switching between craft, and then back again.  It would be great if the most recent flight scene were somehow kept alive on another core so that switching back would be nearly instantaneous, along with the Tracking Center being constantly alive on its own core.  Background Resource processing could also be running constantly.  I think the PS5 and next (or current?) XBox have  8 cores.  The limiting factor would likely be RAM

Edited by darthgently
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...