Jump to content

[0.90] DDSLoader 1.9 (Mar 9) - Loads DDS Texture "Boringly fast" edition


sarbian

Recommended Posts

I forked DDS converter out of my engine. Here's the standalone version:

https://github.com/ducakar/img2dds/releases

It can convert PNGs, JPEGs, TGAs, MBMs etc. to DDS format, supports compression of images with arbitrary dimensions, mipmap generation, and can automatically detect normal maps.

The release is compiled for Linux i686, Linux x86-64 and Win32 i686. If you don't use a very up-to-date Linux distribution, you may need to install newer libstdc++ from GCC 4.9 (it's probably in "gcc-libs" package or something like that).

Nice One :cool:, your script work really fine and now i need half time for load KSP, just one point my debian jessie don't know "#!/bin/env python" and i have replaced this line with "#!/usr/bin/python"

Link to comment
Share on other sites

I forked DDS converter out of my engine. Here's the standalone version:

https://github.com/ducakar/img2dds/releases

It can convert PNGs, JPEGs, TGAs, MBMs etc. to DDS format, supports compression of images with arbitrary dimensions, mipmap generation, and can automatically detect normal maps.

Ow this uses python, how sweet, right after my post, only noticed it now. Thanks for that.

Link to comment
Share on other sites

Soo this is very promising, I couldn't wait longer for KSP to load up. But still I do need to convert all those files by myself right?

edit: ohhh so checked out DDSconverter python script, cool, how well does this works? I'm assuming a backup is a good idea in any case, right.

Edited by Gfurst
Link to comment
Share on other sites

No I'm on linux, I used the toll and seemed to works fine. Though it seems that load times reduced I'm not sure by how much, I still get two and half minutes loading.

But in perspective, previously I could literally walk away, return, and it would still be loading, so cheers.

On another note though, I'm having an issue the Navutils not loading its window, on log it complains about not having a png file, but I've checked and there is a dds file.

Could it be that some mods pointing to png have issues with converted files?What I'm getting at is, how to know if we can convert for a specific mod?

I'm also having this exception, which may or may not be related:

EXC 16:49:39.739] UnityException: Texture 'BoulderCo/Clouds/Textures/aurora' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()

Link to comment
Share on other sites

So I dropped on the EVE thread to report some issues related:

[EXC 16:49:39.739] UnityException: Texture 'BoulderCo/Clouds/Textures/aurora' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()
[EXC 16:49:40.039] UnityException: Texture 'BoulderCo/Clouds/Textures/kerbin1' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()
[EXC 16:49:40.332] UnityException: Texture 'BoulderCo/Clouds/Textures/Stratus' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()
[EXC 16:49:40.626] UnityException: Texture 'BoulderCo/Clouds/Textures/kerbin1' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()
[EXC 16:49:40.852] UnityException: Texture 'BoulderCo/Clouds/Textures/Stratus' is not readable, the texture memory can not be accessed from scripts. You can make the texture readable in the Texture Import Settings.
Clouds.CloudParticle.Update (UnityEngine.Texture2D tex)
Clouds.VolumeSection.Update ()
Clouds.VolumeManager.Update (Vector3 pos)
Clouds.CloudLayer.UpdateParticleClouds (Vector3 WorldPos)
Clouds.Clouds.Update ()

These also appear from time to time in the log, I've checked and files are where they supposed to be. I'm not sure if these begun appearing after converting the textures to dds for faster loading.

Also note that I've modified with some components of 'Better Atmosphere'.

And he replied with:

The "Not readable" issues are from the DDS loader. It assumes textures don't need to be readable and makes them unreadable to mods. This will cause you problems with the volumetric cloud cover.

Is this assumption correct? Wouldn't this possibly be a source of issues?

Really I'm just curious and reporting back in case it can somehow help.

Link to comment
Share on other sites

At all as in nothing is converted to DDS but the plugin is present?

No with some basic plugin mods and a script that ran and converted to dds. The game runs perfectly fine, save a minute off loading times. Just the overlay doesn't show up. So I can't use the amd gvr.

Link to comment
Share on other sites

No with some basic plugin mods and a script that ran and converted to dds. The game runs perfectly fine, save a minute off loading times. Just the overlay doesn't show up. So I can't use the amd gvr.

Then revert the overlay images to their non-DDS versions. Certain plugins require images to be non-DDS so they can access pixel data. The converter scripts attempt to include exceptions but some things will inevitably slip through.

Link to comment
Share on other sites

Then revert the overlay images to their non-DDS versions. Certain plugins require images to be non-DDS so they can access pixel data. The converter scripts attempt to include exceptions but some things will inevitably slip through.

Nono, the app is running externally to ksp. it's a overlay like steam style. running super high level

Link to comment
Share on other sites

Sorry but I m not debugging 3rd party apps.

I'm working on a new version that handles a few more format and can keep texture as readable for mods that need it. I'll try to have it out in a few days, but I m busy with other things IRL.

Link to comment
Share on other sites

I forked DDS converter out of my engine. Here's the standalone version:

https://github.com/ducakar/img2dds/releases

It can convert PNGs, JPEGs, TGAs, MBMs etc. to DDS format, supports compression of images with arbitrary dimensions, mipmap generation, and can automatically detect normal maps.

I am quite new to linux and not quite sure how to make use of this script. I have tried the following the steps mentioned at the beginning of dds.py but there is no output in the command line, not even an error. I suspect that I would also have to make use of the img2dds and the linux64 folders in order to get it to work, but i seem to be too stupid to manage it myself. Thank you for any help in advance!

Link to comment
Share on other sites

I am quite new to linux and not quite sure how to make use of this script. I have tried the following the steps mentioned at the beginning of dds.py but there is no output in the command line, not even an error. I suspect that I would also have to make use of the img2dds and the linux64 folders in order to get it to work, but i seem to be too stupid to manage it myself. Thank you for any help in advance!

First, you can also use this script on Windows. The second, you can start the script either from KSP directory (both dds.py and img2dds must be unzipped there) or like


./dds.py /path/to/GameData

if you have it in some other directory.

Link to comment
Share on other sites

Sorry but I m not debugging 3rd party apps.

I'm working on a new version that handles a few more format and can keep texture as readable for mods that need it. I'll try to have it out in a few days, but I m busy with other things IRL.

Which DDS flags/fields are you going to hijack for this? I've already implemented such feature by using 0x08000000 in pixel format flag, but using reserverd fields might be a better idea.

The other problem is that "readable flag" won't solve much issues since most mods load e.g. toolbar icons manually, by file name, instead of accessing them through the GameDatabase. Thus, they explicitly require ".png" extension.

Link to comment
Share on other sites

I won't touch the conversion process, so if people convert texture that should not be then it's their problem. What I'll add is a config file (and support for ATM config) for read/write and _READ in part of the file name for the mods that want to. I may add a flag too, but since it's not standard then you have to use a custom converter or editor tool.

Link to comment
Share on other sites

Sorry but I m not debugging 3rd party apps.

I'm working on a new version that handles a few more format and can keep texture as readable for mods that need it. I'll try to have it out in a few days, but I m busy with other things IRL.

No of course not man, I wasn't saying it's your plugin's fault. I know it's super obscure, I just put it out there in case someone had figured out a jerry rigged method on their own. I'm using the plugin in my personal games and man these load times. SSD plus opengl plus this = heaven

Thanks a tonne.

Link to comment
Share on other sites

1.6 is out

- Support for more format now support : DXT1, DXT5, A8, RGB24, BGR24, RGBA32, BGBR32, RGB565, ARGB4444 and RGBA4444

- texture with name ending with READ stays readable

- Config file for forcing a texture to be a normalMap and/or keep it readable. Example config included. You can have more than one config file (if someone want to include one in their mod DL), just don't add the mipmapBias & normalMipmapBias in those.

- It also import ATM config, so if you have the "BoulderCo\ActiveTextureManagerConfigs" dir you have exception for a lot already.

- Changed the exposed call to be more usable by mods who need to load a DDS

Link to comment
Share on other sites

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