Amazing work! Trying it out now
Custom Texture Tool PS v52.5
|
08-16-2021, 09:13 AM
Hey, I just tried to create some mip maps, but it doesn't work for me
Can you tell me what went wrong?
I'm not sure. I just tried that operation and it's working, both when sending to the output path or when using in-place. It would seem the output message is worthless, it will always report that it worked even when it didn't. I'll have to fix that.
Something that might help me figure out what's going wrong: open options, go to debug tab, and check "show the powershell console window". This reports some stuff as textures are processed. If any red text appears, or something looks like it failed, please screenshot that. If all is working it should look something like this: Spoiler: Quote:Something that might help me figure out what's going wrong: open options, go to debug tab, and check "show the powershell console window". This reports some stuff as textures are processed. If any red text appears, or something looks like it failed, please screenshot that. Unfortunatelly no red text in the log file I put it in the attachments, but it all looks quite normal. Quote:An alternative to generate mipmaps to see if its working could be to run "Convert Textures to Another Format". Doing a PNG > PNG conversion will generate mipmaps in the output folder. Yea, already tried this, but didn't work aswell Edit: Ah got it Reinstalling ImageMagick did the trick 08-17-2021, 02:09 AM
Glad to see you got it worked out. Interesting that ImageMagick was the culprit. It's possible that some command I'm using was broken in whatever version you were using, which has happened a few times over the years.
08-27-2021, 01:35 AM
Hi, me again
I used your tool to compress the textures with pingo. I set the compression level to highest, I guess it was 9, while default ist 6 or 7. And the result was impressing, it reduces the file sizes by over 50%. Although I am worried now that the textures could have compression artifacts or something like that Do you have any experience with pingo which you can share with me? Also I was wondering if I can put all the mip maps in a seperate folder (for better organisation). Is that fine or do they need to be in the same folder as their top level texture? Thanks in advance
Pingo can have both lossless and lossy compression, in CTT-PS I added the option "Enable Strict Losslessness" which sends the appropriate commands to Pingo to make sure you don't lose image quality. Pingo was added by request, I myself haven't really used it much to know how much of an effect the lossy compression has on the actual image. It's been some time since I "optimized" textures, and in the past I used mostly OxiPNG. Some strict comparisons may need to be done. There are some programs out there that can compare pixels between two images, might be worth looking into eventually.
And yes, mipmaps need to be in the same folder as the texture or Dolphin will not load them, nor will CTT-PS be able to find them if converting to other formats. DDS solves this problem by including all mipmaps in a single file. I see a PNG pack as an archival format, and a DDS pack as a distribution format. Like, whenever I release a pack, it's usually DDS generated from a PNG pack. But I do upload the PNG packs for the purists who want maximum quality and for the sake of posterity, although I will always argue that a properly created DDS pack (like using BC7 for large environment textures and ARGB8 for UI textures, or even just BC7 for everything), the difference will be nearly imperceptible when it comes to quality. 08-28-2021, 02:33 AM
Thanks for the clarification Yea I was also wondering which format I use. However so far I tend to start with png, since it's smaller, lossless and easier to edit. And it still can be converted to dds anytime, while I would have that quality loss if I convert the other way around.
I also noticed that if my texture pack for example is like 2 gb big, dolphin says it loads something between 6 or 8 gb textures. Why is this number so much higher? And what would happen if I convert to dds. Would this file size in dolphin be even higher?
See this post. You can calculate how big a texture will be in VRAM. For VRAM, you don't add in the 128/148 byte header, this is only factored into DDS file size.
https://forums.dolphin-emu.org/Thread-cu...#pid499610 You can get a rough estimate of how much VRAM the pack will need (or RAM to prefetch) with CTT-PS using the "Calculate VRAM" operation. While it's fully accurate, I say rough estimate because there can be other factors which will alter it slightly (duplicate textures, mipmaps, etc.). Edit: I noticed I forgot to answer your question. No, DDS will be smaller. Technically, PNG as a texture is uncompressed so it will always use the maximum amount of memory. I had a better write-up somewhere, I'll see if I can find it... Edit2: Apparently it's vanished, must have went down with my site a few years back. So I'll try to give the basic idea. DDS textures will have the same file size as they do VRAM requirements. PNG will have smaller file size but much larger VRAM requirement. PNG is compressed in a way to save space on the hard drive. DDS is compressed in a way that is efficient when decoding on the GPU and can be used by the GPU as-is. PNG textures must have their pixels decoded, and is not designed to be used directly by GPUs. The type of block compression of DDS will determine the file size and size in VRAM. PNG will always be treated as "uncompressed" by the GPU. DDS can be used by the GPU as they are (a 2MB file is 2MB in VRAM), while PNG pixels must be fully decoded (a 1MB file may be 8MB in VRAM). - BC1/BC4 textures you can consider each pixel as 0.5 bytes. - BC2/BC3/BC5/BC6/BC7 textures you can consider each pixel as 1 byte. - Uncompressed RGBA/ARGB textures you can consider each pixel as 4 bytes - PNG textures you can consider each pixel as either 3 bytes (no alpha) or 4 bytes (alpha) - For DDS file size vs. VRAM, you also add the header bytes: 128 bytes (DX9), 148 bytes (DX10). The header is not loaded into VRAM. RGB (no alpha) is also a valid uncompressed DX9 DDS format (3 bytes) but is hardly ever used, and I've never seen a real life example. I do believe there is no DXGI variant (DX10), but I may be wrong on that. (Edit: Looking into it, it looks like I am only partially wrong as it exists but still requires 4 bytes/32 bits per pixel). So for BC1/BC4, you can use this formula: width * height / 2 = file/vram size For BC2/BC3/BC5/BC6/BC7, you can use this formula: width * height = file/vram size For uncompressed RGBA/ARGB, you can use this formula: width * height * 4 = file/vram size For PNG, same as above but can also be void of alpha channel. width * height * opaque(3)/alpha(4) = vram size So the short answer is, DDS will be larger than PNG on disk but smaller in VRAM. PNG will be smaller on disk but larger in VRAM when compared to the compressed formats (BC#), but will be equal in size and quality to the uncompressed DDS formats. In this case, the uncompressed DDS formats will beat PNG in performance because the pixels are already decoded, but they have large file sizes. So some bullet points: - BC1/BC4 (DXT1) will be 1/8 the size of PNG in VRAM - Other BC# formats will be 1/4 the size of PNG in VRAM - Uncompressed DDS are equal to PNG in VRAM, have the same quality, but perform faster (no decoding necessary) - Do note that the above means that Uncompressed DDS is huge in file size compared to PNG This is why I consider PNG as an archival format, and suggest texture packs be created as DDS. One is designed for maximum size compression on disk, while the other is designed for performance on the GPU. 08-29-2021, 04:53 AM
Hey, thanks again for your detailed explanation
Guess, I will give DDS a try then Btw I recently updated Lubuntu (20.10 -> 21.04) and now dolphin always crashs if texture replacement is enabled. Is there any setting which I have to take care of? Because it worked fine with my old setup and I'm unsure about my old settings. I can attach the log file but to me it looks like there is no helpful information regarding the crash |
« Next Oldest | Next Newest »
|
Users browsing this thread: 2 Guest(s)