Jump to content

[1.1.2][1-1-2] May 13-2016 EnvironmentalVisualEnhancements


rbray89

Recommended Posts

rbray: I'm wondering if maybe the uncompressed ones are ones in KSP_Data? IIRC everything in GameData is loaded as DXT1 or 5.

Since the loader has no way of knowing what a texture is going to be used for, I doubt it would handle normal maps any differently than anything else; whereas all the textures in KSP_Data, well, Squad knows exactly what they'll be used for so they may be loaded "by hand" as it were rather than automatically.

Well, it might be worth checking if memory usage really does go down with mbm instead of tga--I know for KW they found it did quite a bit, but reports sometimes conflict. I wouldn't recommend PNG, as you're using huge textures for planets that will end up taking up only a dozen pixels by a dozen pixels, at times (far away/zoomed out in map view), which means the texel:pixel ratio is going to be mad high and you'll definitely want mipmaps.

Link to comment
Share on other sites

rbray: I'm wondering if maybe the uncompressed ones are ones in KSP_Data? IIRC everything in GameData is loaded as DXT1 or 5.

Since the loader has no way of knowing what a texture is going to be used for, I doubt it would handle normal maps any differently than anything else; whereas all the textures in KSP_Data, well, Squad knows exactly what they'll be used for so they may be loaded "by hand" as it were rather than automatically.

Well, it might be worth checking if memory usage really does go down with mbm instead of tga--I know for KW they found it did quite a bit, but reports sometimes conflict. I wouldn't recommend PNG, as you're using huge textures for planets that will end up taking up only a dozen pixels by a dozen pixels, at times (far away/zoomed out in map view), which means the texel:pixel ratio is going to be mad high and you'll definitely want mipmaps.

Quite possible. The reason I suggested that Normal maps might be different was due to the normal map flag that allows a texture to be properly converted to a normal map in the GameDatabase texture loading mechanism. I think that one possibility would be that it duplicates and then converts textures to do this. I think I have a few experiments to run later... :)

Link to comment
Share on other sites

Well, it might be worth checking if memory usage really does go down with mbm instead of tga--I know for KW they found it did quite a bit, but reports sometimes conflict. I wouldn't recommend PNG, as you're using huge textures for planets that will end up taking up only a dozen pixels by a dozen pixels, at times (far away/zoomed out in map view), which means the texel:pixel ratio is going to be mad high and you'll definitely want mipmaps.

I ran that experiment about a month and a half ago on 0.21 - http://forum.kerbalspaceprogram.com/entries/982-File-Format-Effects-on-Memory-Usage-in-KSP-%28experiment%29 - and MBM used less memory than TGA (and PNG was even higher, despite the lack of mipmaps). Some of that may have changed in 0.22. I haven't bothered retesting (too time consuming, too boring, and there's nothing I can do with that information since I can't change the source code).

Unrelated, but I've been playing with replacing the bump map with a different one and changing some of the bump map parameters. I think the effect is currently way too pronounced (it looks too much like snow on the ground to me), and the bump map texture shows what looks like JPEG quantification artifacts. I generated a bumpmap procedurally to see if I can get something I like better. If I get decent results, I'll post screen shots for comparison.

Link to comment
Share on other sites

I ran that experiment about a month and a half ago on 0.21 - http://forum.kerbalspaceprogram.com/entries/982-File-Format-Effects-on-Memory-Usage-in-KSP-%28experiment%29 - and MBM used less memory than TGA (and PNG was even higher, despite the lack of mipmaps). Some of that may have changed in 0.22. I haven't bothered retesting (too time consuming, too boring, and there's nothing I can do with that information since I can't change the source code).

Unrelated, but I've been playing with replacing the bump map with a different one and changing some of the bump map parameters. I think the effect is currently way too pronounced (it looks too much like snow on the ground to me), and the bump map texture shows what looks like JPEG quantification artifacts. I generated a bumpmap procedurally to see if I can get something I like better. If I get decent results, I'll post screen shots for comparison.

Interesting... I wouldn't have expected such a difference between TGA and MBM.

EDIT: Yeah, I noticed that too. I was thinking that it might help once the volumetric cloud cover is in. The detail distance can be tweaked to make the bump and detail textures show up only when closer to the cloud surface too.

Edited by rbray89
Link to comment
Share on other sites

found a bug with weird consequences, map looks like this:

jWZRoyf.png

World looks like this:

jTMjww3.png

caused by adding a test cloud round the launchpad... the world looks pretty awesome like that and it seemed to not have any negative hits on my pc

hmm... that usually happens if the scale or texture isn't populated fully when adding a new layer... I think I am going to have to add defaults so this doesn't happen.

Link to comment
Share on other sites

Interesting... I wouldn't have expected such a difference between TGA and MBM.

EDIT: Yeah, I noticed that too. I was thinking that it might help once the volumetric cloud cover is in. The detail distance can be tweaked to make the bump and detail textures show up only when closer to the cloud surface too.

I think NathanKell said that TGA loading had a leak, so that might be the problem there (leaking the whole image?).

Here's what I got right now for an alternative bump map:

q4n7.png

Same cloud formation, although not at the same angle, unfortunately. I changed the tiling to 90 x 45 instead of 90 x 90, under the assumption that the values indicate the number of times the texture is wrapped around a cylinder representing the sphere. 90x90 would effectively stretch the texture horizontally. The left one is the current bump map. If you zoom in by 2x or so, you can see a lattice effect in the clouds from JPEG quantization in the map. The right one is the map I generated today, post-processed by GIMP to de-tile it. I'm going to adjust some parameters to see if I can get something I like a little better.

Link to comment
Share on other sites

So with the latest version, clouds are no longer visible when flying over the terrain to me, and only appear when I get up high enough for the terrain to switch over to the terrain textures instead of the actual ground render. This is with the real-scale mod.

Link to comment
Share on other sites

I think NathanKell said that TGA loading had a leak, so that might be the problem there (leaking the whole image?).

Here's what I got right now for an alternative bump map:

q4n7.png

Same cloud formation, although not at the same angle, unfortunately. I changed the tiling to 90 x 45 instead of 90 x 90, under the assumption that the values indicate the number of times the texture is wrapped around a cylinder representing the sphere. 90x90 would effectively stretch the texture horizontally. The left one is the current bump map. If you zoom in by 2x or so, you can see a lattice effect in the clouds from JPEG quantization in the map. The right one is the map I generated today, post-processed by GIMP to de-tile it. I'm going to adjust some parameters to see if I can get something I like a little better.

I'll be quick to say that I very much like your bump map more. much more cloud like.

Link to comment
Share on other sites

So with the latest version, clouds are no longer visible when flying over the terrain to me, and only appear when I get up high enough for the terrain to switch over to the terrain textures instead of the actual ground render. This is with the real-scale mod.

The CommonConfig has to be modified to scale the body values with the Real-life mod. Had to create this config specially for that mod. I think a value of 10x should work (2000 for Kerbin)

Link to comment
Share on other sites

I'll be quick to say that I very much like your bump map more. much more cloud like.

Once I play with some of the parameters more, I'll send it to you, if you like. It's not too tough to generate a bump map like this one using Perlin noise and some slope computations, as it turns out.

Link to comment
Share on other sites

KSP/Unity does the following: For each file in GameData, if it's recognized as an image:

(a) generate mipmaps*

(B) if it has no alpha channel, compress as DXT1 and unload the original+

© if it has an alpha channel, compress as DXT5 and unload the original+

*PNG loading has a bug where no mipmaps are generated

+TGA loading has a slight leak, so apparently not everything used in conversion gets unloaded (compared to MBM).

So I just did a quick test, and it looks like none of the TGA files are converted to DTX5. They are all RGBA32. As are A LOT of squad textures.

[LOG 19:54:15.792] Utils: BoulderCo/CityLights/Textures/detail : True : RGBA32
[LOG 19:54:15.793] Utils: BoulderCo/CityLights/Textures/main : True : RGBA32
[LOG 19:54:15.794] Utils: BoulderCo/Clouds/Textures/bump1 : True : RGBA32
[LOG 19:54:15.795] Utils: BoulderCo/Clouds/Textures/detail1 : True : RGBA32
[LOG 19:54:15.795] Utils: BoulderCo/Clouds/Textures/detaileve1 : True : RGBA32
[LOG 19:54:15.796] Utils: BoulderCo/Clouds/Textures/duna1 : True : RGBA32
[LOG 19:54:15.797] Utils: BoulderCo/Clouds/Textures/eve1 : True : RGBA32
[LOG 19:54:15.797] Utils: BoulderCo/Clouds/Textures/jool1 : True : RGBA32
[LOG 19:54:15.798] Utils: BoulderCo/Clouds/Textures/joolLayers1 : True : RGBA32
[LOG 19:54:15.799] Utils: BoulderCo/Clouds/Textures/joolLayers2 : True : RGBA32
[LOG 19:54:15.799] Utils: BoulderCo/Clouds/Textures/kerbin1 : True : RGBA32
[LOG 19:54:15.800] Utils: BoulderCo/Clouds/Textures/kerbin2 : True : RGBA32
[LOG 19:54:15.801] Utils: BoulderCo/Clouds/Textures/particle : True : DXT5
[LOG 19:54:15.801] Utils: Kerbaltek/Flags/Kerbaltek-Aerospace : True : DXT5
[LOG 19:54:15.802] Utils: Kerbaltek/Flags/Kerbaltek-Rocket : True : DXT5
[LOG 19:54:15.803] Utils: Kerbaltek/Flags/Kerbaltek-Satellite : True : DXT5
[LOG 19:54:15.803] Utils: Kerbaltek/Flags/Kerbaltek-Spaceplane : True : DXT5
[LOG 19:54:15.804] Utils: Kerbaltek/Flags/Kerbaltek-Station : True : DXT5
[LOG 19:54:15.805] Utils: Squad/Flags/09 : True : DXT5
[LOG 19:54:15.805] Utils: Squad/Flags/blorbs : True : DXT5
[LOG 19:54:15.806] Utils: Squad/Flags/bullseye : True : DXT5
[LOG 19:54:15.807] Utils: Squad/Flags/capsule : True : DXT5
[LOG 19:54:15.807] Utils: Squad/Flags/circles : True : DXT5
[LOG 19:54:15.808] Utils: Squad/Flags/default : True : DXT5
[LOG 19:54:15.809] Utils: Squad/Flags/hexagon : True : DXT5
[LOG 19:54:15.809] Utils: Squad/Flags/hexagonCircles : True : DXT5
[LOG 19:54:15.810] Utils: Squad/Flags/kerbal1 : True : DXT5
[LOG 19:54:15.810] Utils: Squad/Flags/kerbal2 : True : DXT5
[LOG 19:54:15.811] Utils: Squad/Flags/kerbin : True : DXT5
[LOG 19:54:15.812] Utils: Squad/Flags/kerbinmunflag : True : DXT5
[LOG 19:54:15.812] Utils: Squad/Flags/line : True : DXT5
[LOG 19:54:15.813] Utils: Squad/Flags/minimalistic : True : DXT5
[LOG 19:54:15.814] Utils: Squad/Flags/orbit : True : DXT5
[LOG 19:54:15.814] Utils: Squad/Flags/orbs : True : DXT5
[LOG 19:54:15.815] Utils: Squad/Flags/retro : True : DXT5
[LOG 19:54:15.815] Utils: Squad/Flags/rings : True : DXT5
[LOG 19:54:15.816] Utils: Squad/Flags/rocketScience : True : DXT5
[LOG 19:54:15.817] Utils: Squad/Flags/satellite : True : DXT5
[LOG 19:54:15.817] Utils: Squad/Flags/spheres : True : DXT5
[LOG 19:54:15.818] Utils: Squad/Flags/squadLogo : True : DXT5
[LOG 19:54:15.819] Utils: Squad/Flags/squadLogo2 : True : DXT5
[LOG 19:54:15.819] Utils: Squad/Flags/stripes : True : DXT5
[LOG 19:54:15.820] Utils: Squad/Flags/trees : True : DXT5
[LOG 19:54:15.820] Utils: Squad/Flags/trippy : True : DXT5
[LOG 19:54:15.821] Utils: Squad/Parts/Aero/advancedCanard/model000 : True : DXT5
[LOG 19:54:15.822] Utils: Squad/Parts/Aero/advancedCanard/model001 : True : ARGB32
[LOG 19:54:15.822] Utils: Squad/Parts/Aero/Ailerons/model000 : True : DXT5
[LOG 19:54:15.823] Utils: Squad/Parts/Aero/Ailerons/model001 : True : ARGB32
[LOG 19:54:15.824] Utils: Squad/Parts/Aero/airplaneTail/model000 : True : DXT5
[LOG 19:54:15.824] Utils: Squad/Parts/Aero/airplaneTail/model001 : True : ARGB32
[LOG 19:54:15.825] Utils: Squad/Parts/Aero/CanardController/model000 : True : DXT5
[LOG 19:54:15.826] Utils: Squad/Parts/Aero/CanardController/model001 : True : ARGB32
[LOG 19:54:15.826] Utils: Squad/Parts/Aero/deltaWing/model000 : True : DXT5
[LOG 19:54:15.827] Utils: Squad/Parts/Aero/deltaWing/model001 : True : ARGB32
[LOG 19:54:15.828] Utils: Squad/Parts/Aero/NoseCone/model000 : True : DXT5
[LOG 19:54:15.828] Utils: Squad/Parts/Aero/noseConeAdapter/model000 : True : DXT5
[LOG 19:54:15.829] Utils: Squad/Parts/Aero/noseConeAdapter/model001 : True : ARGB32
[LOG 19:54:15.830] Utils: Squad/Parts/Aero/rocketNoseCone/model000 : True : DXT5
[LOG 19:54:15.830] Utils: Squad/Parts/Aero/smallCtrlSrf/model000 : True : DXT1
[LOG 19:54:15.831] Utils: Squad/Parts/Aero/standardNoseCone/model000 : True : DXT5
[LOG 19:54:15.832] Utils: Squad/Parts/Aero/standardNoseCone/model001 : True : ARGB32
[LOG 19:54:15.832] Utils: Squad/Parts/Aero/sweptWing/model000 : True : DXT5
[LOG 19:54:15.833] Utils: Squad/Parts/Aero/sweptWing/model001 : True : ARGB32
[LOG 19:54:15.834] Utils: Squad/Parts/Aero/sweptWing/model002 : True : DXT5
[LOG 19:54:15.834] Utils: Squad/Parts/Aero/tailfin/model000 : True : DXT5
[LOG 19:54:15.835] Utils: Squad/Parts/Aero/tailfin/model001 : True : ARGB32
[LOG 19:54:15.836] Utils: Squad/Parts/Aero/wingConnector/model000 : True : DXT5
[LOG 19:54:15.837] Utils: Squad/Parts/Aero/wingConnector/model001 : True : ARGB32
[LOG 19:54:15.837] Utils: Squad/Parts/Aero/winglet/model000 : True : DXT5
[LOG 19:54:15.838] Utils: Squad/Parts/Aero/winglet/model001 : True : ARGB32
[LOG 19:54:15.839] Utils: Squad/Parts/Aero/winglet2/model000 : True : RGB24
[LOG 19:54:15.839] Utils: Squad/Parts/Aero/winglet2/model001 : True : RGBA32
[LOG 19:54:15.840] Utils: Squad/Parts/Aero/winglet3/model000 : True : DXT1
[LOG 19:54:15.841] Utils: Squad/Parts/Command/advSasModule/model000 : True : DXT1
[LOG 19:54:15.841] Utils: Squad/Parts/Command/advSasModule/model001 : True : ARGB32
[LOG 19:54:15.842] Utils: Squad/Parts/Command/asasmodule1-2/model000 : True : DXT1
[LOG 19:54:15.843] Utils: Squad/Parts/Command/asasmodule1-2/model001 : True : ARGB32
[LOG 19:54:15.843] Utils: Squad/Parts/Command/avionicsNoseCone/model000 : True : DXT5
[LOG 19:54:15.844] Utils: Squad/Parts/Command/crewCabin/model000 : True : DXT5
[LOG 19:54:15.845] Utils: Squad/Parts/Command/crewCabin/model001 : True : ARGB32
[LOG 19:54:15.845] Utils: Squad/Parts/Command/cupola/model000 : True : DXT5
[LOG 19:54:15.846] Utils: Squad/Parts/Command/cupola/model001 : True : ARGB32
[LOG 19:54:15.847] Utils: Squad/Parts/Command/landerCabinSmall/model000 : True : DXT5
[LOG 19:54:15.847] Utils: Squad/Parts/Command/landerCabinSmall/model001 : True : ARGB32
[LOG 19:54:15.848] Utils: Squad/Parts/Command/Mark1Cockpit/model000 : True : DXT5
[LOG 19:54:15.849] Utils: Squad/Parts/Command/Mark1Cockpit/model001 : True : ARGB32
[LOG 19:54:15.849] Utils: Squad/Parts/Command/Mark2Cockpit/model000 : True : DXT5
[LOG 19:54:15.850] Utils: Squad/Parts/Command/Mark2Cockpit/model001 : True : ARGB32
[LOG 19:54:15.851] Utils: Squad/Parts/Command/Mark2Cockpit/model002 : True : DXT1
[LOG 19:54:15.851] Utils: Squad/Parts/Command/mark3Cockpit/model000 : True : DXT5
[LOG 19:54:15.852] Utils: Squad/Parts/Command/mark3Cockpit/model001 : True : ARGB32
[LOG 19:54:15.853] Utils: Squad/Parts/Command/mark3Cockpit/model002 : True : DXT1
[LOG 19:54:15.853] Utils: Squad/Parts/Command/Mk1-2Pod/model000 : True : DXT5
[LOG 19:54:15.854] Utils: Squad/Parts/Command/Mk1-2Pod/model001 : True : ARGB32
[LOG 19:54:15.855] Utils: Squad/Parts/Command/Mk1-2Pod/model002 : True : DXT1
[LOG 19:54:15.855] Utils: Squad/Parts/Command/mk1pod/model000 : True : DXT1
[LOG 19:54:15.856] Utils: Squad/Parts/Command/mk1pod/model001 : True : ARGB32
[LOG 19:54:15.857] Utils: Squad/Parts/Command/mk1pod/model002 : True : DXT1
[LOG 19:54:15.857] Utils: Squad/Parts/Command/mk1pod/model003 : True : DXT1
[LOG 19:54:15.858] Utils: Squad/Parts/Command/mk1pod/model004 : True : DXT1
[LOG 19:54:15.859] Utils: Squad/Parts/Command/mk2LanderCabin/ladder : True : DXT1
[LOG 19:54:15.859] Utils: Squad/Parts/Command/mk2LanderCabin/outershell : True : DXT5
[LOG 19:54:15.860] Utils: Squad/Parts/Command/mk2LanderCabin/outershell_n : True : ARGB32
[LOG 19:54:15.861] Utils: Squad/Parts/Command/probeCoreCube/model000 : True : DXT5
[LOG 19:54:15.862] Utils: Squad/Parts/Command/probeCoreCube/model001 : True : ARGB32
[LOG 19:54:15.862] Utils: Squad/Parts/Command/probeCoreHex/ksp_m_hexProbe_diff : True : DXT5
[LOG 19:54:15.863] Utils: Squad/Parts/Command/probeCoreHex/ksp_m_hexProbe_normal : True : ARGB32
[LOG 19:54:15.864] Utils: Squad/Parts/Command/probeCoreOcto/model000 : True : DXT5
[LOG 19:54:15.864] Utils: Squad/Parts/Command/probeCoreOcto/model001 : True : ARGB32
[LOG 19:54:15.865] Utils: Squad/Parts/Command/probeCoreOcto2/model000 : True : DXT1
[LOG 19:54:15.866] Utils: Squad/Parts/Command/probeCoreSphere/model000 : True : DXT5
[LOG 19:54:15.866] Utils: Squad/Parts/Command/probeCoreSphere/model001 : True : ARGB32
[LOG 19:54:15.867] Utils: Squad/Parts/Command/probeStackLarge/model000 : True : DXT5
[LOG 19:54:15.868] Utils: Squad/Parts/Command/probeStackLarge/model001 : True : ARGB32
[LOG 19:54:15.868] Utils: Squad/Parts/Command/probeStackSmall/model000 : True : DXT5
[LOG 19:54:15.869] Utils: Squad/Parts/Command/probeStackSmall/model001 : True : ARGB32
[LOG 19:54:15.870] Utils: Squad/Parts/Command/sasModule/model000 : True : DXT5
[LOG 19:54:15.870] Utils: Squad/Parts/Command/sasModule/model001 : True : ARGB32
[LOG 19:54:15.871] Utils: Squad/Parts/Command/sasModule/model002 : True : DXT5
[LOG 19:54:15.872] Utils: Squad/Parts/Command/seatExternalCmd/model000 : True : DXT5
[LOG 19:54:15.872] Utils: Squad/Parts/Electrical/batteryBank/model000 : True : DXT5
[LOG 19:54:15.873] Utils: Squad/Parts/Electrical/batteryBank/model001 : True : ARGB32
[LOG 19:54:15.874] Utils: Squad/Parts/Electrical/batteryBankLarge/ksp_l_batteryPack_diff : True : DXT5
[LOG 19:54:15.875] Utils: Squad/Parts/Electrical/batteryBankLarge/ksp_l_batteryPack_normal : True : ARGB32
[LOG 19:54:15.875] Utils: Squad/Parts/Electrical/batteryBankMini/ksp_m_batteryPack_diff : True : DXT5
[LOG 19:54:15.876] Utils: Squad/Parts/Electrical/batteryPack/model000 : True : DXT1
[LOG 19:54:15.877] Utils: Squad/Parts/Electrical/ksp_r_largeBatteryPack/model000 : True : DXT1
[LOG 19:54:15.877] Utils: Squad/Parts/Electrical/largeSolarPanel/model000 : True : DXT5
[LOG 19:54:15.878] Utils: Squad/Parts/Electrical/RTG/model000 : True : DXT1
[LOG 19:54:15.879] Utils: Squad/Parts/Electrical/solarPanels1/model000 : True : DXT1
[LOG 19:54:15.880] Utils: Squad/Parts/Electrical/solarPanels1/model001 : True : DXT5
[LOG 19:54:15.880] Utils: Squad/Parts/Electrical/solarPanels1/model002 : True : ARGB32
[LOG 19:54:15.881] Utils: Squad/Parts/Electrical/solarPanels2/model000 : True : DXT1
[LOG 19:54:15.882] Utils: Squad/Parts/Electrical/solarPanels2/model001 : True : DXT5
[LOG 19:54:15.882] Utils: Squad/Parts/Electrical/solarPanels2/model002 : True : ARGB32
[LOG 19:54:15.883] Utils: Squad/Parts/Electrical/solarPanels3/model000 : True : DXT5
[LOG 19:54:15.884] Utils: Squad/Parts/Electrical/solarPanels3/model001 : True : DXT5
[LOG 19:54:15.884] Utils: Squad/Parts/Electrical/solarPanels3/model002 : True : ARGB32
[LOG 19:54:15.885] Utils: Squad/Parts/Electrical/solarPanels4/model000 : True : DXT5
[LOG 19:54:15.886] Utils: Squad/Parts/Electrical/solarPanels4/model001 : True : DXT5
[LOG 19:54:15.886] Utils: Squad/Parts/Electrical/solarPanels4/model002 : True : ARGB32
[LOG 19:54:15.887] Utils: Squad/Parts/Electrical/solarPanels5/model000 : True : DXT5
[LOG 19:54:15.888] Utils: Squad/Parts/Engine/engineLargeSkipper/ksp_l_midrangeEngine_diff : True : DXT5
[LOG 19:54:15.888] Utils: Squad/Parts/Engine/engineLargeSkipper/ksp_l_midrangeEngine_emissive : True : DXT5
[LOG 19:54:15.889] Utils: Squad/Parts/Engine/engineLargeSkipper/ksp_l_midrangeEngine_fairing_diff : True : DXT1
[LOG 19:54:15.890] Utils: Squad/Parts/Engine/engineLargeSkipper/ksp_l_midrangeEngine_fairing_norm : True : ARGB32
[LOG 19:54:15.891] Utils: Squad/Parts/Engine/engineLargeSkipper/ksp_l_midrangeEngine_normal : True : ARGB32
[LOG 19:54:15.892] Utils: Squad/Parts/Engine/ionEngine/model000 : True : DXT1
[LOG 19:54:15.892] Utils: Squad/Parts/Engine/JetEngine/model000 : True : DXT5
[LOG 19:54:15.893] Utils: Squad/Parts/Engine/JetEngine/model001 : True : DXT1
[LOG 19:54:15.894] Utils: Squad/Parts/Engine/liquidEngine1/model000 : True : DXT1
[LOG 19:54:15.894] Utils: Squad/Parts/Engine/liquidEngine1/model001 : True : DXT5
[LOG 19:54:15.895] Utils: Squad/Parts/Engine/liquidEngine1/model002 : True : DXT5
[LOG 19:54:15.896] Utils: Squad/Parts/Engine/liquidEngine1/model003 : True : ARGB32
[LOG 19:54:15.897] Utils: Squad/Parts/Engine/liquidEngine1/model004 : True : DXT5
[LOG 19:54:15.897] Utils: Squad/Parts/Engine/liquidEngine1-2/model000 : True : DXT1
[LOG 19:54:15.898] Utils: Squad/Parts/Engine/liquidEngine1-2/model001 : True : ARGB32
[LOG 19:54:15.899] Utils: Squad/Parts/Engine/liquidEngine1-2/model002 : True : DXT1
[LOG 19:54:15.899] Utils: Squad/Parts/Engine/liquidEngine1-2/model003 : True : ARGB32
[LOG 19:54:15.900] Utils: Squad/Parts/Engine/liquidEngine1-2/model004 : True : DXT1
[LOG 19:54:15.901] Utils: Squad/Parts/Engine/liquidEngine2/model000 : True : DXT5
[LOG 19:54:15.901] Utils: Squad/Parts/Engine/liquidEngine2/model001 : True : DXT5
[LOG 19:54:15.902] Utils: Squad/Parts/Engine/liquidEngine2/model002 : True : DXT1
[LOG 19:54:15.903] Utils: Squad/Parts/Engine/liquidEngine2/model003 : True : ARGB32
[LOG 19:54:15.903] Utils: Squad/Parts/Engine/liquidEngine2-2/model000 : True : DXT1
[LOG 19:54:15.904] Utils: Squad/Parts/Engine/liquidEngine2-2/model001 : True : DXT1
[LOG 19:54:15.905] Utils: Squad/Parts/Engine/liquidEngine2-2/model002 : True : ARGB32
[LOG 19:54:15.905] Utils: Squad/Parts/Engine/liquidEngine2-2/model003 : True : DXT1
[LOG 19:54:15.906] Utils: Squad/Parts/Engine/liquidEngine3/bigfairing : True : DXT1
[LOG 19:54:15.907] Utils: Squad/Parts/Engine/liquidEngine3/engine3 : True : DXT5
[LOG 19:54:15.907] Utils: Squad/Parts/Engine/liquidEngine3/engine3_emissive : True : DXT1
[LOG 19:54:15.908] Utils: Squad/Parts/Engine/liquidEngine3/engine3_n : True : ARGB32
[LOG 19:54:15.909] Utils: Squad/Parts/Engine/liquidEngineMini/ksp_m_liquidEngine_diff : True : DXT5
[LOG 19:54:15.910] Utils: Squad/Parts/Engine/liquidEngineMini/ksp_m_liquidEngine_norm : True : ARGB32
[LOG 19:54:15.910] Utils: Squad/Parts/Engine/liquidEngineMini/ksp_m_liquidFuelEngine_fairing_norm : True : ARGB32
[LOG 19:54:15.911] Utils: Squad/Parts/Engine/liquidEngineMini/ksp_m_liquidFuelEngine_fairing_psd : True : DXT1
[LOG 19:54:15.912] Utils: Squad/Parts/Engine/microEngine/model000 : True : DXT5
[LOG 19:54:15.913] Utils: Squad/Parts/Engine/microEngine/model001 : True : DXT1
[LOG 19:54:15.913] Utils: Squad/Parts/Engine/nuclearEngine/model000 : True : DXT5
[LOG 19:54:15.914] Utils: Squad/Parts/Engine/nuclearEngine/model001 : True : ARGB32
[LOG 19:54:15.915] Utils: Squad/Parts/Engine/nuclearEngine/model002 : True : DXT1
[LOG 19:54:15.915] Utils: Squad/Parts/Engine/nuclearEngine/model003 : True : DXT1
[LOG 19:54:15.916] Utils: Squad/Parts/Engine/radialEngineMini/ksp_r_microEngine_diff : True : DXT1
[LOG 19:54:15.917] Utils: Squad/Parts/Engine/radialLiquidEngine1-2/model000 : True : DXT1
[LOG 19:54:15.917] Utils: Squad/Parts/Engine/sepMotor1/model000 : True : DXT1
[LOG 19:54:15.918] Utils: Squad/Parts/Engine/smallRadialEngine/model000 : True : DXT1
[LOG 19:54:15.919] Utils: Squad/Parts/Engine/solidBooster/model000 : True : DXT5
[LOG 19:54:15.920] Utils: Squad/Parts/Engine/solidBooster/model001 : True : ARGB32
[LOG 19:54:15.920] Utils: Squad/Parts/Engine/solidBooster/model002 : True : DXT5
[LOG 19:54:15.921] Utils: Squad/Parts/Engine/solidBooster1-1/model000 : True : DXT1
[LOG 19:54:15.922] Utils: Squad/Parts/Engine/solidBooster1-1/model001 : True : ARGB32
[LOG 19:54:15.922] Utils: Squad/Parts/Engine/solidBooster1-1/model002 : True : DXT1
[LOG 19:54:15.923] Utils: Squad/Parts/Engine/toroidalAerospike/model000 : True : DXT5
[LOG 19:54:15.924] Utils: Squad/Parts/Engine/toroidalAerospike/model001 : True : ARGB32
[LOG 19:54:15.924] Utils: Squad/Parts/Engine/toroidalAerospike/model002 : True : DXT5
[LOG 19:54:15.925] Utils: Squad/Parts/Engine/turboFanEngine/model000 : True : DXT5
[LOG 19:54:15.926] Utils: Squad/Parts/Engine/turboFanEngine/model001 : True : DXT1
[LOG 19:54:15.926] Utils: Squad/Parts/FuelTank/fuelTank/model000 : True : DXT1
[LOG 19:54:15.927] Utils: Squad/Parts/FuelTank/fuelTank/model001 : True : ARGB32
[LOG 19:54:15.928] Utils: Squad/Parts/FuelTank/fuelTank1-2/model000 : True : DXT5
[LOG 19:54:15.928] Utils: Squad/Parts/FuelTank/fuelTank1-2/model001 : True : ARGB32
[LOG 19:54:15.929] Utils: Squad/Parts/FuelTank/fuelTank2-2/model000 : True : DXT5
[LOG 19:54:15.930] Utils: Squad/Parts/FuelTank/fuelTank2-2/model001 : True : ARGB32
[LOG 19:54:15.930] Utils: Squad/Parts/FuelTank/fuelTank3-2/model000 : True : DXT5
[LOG 19:54:15.931] Utils: Squad/Parts/FuelTank/fuelTank3-2/model001 : True : ARGB32
[LOG 19:54:15.932] Utils: Squad/Parts/FuelTank/fuelTank4-2/model000 : True : DXT5
[LOG 19:54:15.932] Utils: Squad/Parts/FuelTank/fuelTank4-2/model001 : True : ARGB32
[LOG 19:54:15.933] Utils: Squad/Parts/FuelTank/fuelTankSmall/tank3 : True : DXT1
[LOG 19:54:15.934] Utils: Squad/Parts/FuelTank/fuelTankSmall/tank3_n : True : ARGB32
[LOG 19:54:15.934] Utils: Squad/Parts/FuelTank/fuelTankSmallFlat/tank4 : True : DXT1
[LOG 19:54:15.935] Utils: Squad/Parts/FuelTank/fuelTank_long/model000 : True : DXT1
[LOG 19:54:15.936] Utils: Squad/Parts/FuelTank/fuelTank_long/model001 : True : ARGB32
[LOG 19:54:15.936] Utils: Squad/Parts/FuelTank/miniFuelTank/model000 : True : DXT1
[LOG 19:54:15.937] Utils: Squad/Parts/FuelTank/miniFuelTank/model001 : True : ARGB32
[LOG 19:54:15.938] Utils: Squad/Parts/FuelTank/MK1Fuselage/model000 : True : DXT5
[LOG 19:54:15.939] Utils: Squad/Parts/FuelTank/MK1Fuselage/model001 : True : ARGB32
[LOG 19:54:15.939] Utils: Squad/Parts/FuelTank/MK1FuselageStructural/model000 : True : DXT5
[LOG 19:54:15.940] Utils: Squad/Parts/FuelTank/MK1FuselageStructural/model001 : True : ARGB32
[LOG 19:54:15.941] Utils: Squad/Parts/FuelTank/mk2Fuselage/model000 : True : DXT1
[LOG 19:54:15.941] Utils: Squad/Parts/FuelTank/mk2Fuselage/model001 : True : ARGB32
[LOG 19:54:15.942] Utils: Squad/Parts/FuelTank/mk2SpacePlaneAdapter/model000 : True : DXT5
[LOG 19:54:15.943] Utils: Squad/Parts/FuelTank/mk2SpacePlaneAdapter/model001 : True : ARGB32
[LOG 19:54:15.943] Utils: Squad/Parts/FuelTank/mk3Fuselage/model000 : True : DXT5
[LOG 19:54:15.944] Utils: Squad/Parts/FuelTank/mk3Fuselage/model001 : True : ARGB32
[LOG 19:54:15.945] Utils: Squad/Parts/FuelTank/mk3spacePlaneAdapter/model000 : True : DXT5
[LOG 19:54:15.946] Utils: Squad/Parts/FuelTank/mk3spacePlaneAdapter/model001 : True : ARGB32
[LOG 19:54:15.946] Utils: Squad/Parts/FuelTank/radialRCSTank/model000 : True : DXT5
[LOG 19:54:15.947] Utils: Squad/Parts/FuelTank/RCSFuelTank/model000 : True : DXT1
[LOG 19:54:15.948] Utils: Squad/Parts/FuelTank/RCSFuelTank/model001 : True : ARGB32
[LOG 19:54:15.948] Utils: Squad/Parts/FuelTank/RCSTank1-2/model000 : True : RGB24
[LOG 19:54:15.949] Utils: Squad/Parts/FuelTank/RCSTank1-2/model001 : True : RGBA32
[LOG 19:54:15.950] Utils: Squad/Parts/FuelTank/RCStankMini/ksp_m_rcsTank_diff : True : DXT5
[LOG 19:54:15.951] Utils: Squad/Parts/FuelTank/RCStankMini/ksp_m_rcsTank_normal : True : ARGB32
[LOG 19:54:15.951] Utils: Squad/Parts/FuelTank/RCStankRadialLong/ksp_r_rcsCylTank_diff : True : DXT5
[LOG 19:54:15.952] Utils: Squad/Parts/FuelTank/toroidalFuelTank/model000 : True : DXT5
[LOG 19:54:15.953] Utils: Squad/Parts/FuelTank/toroidalFuelTank/model001 : True : ARGB32
[LOG 19:54:15.953] Utils: Squad/Parts/FuelTank/xenonTank/model000 : True : DXT5
[LOG 19:54:15.954] Utils: Squad/Parts/FuelTank/xenonTank/model001 : True : ARGB32
[LOG 19:54:15.955] Utils: Squad/Parts/FuelTank/xenonTankRadial/ksp_r_xenonTank_diff : True : DXT5
[LOG 19:54:15.955] Utils: Squad/Parts/Science/GooExperiment/A_GooExperiment_diff : True : DXT5
[LOG 19:54:15.956] Utils: Squad/Parts/Science/MaterialBay/science_module_small : True : DXT5
[LOG 19:54:15.957] Utils: Squad/Parts/Science/MaterialBay/science_module_small_emit : True : DXT5
[LOG 19:54:15.958] Utils: Squad/Parts/Science/MaterialBay/science_module_small_nrm : True : ARGB32
[LOG 19:54:15.958] Utils: Squad/Parts/Science/MaterialBay/wires : True : DXT5
[LOG 19:54:15.959] Utils: Squad/Parts/Structural/adapterLargeSmallBi/ksp_l_biAdapter_diff : True : DXT1
[LOG 19:54:15.960] Utils: Squad/Parts/Structural/adapterLargeSmallQuad/ksp_l_quadAdapter_diff : True : DXT1
[LOG 19:54:15.961] Utils: Squad/Parts/Structural/adapterLargeSmallTri/ksp_l_triAdapter_diff : True : DXT1
[LOG 19:54:15.961] Utils: Squad/Parts/Structural/adapterSmallMiniShort/ksp_s_adapterShort_diff : True : DXT1
[LOG 19:54:15.964] Utils: Squad/Parts/Structural/adapterSmallMiniTall/ksp_s_adapterLong_diff : True : DXT1
[LOG 19:54:15.965] Utils: Squad/Parts/Structural/nacelleBody/model000 : True : DXT5
[LOG 19:54:15.965] Utils: Squad/Parts/Structural/nacelleBody/model001 : True : ARGB32
[LOG 19:54:15.966] Utils: Squad/Parts/Structural/radialEngineBody/model000 : True : DXT5
[LOG 19:54:15.967] Utils: Squad/Parts/Structural/radialEngineBody/model001 : True : ARGB32
[LOG 19:54:15.968] Utils: Squad/Parts/Structural/smallHardpoint/model000 : True : DXT5
[LOG 19:54:15.968] Utils: Squad/Parts/Structural/smallHardpoint/model001 : True : ARGB32
[LOG 19:54:15.969] Utils: Squad/Parts/Structural/stationHub/model000 : True : DXT5
[LOG 19:54:15.970] Utils: Squad/Parts/Structural/stationHub/model001 : True : ARGB32
[LOG 19:54:15.971] Utils: Squad/Parts/Structural/structuralIBeam1/model000 : True : DXT5
[LOG 19:54:15.971] Utils: Squad/Parts/Structural/structuralIBeam2/model000 : True : DXT5
[LOG 19:54:15.972] Utils: Squad/Parts/Structural/structuralIBeam3/model000 : True : DXT5
[LOG 19:54:15.973] Utils: Squad/Parts/Structural/structuralMiniNode/model000 : True : DXT5
[LOG 19:54:15.974] Utils: Squad/Parts/Structural/structuralPanel1/model000 : True : DXT5
[LOG 19:54:15.974] Utils: Squad/Parts/Structural/structuralPanel1/model001 : True : ARGB32
[LOG 19:54:15.975] Utils: Squad/Parts/Structural/structuralPanel2/model000 : True : DXT5
[LOG 19:54:15.976] Utils: Squad/Parts/Structural/structuralPanel2/model001 : True : ARGB32
[LOG 19:54:15.977] Utils: Squad/Parts/Structural/structuralPylon/model000 : True : DXT5
[LOG 19:54:15.977] Utils: Squad/Parts/Structural/structuralPylon/model001 : True : ARGB32
[LOG 19:54:15.978] Utils: Squad/Parts/Structural/structuralWing/model000 : True : DXT5
[LOG 19:54:15.979] Utils: Squad/Parts/Structural/structuralWing/model001 : True : ARGB32
[LOG 19:54:15.980] Utils: Squad/Parts/Structural/strutConnector/model000 : True : DXT1
[LOG 19:54:15.980] Utils: Squad/Parts/Structural/strutCube/model000 : True : DXT1
[LOG 19:54:15.981] Utils: Squad/Parts/Structural/strutOcto/model000 : True : DXT1
[LOG 19:54:15.982] Utils: Squad/Parts/Structural/trussAdapter/model000 : True : DXT1
[LOG 19:54:15.982] Utils: Squad/Parts/Structural/trussAdapter/model001 : True : DXT1
[LOG 19:54:15.983] Utils: Squad/Parts/Structural/trussPiece1x/model000 : True : DXT1
[LOG 19:54:15.984] Utils: Squad/Parts/Structural/trussPiece3x/model000 : True : DXT1
[LOG 19:54:15.984] Utils: Squad/Parts/Utility/airScoop/model000 : True : DXT5
[LOG 19:54:15.985] Utils: Squad/Parts/Utility/CircularIntake/model000 : True : DXT5
[LOG 19:54:15.986] Utils: Squad/Parts/Utility/CircularIntake/model001 : True : ARGB32
[LOG 19:54:15.986] Utils: Squad/Parts/Utility/commDish/comm_dish_array : True : DXT5
[LOG 19:54:15.987] Utils: Squad/Parts/Utility/commDish/comm_dish_v2_diff : True : DXT5
[LOG 19:54:15.988] Utils: Squad/Parts/Utility/commDish/model000 : True : DXT5
[LOG 19:54:15.988] Utils: Squad/Parts/Utility/decoupler1-2/model000 : True : DXT1
[LOG 19:54:15.989] Utils: Squad/Parts/Utility/decoupler1-2/model001 : True : ARGB32
[LOG 19:54:15.990] Utils: Squad/Parts/Utility/dockingPort1/model000 : True : DXT5
[LOG 19:54:15.990] Utils: Squad/Parts/Utility/dockingPort1/model001 : True : DXT5
[LOG 19:54:15.991] Utils: Squad/Parts/Utility/dockingPort1/model002 : True : ARGB32
[LOG 19:54:15.992] Utils: Squad/Parts/Utility/dockingPort2/model000 : True : DXT5
[LOG 19:54:15.992] Utils: Squad/Parts/Utility/dockingPort2/model001 : True : DXT1
[LOG 19:54:15.993] Utils: Squad/Parts/Utility/dockingPort3/model000 : True : DXT1
[LOG 19:54:15.994] Utils: Squad/Parts/Utility/dockingPort3/model001 : True : DXT1
[LOG 19:54:15.994] Utils: Squad/Parts/Utility/dockingPortLarge/model000 : True : DXT5
[LOG 19:54:15.995] Utils: Squad/Parts/Utility/dockingPortLarge/model001 : True : ARGB32
[LOG 19:54:15.996] Utils: Squad/Parts/Utility/dockingPortLateral/model000 : True : DXT5
[LOG 19:54:15.996] Utils: Squad/Parts/Utility/dockingPortLateral/model001 : True : ARGB32
[LOG 19:54:15.997] Utils: Squad/Parts/Utility/dockingPortLateral/model002 : True : DXT5
[LOG 19:54:15.998] Utils: Squad/Parts/Utility/fuelLine/model000 : True : DXT5
[LOG 19:54:15.999] Utils: Squad/Parts/Utility/ladder1/model000 : True : DXT1
[LOG 19:54:15.999] Utils: Squad/Parts/Utility/LandingLeg/ksp_r_landingStrut_diff : True : DXT5
[LOG 19:54:16.000] Utils: Squad/Parts/Utility/LandingLeg1-2/landingLeg : True : DXT1
[LOG 19:54:16.001] Utils: Squad/Parts/Utility/largeAdapter/model000 : True : DXT1
[LOG 19:54:16.001] Utils: Squad/Parts/Utility/largeAdapter2/model000 : True : DXT1
[LOG 19:54:16.002] Utils: Squad/Parts/Utility/launchClamp1/model000 : True : DXT1
[LOG 19:54:16.003] Utils: Squad/Parts/Utility/launchClamp1/model001 : True : DXT5
[LOG 19:54:16.003] Utils: Squad/Parts/Utility/linearRCS/model000 : True : DXT5
[LOG 19:54:16.004] Utils: Squad/Parts/Utility/linearRCS/model001 : True : ARGB32
[LOG 19:54:16.005] Utils: Squad/Parts/Utility/longAntenna/model000 : True : DXT1
[LOG 19:54:16.005] Utils: Squad/Parts/Utility/mediumDishAntenna/mediumDishAntenna : True : DXT5
[LOG 19:54:16.006] Utils: Squad/Parts/Utility/mediumDishAntenna/mediumDishAntenna_Emit : True : DXT1
[LOG 19:54:16.007] Utils: Squad/Parts/Utility/miniLandingLeg/leg : True : DXT1
[LOG 19:54:16.008] Utils: Squad/Parts/Utility/miniLandingLeg/model000 : True : DXT1
[LOG 19:54:16.008] Utils: Squad/Parts/Utility/parachuteDrogue/model000 : True : DXT1
[LOG 19:54:16.009] Utils: Squad/Parts/Utility/parachuteDrogue/model001 : True : DXT1
[LOG 19:54:16.010] Utils: Squad/Parts/Utility/parachuteLarge/model000 : True : DXT1
[LOG 19:54:16.011] Utils: Squad/Parts/Utility/parachuteLarge/model001 : True : DXT1
[LOG 19:54:16.011] Utils: Squad/Parts/Utility/parachuteRadial/model000 : True : DXT1
[LOG 19:54:16.012] Utils: Squad/Parts/Utility/parachuteRadial/model001 : True : DXT1
[LOG 19:54:16.013] Utils: Squad/Parts/Utility/parachute_single/model000 : True : DXT5
[LOG 19:54:16.013] Utils: Squad/Parts/Utility/parachute_single/model001 : True : ARGB32
[LOG 19:54:16.014] Utils: Squad/Parts/Utility/radialDecoupler/model000 : True : DXT1
[LOG 19:54:16.015] Utils: Squad/Parts/Utility/radialDecoupler/model001 : True : ARGB32
[LOG 19:54:16.015] Utils: Squad/Parts/Utility/radialDecoupler1-2/model000 : True : DXT1
[LOG 19:54:16.016] Utils: Squad/Parts/Utility/radialDecoupler2/model000 : True : DXT1
[LOG 19:54:16.017] Utils: Squad/Parts/Utility/ramAirIntake/model000 : True : DXT5
[LOG 19:54:16.017] Utils: Squad/Parts/Utility/ramAirIntake/model001 : True : ARGB32
[LOG 19:54:16.018] Utils: Squad/Parts/Utility/ramAirIntake/model002 : True : DXT5
[LOG 19:54:16.019] Utils: Squad/Parts/Utility/RCS block/model000 : True : DXT1
[LOG 19:54:16.019] Utils: Squad/Parts/Utility/roverBody/model000 : True : DXT1
[LOG 19:54:16.020] Utils: Squad/Parts/Utility/roverBody/model001 : True : ARGB32
[LOG 19:54:16.021] Utils: Squad/Parts/Utility/sensorAccelerometer/model000 : True : DXT1
[LOG 19:54:16.022] Utils: Squad/Parts/Utility/sensorBarometer/model000 : True : DXT1
[LOG 19:54:16.022] Utils: Squad/Parts/Utility/sensorGravimeter/model000 : True : DXT1
[LOG 19:54:16.023] Utils: Squad/Parts/Utility/sensorThermometer/model000 : True : DXT1
[LOG 19:54:16.024] Utils: Squad/Parts/Utility/spotLight1/model000 : True : DXT5
[LOG 19:54:16.024] Utils: Squad/Parts/Utility/spotLight1/model001 : True : DXT1
[LOG 19:54:16.025] Utils: Squad/Parts/Utility/spotLight2/model000 : True : DXT1
[LOG 19:54:16.026] Utils: Squad/Parts/Utility/spotLight2/model001 : True : DXT5
[LOG 19:54:16.026] Utils: Squad/Parts/Utility/stackBiCoupler/model000 : True : DXT1
[LOG 19:54:16.027] Utils: Squad/Parts/Utility/StackDecoupler/model000 : True : DXT5
[LOG 19:54:16.028] Utils: Squad/Parts/Utility/StackDecoupler/model001 : True : ARGB32
[LOG 19:54:16.028] Utils: Squad/Parts/Utility/stackDecouplerMini/model000 : True : DXT1
[LOG 19:54:16.029] Utils: Squad/Parts/Utility/stackPoint1/model000 : True : DXT1
[LOG 19:54:16.030] Utils: Squad/Parts/Utility/stackPoint1/model001 : True : DXT1
[LOG 19:54:16.031] Utils: Squad/Parts/Utility/stackQuadCoupler/ksp_s_quadCoupler_diff : True : DXT1
[LOG 19:54:16.031] Utils: Squad/Parts/Utility/stackSeparator/model000 : True : DXT5
[LOG 19:54:16.032] Utils: Squad/Parts/Utility/stackSeparator/model001 : True : ARGB32
[LOG 19:54:16.033] Utils: Squad/Parts/Utility/stackSeparatorBig/model000 : True : DXT1
[LOG 19:54:16.033] Utils: Squad/Parts/Utility/stackSeparatorMini/model000 : True : DXT1
[LOG 19:54:16.034] Utils: Squad/Parts/Utility/stackTriCoupler/model000 : True : DXT1
[LOG 19:54:16.035] Utils: Squad/Parts/Utility/telescopicLadder/model000 : True : DXT1
[LOG 19:54:16.036] Utils: Squad/Parts/Utility/telescopicLadder/model001 : True : ARGB32
[LOG 19:54:16.036] Utils: Squad/Parts/Utility/telescopicLadder/model002 : True : DXT1
[LOG 19:54:16.037] Utils: Squad/Parts/Utility/telescopicLadderBay/model000 : True : DXT5
[LOG 19:54:16.038] Utils: Squad/Parts/Utility/telescopicLadderBay/model001 : True : DXT5
[LOG 19:54:16.038] Utils: Squad/Parts/Wheel/roverWheel1/model000 : True : DXT1
[LOG 19:54:16.039] Utils: Squad/Parts/Wheel/roverWheel2/model000 : True : DXT5
[LOG 19:54:16.040] Utils: Squad/Parts/Wheel/roverWheel2/model001 : True : ARGB32
[LOG 19:54:16.040] Utils: Squad/Parts/Wheel/roverWheel3/model000 : True : DXT5
[LOG 19:54:16.041] Utils: Squad/Parts/Wheel/roverWheel3/model001 : True : ARGB32
[LOG 19:54:16.042] Utils: Squad/Parts/Wheel/roverWheel3/model002 : True : DXT1
[LOG 19:54:16.042] Utils: Squad/Parts/Wheel/roverWheel3/model003 : True : ARGB32
[LOG 19:54:16.043] Utils: Squad/Parts/Wheel/SmallGearBay/model000 : True : RGBA32
[LOG 19:54:16.044] Utils: Squad/Parts/Wheel/SmallGearBay/model001 : True : RGB24
[LOG 19:54:16.044] Utils: Squad/Parts/Wheel/SmallGearBay/model002 : True : RGBA32
[LOG 19:54:16.045] Utils: Squad/Parts/Wheel/wheelMed/model000 : True : DXT5
[LOG 19:54:16.046] Utils: Squad/Parts/Wheel/wheelMed/model001 : True : ARGB32
[LOG 19:54:16.046] Utils: Squad/Parts/Wheel/wheelMed/model002 : True : DXT5
[LOG 19:54:16.047] Utils: Squad/Parts/Wheel/wheelMed/model003 : True : ARGB32
[LOG 19:54:16.048] Utils: Squad/Props/AltimeterThreeHands/model000 : True : DXT5
[LOG 19:54:16.048] Utils: Squad/Props/AltimeterThreeHands/model001 : True : ARGB32
[LOG 19:54:16.049] Utils: Squad/Props/AtmosphereDepth/model000 : True : DXT5
[LOG 19:54:16.050] Utils: Squad/Props/AtmosphereDepth/model001 : True : DXT5
[LOG 19:54:16.050] Utils: Squad/Props/AxisIndicator/model000 : True : DXT5
[LOG 19:54:16.051] Utils: Squad/Props/ButtonSquare/model000 : True : DXT1
[LOG 19:54:16.052] Utils: Squad/Props/circularButton/model000 : True : DXT1
[LOG 19:54:16.052] Utils: Squad/Props/Compass/model000 : True : DXT5
[LOG 19:54:16.053] Utils: Squad/Props/directionalKnob/model000 : True : DXT1
[LOG 19:54:16.054] Utils: Squad/Props/directionalKnob2/model000 : True : DXT1
[LOG 19:54:16.054] Utils: Squad/Props/IndicatorPanel/model000 : True : DXT1
[LOG 19:54:16.055] Utils: Squad/Props/IndicatorPanel/model001 : True : DXT1
[LOG 19:54:16.056] Utils: Squad/Props/ledPanelSpeed/model000 : True : DXT1
[LOG 19:54:16.056] Utils: Squad/Props/ledPanelSpeed/model001 : True : DXT1
[LOG 19:54:16.057] Utils: Squad/Props/NavBall/model000 : True : DXT5
[LOG 19:54:16.057] Utils: Squad/Props/NavBall/model001 : True : DXT5
[LOG 19:54:16.058] Utils: Squad/Props/NavBall/model002 : True : DXT1
[LOG 19:54:16.059] Utils: Squad/Props/NavBall/model003 : True : DXT5
[LOG 19:54:16.059] Utils: Squad/Props/pullSwitch/model000 : True : DXT1
[LOG 19:54:16.060] Utils: Squad/Props/pullSwitch/model001 : True : DXT1
[LOG 19:54:16.061] Utils: Squad/Props/radarAltitude/model000 : True : DXT5
[LOG 19:54:16.061] Utils: Squad/Props/squareButton/model000 : True : DXT1
[LOG 19:54:16.062] Utils: Squad/Props/standingSwitch/model000 : True : DXT5
[LOG 19:54:16.063] Utils: Squad/Props/standingSwitch/model001 : True : ARGB32
[LOG 19:54:16.063] Utils: Squad/Props/switch/model000 : True : DXT1
[LOG 19:54:16.064] Utils: Squad/Props/switchGuard/model000 : True : DXT5
[LOG 19:54:16.064] Utils: Squad/Props/switchWithGuards/model000 : True : DXT1
[LOG 19:54:16.065] Utils: Squad/Props/switchWithGuards/model001 : True : DXT1
[LOG 19:54:16.066] Utils: Squad/Props/switchWithGuards/model002 : True : DXT5
[LOG 19:54:16.066] Utils: Squad/Props/throttle/model000 : True : DXT5
[LOG 19:54:16.067] Utils: Squad/Props/throttle/model001 : True : ARGB32
[LOG 19:54:16.068] Utils: Squad/Props/VSI/model000 : True : DXT5
[LOG 19:54:16.068] Utils: Squad/Spaces/crewCabinInternals/model000 : True : DXT1
[LOG 19:54:16.069] Utils: Squad/Spaces/crewCabinInternals/model001 : True : DXT1
[LOG 19:54:16.069] Utils: Squad/Spaces/crewCabinInternals/model002 : True : ARGB32
[LOG 19:54:16.070] Utils: Squad/Spaces/crewCabinInternals/model003 : True : DXT5
[LOG 19:54:16.071] Utils: Squad/Spaces/crewCabinInternals/model004 : True : DXT5
[LOG 19:54:16.072] Utils: Squad/Spaces/crewCabinInternals/model005 : True : DXT5
[LOG 19:54:16.072] Utils: Squad/Spaces/cupolaInternal/ksp_l_cupola_internal_diff : True : DXT5
[LOG 19:54:16.073] Utils: Squad/Spaces/cupolaInternal/ksp_l_cupola_internal_normal : True : ARGB32
[LOG 19:54:16.074] Utils: Squad/Spaces/cupolaInternal/ksp_l_cupola_internal_windows_alpha : True : DXT5
[LOG 19:54:16.074] Utils: Squad/Spaces/cupolaInternal/pilot Seat : True : DXT5
[LOG 19:54:16.075] Utils: Squad/Spaces/GenericSpace1/model000 : True : DXT5
[LOG 19:54:16.076] Utils: Squad/Spaces/GenericSpace1/model001 : True : DXT5
[LOG 19:54:16.076] Utils: Squad/Spaces/GenericSpace1/model002 : True : ARGB32
[LOG 19:54:16.077] Utils: Squad/Spaces/GenericSpace1/model003 : True : DXT5
[LOG 19:54:16.078] Utils: Squad/Spaces/GenericSpace1/model004 : True : DXT5
[LOG 19:54:16.078] Utils: Squad/Spaces/GenericSpace1/model005 : True : DXT5
[LOG 19:54:16.079] Utils: Squad/Spaces/GenericSpace3/model000 : True : DXT5
[LOG 19:54:16.079] Utils: Squad/Spaces/GenericSpace3/model001 : True : DXT1
[LOG 19:54:16.080] Utils: Squad/Spaces/GenericSpace3/model002 : True : DXT5
[LOG 19:54:16.081] Utils: Squad/Spaces/GenericSpace3/model003 : True : DXT5
[LOG 19:54:16.081] Utils: Squad/Spaces/GenericSpace3/model004 : True : DXT5
[LOG 19:54:16.082] Utils: Squad/Spaces/GenericSpace3/model005 : True : ARGB32
[LOG 19:54:16.083] Utils: Squad/Spaces/GenericSpace3/model006 : True : DXT1
[LOG 19:54:16.083] Utils: Squad/Spaces/GenericSpace3/model007 : True : DXT5
[LOG 19:54:16.084] Utils: Squad/Spaces/landerCabinInternals/model000 : True : DXT5
[LOG 19:54:16.085] Utils: Squad/Spaces/landerCabinInternals/model001 : True : ARGB32
[LOG 19:54:16.085] Utils: Squad/Spaces/landerCabinInternals/model002 : True : DXT5
[LOG 19:54:16.086] Utils: Squad/Spaces/landerCabinInternals/model003 : True : DXT1
[LOG 19:54:16.087] Utils: Squad/Spaces/landerCabinInternals/model004 : True : DXT5
[LOG 19:54:16.087] Utils: Squad/Spaces/landerCabinInternals/model005 : True : DXT1
[LOG 19:54:16.088] Utils: Squad/Spaces/landerCabinInternals/model006 : True : DXT5
[LOG 19:54:16.089] Utils: Squad/Spaces/landerCabinInternals/model007 : True : DXT5
[LOG 19:54:16.089] Utils: Squad/Spaces/landerCabinSmallInternal/ksp_s_landerCan_internal_diff : True : DXT5
[LOG 19:54:16.090] Utils: Squad/Spaces/landerCabinSmallInternal/ksp_s_landerCan_internal_normal : True : ARGB32
[LOG 19:54:16.091] Utils: Squad/Spaces/landerCabinSmallInternal/ksp_s_landerCan_internal_window_alpha : True : DXT5
[LOG 19:54:16.092] Utils: Squad/Spaces/landerCabinSmallInternal/pilot Seat : True : DXT5
[LOG 19:54:16.092] Utils: Squad/Spaces/mk1CockpitInternal/model000 : True : RGBA32
[LOG 19:54:16.093] Utils: Squad/Spaces/mk1CockpitInternal/model001 : True : RGBA32
[LOG 19:54:16.094] Utils: Squad/Spaces/mk1CockpitInternal/model002 : True : RGBA32
[LOG 19:54:16.094] Utils: Squad/Spaces/mk1CockpitInternal/model003 : True : RGBA32
[LOG 19:54:16.095] Utils: Squad/Spaces/mk1CockpitInternal/model004 : True : RGBA32
[LOG 19:54:16.096] Utils: Squad/Spaces/mk1CockpitInternal/model005 : True : RGBA32
[LOG 19:54:16.096] Utils: Squad/Spaces/mk1CockpitInternal/model006 : True : RGBA32
[LOG 19:54:16.097] Utils: Squad/Spaces/mk1CockpitInternal/model007 : True : RGBA32
[LOG 19:54:16.098] Utils: Squad/Spaces/mk1CockpitInternal/model008 : True : RGB24
[LOG 19:54:16.099] Utils: Squad/Spaces/mk1CockpitInternal/model009 : True : RGBA32
[LOG 19:54:16.099] Utils: Squad/Spaces/mk1PodCockpit/model000 : True : DXT5
[LOG 19:54:16.100] Utils: Squad/Spaces/mk1PodCockpit/model001 : True : DXT5
[LOG 19:54:16.101] Utils: Squad/Spaces/mk1PodCockpit/model002 : True : DXT5
[LOG 19:54:16.101] Utils: Squad/Spaces/mk1PodCockpit/model003 : True : DXT5
[LOG 19:54:16.102] Utils: Squad/Spaces/mk1PodCockpit/model004 : True : DXT1
[LOG 19:54:16.103] Utils: Squad/Spaces/mk1PodCockpit/model005 : True : DXT1
[LOG 19:54:16.103] Utils: Squad/Spaces/mk1PodCockpit/model006 : True : DXT5
[LOG 19:54:16.104] Utils: Squad/Spaces/mk1PodCockpit/model007 : True : DXT5
[LOG 19:54:16.105] Utils: Squad/Spaces/PodCockpit/model000 : True : DXT5
[LOG 19:54:16.105] Utils: Squad/Spaces/PodCockpit/model001 : True : DXT5
[LOG 19:54:16.106] Utils: Squad/Spaces/PodCockpit/model002 : True : ARGB32
[LOG 19:54:16.107] Utils: Squad/Spaces/PodCockpit/model003 : True : DXT5
[LOG 19:54:16.107] Utils: Squad/Spaces/PodCockpit/model004 : True : DXT5
[LOG 19:54:16.108] Utils: Squad/Spaces/PodCockpit/model005 : True : DXT5
[LOG 19:54:16.109] Utils: Squad/Spaces/PodCockpit/model006 : True : DXT1
[LOG 19:54:16.109] Utils: Squad/Spaces/PodCockpit/model007 : True : DXT5

Link to comment
Share on other sites

That's _really_ weird. So it's not that there's a leak in TGA loading, it's that they're never compressed!

I wonder what makes a texture imported as RGBA32 rather than DXT5, since it looks like some mbms in gamedata are pulled in as one, some as the other. Unless they make a second pass after all models are loaded and _then_ do the compression, once they know what things are used for?

Hmm. Are all those mbms, or are you running any texture reduction packs that replace the mbms?

Link to comment
Share on other sites

That's _really_ weird. So it's not that there's a leak in TGA loading, it's that they're never compressed!

I wonder what makes a texture imported as RGBA32 rather than DXT5, since it looks like some mbms in gamedata are pulled in as one, some as the other. Unless they make a second pass after all models are loaded and _then_ do the compression, once they know what things are used for?

Hmm. Are all those mbms, or are you running any texture reduction packs that replace the mbms?

no reduction packs... note the PNG is compressed though.

Link to comment
Share on other sites

OK. It really does sound like they do a second pass and compress based on the texture's usage after all...wait, unless mbm has something in the header to say how to compress it?

...heh, yup, looks like they might. Offset C, the non-compressed mbm has a 01 instead of an 00. My guess is if you flip that to 0 in a non-compressed MBM KSP will compress it on next load.

EDIT: Spot-checked a few more, and that's indeed what it looks like. And since Unity does the export to mbm (right?) then the "compress / don't compress" checkbox there will presumably set that byte.

EDIT 2: Are your tgas compressed or uncompressed? Try and see if it DXTizes a compressed TGA, if you were only feedng it uncompressed TGAs. Note that TGA compression itself is lossless, but KSP may be smart enough to notice it's LZW-compressed and decide to convert to DXT.

Edited by NathanKell
Link to comment
Share on other sites

OK. It really does sound like they do a second pass and compress based on the texture's usage after all...wait, unless mbm has something in the header to say how to compress it?

...heh, yup, looks like they might. Offset C, the non-compressed mbm has a 01 instead of an 00. My guess is if you flip that to 0 in a non-compressed MBM KSP will compress it on next load.

EDIT: Spot-checked a few more, and that's indeed what it looks like. And since Unity does the export to mbm (right?) then the "compress / don't compress" checkbox there will presumably set that byte.

EDIT 2: Are your tgas compressed or uncompressed? Try and see if it DXTizes a compressed TGA, if you were only feedng it uncompressed TGAs. Note that TGA compression itself is lossless, but KSP may be smart enough to notice it's LZW-compressed and decide to convert to DXT.

I'm not certain it is that smart... the compression wouldn't apply in-memory, and would still use more memory if it is stored as RGBA32. Nice find on the MBM compression!

Link to comment
Share on other sites

I'm not certain it is that smart... the compression wouldn't apply in-memory, and would still use more memory if it is stored as RGBA32. Nice find on the MBM compression!

You know... we could easily create a mod to compress all the textures at run-time to save at least several tens of MB of memory...

Link to comment
Share on other sites

According to MOARdV's tests, TGA-RLE was actually worse. That must be what I was remembering about the leak--it looks like when it uncompresses the TGA even that doesn't get freed. Sorry MOARdV, missed your link the first round.

Regarding compressing: http://forum.kerbalspaceprogram.com/threads/49011-Testing-Compressing-Textures-in-Memory

Link to comment
Share on other sites

According to MOARdV's tests, TGA-RLE was actually worse. That must be what I was remembering about the leak--it looks like when it uncompresses the TGA even that doesn't get freed. Sorry MOARdV, missed your link the first round.

Regarding compressing: http://forum.kerbalspaceprogram.com/threads/49011-Testing-Compressing-Textures-in-Memory

Yeah, something like that... looks like at least 100 MB can be freed.

Link to comment
Share on other sites

no reduction packs... note the PNG is compressed though.

I should have remembered PNG is compressed. Trigger Au found that with the Kerbal Alarm Clock, and he posted about it a few months ago. So the game / engine goes through the trouble of DXT conversion (somewhat costly, if it's quality conversion), and then skips generating mipmaps (pretty cheap if you use the graphics API to do it).

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...