Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

KFreon's WPF Rewrite

Development board for ME3Explorer tools. Please try to keep discussions for each tool inside its own thread.

KFreon's WPF Rewrite

Postby KFreon » 14 Sep 2016, 21:55

WPF Rewrite
It's about time I started putting some info/progress/ideas out there for this.

Current Release
https://github.com/KFreon/CSharpImageLibrary/releases/tag/4.0Extra]Current ImageEngine Release[/url]
- This release is just for the sake of progress.
- Texplorer is the only thing that works.

- Texplorer and TPFTools now work.
- I've done no testing, so read below.

Now, I DON"T WANT TO HEAR BUG REPORTS ABOUT THIS.
It's not done yet, I doubt it works properly yet for nearly anything.
The only bug reports I want to hear are that flies and mosquitos have been eradicated from Australia. Sandflies too.

I DO want to hear UI ideas/changes. Even if it would mean rewriting the whole thing, if it's better I'll consider it.



Synopsis
SirCxyrtyx and Giftfish have been working on keeping the Stable stable and rewriting the toolset using WPF instead of WinForms.
WPF allows greater control of various aspects of the UI, the biggest of which are multi-threaded access to "UI" (through Binding), and more DPI awareness.

The tools I maintain (Texplorer, TPFTools, and Modmaker) have been excluded from the above processes as they're probably the most complex (at least UI-wise).
As such, I've been working on them separately.


Goals
- High Performance, both code and UI.
- Memory efficient if required, or SUPER MEMORY MAXIMUS if possible.
- Disk efficient -> Current stable absolutely thrashes the disk due to my poor understanding of how disks/threads interact, and having an SSD so I didn't notice it...
- Simple, easy to use UI's, but providing information and functions intuitively. Currently Texplorer and TPFTools are a bit messy. Hopefully that won't be the case now.
- Keeping it useful for users and power users - Texplorer has menus and buttons for everything, but you can also drop and drag textures into and out of Texplorer, including entire folders.


Progress
- Texplorer has been basically completed.
- Testing was literally a single texture for each game. More on that later.
- The UI for TPFTools is there, but won't look like that and doesn't function.
- TPFTools now works, no testing done.

Features
Incomplete list of stuff.
- Much improved Tree Scan display panel.
- Much improved Tree Scan performance - ME3 took ~31m before, 16m now.
- Drop and Drag textures into and out of Texplorer for Change and Extract functions.
- Improved search performance, usability, and UI.
- New progress panel to make progress more interesting to look at.

- Faster load for TPFs (Doesn't actually do this yet...)
- More integrated UI e.g. Details displayed within the texture entry itself, drop and drag from tool.
- Simplified some things.

-------------------------------------------
ImageEngine Improvements
---CURRENT RELEASE FOR TESTING IS AT TOP OF POST---
This may seem unrelated, but all my tools use the ImageEngine a lot to work with textures. Improvements in this tool lead to improvements all round.
Now there's some improvements to this now, and in the future.
Most of these will only be of interest to people who understand coding. Sorry :\

NOW
- Restructured the whole thing so memory copying is reduced. I used to store mipmaps as WritableBitmaps so I had unmanaged access to the raw data, but that went thusly: Read into byte[], read into MemoryStream, write to WritableBitmap. Now that wasn't so bad, when only looking at CPU threading, but I want GPU threading, so each block needs to be able to write to the destination at once, hence restructured to byte[].
No threading issues now, and the Garbage Collector should be a bit lighter too.
- Additional formats supported: TIFF, TGA. Most DirectX 9 DDS' should be supported now too like R16G16B16 or ARGB32 or whatever. Float formats remain unsupported until I can figure out what the deal is with them.
- Alpha and quality settings improved. DXT2 and DXT4 are now actually supported...Before they could be wrong in some weird premultiplied way. Should be accurate now - UNTESTED

FUTURE
- GPU Acceleration!!!!!!!
I'll get this working eventually, but I hope to be able to offload compression and decompression of images to the GPU and let the CPU do other things.
This has tonnes of ramifications, not least of which GPU's are really good at doing one thing to a million little things at the same time. I expect to be able to give the GPU a few thousand compressed blocks and have it decompress them all simultaneously into an image.
That alone is pretty sweet, but since work is being sent elsewhere, the CPU load decreases, allowing it to work on other things like CRC and curing cancer.

Update 29-11-16: GPU Decoding has thus far been a failure. Cudafy worked but abysmally slow. Could be my bad coding/optimisation, but I feel like DirectX should be able to decode it. Just have to figure out how to get the texture in there...

Screenshots
In case anyone doesn't know: Left is old, Right is new.

Initial view - I love the glass effect :)
Image

After loading an image.
Image

Some extra little things to show some differences/additions.
Image

Convert Panel Open
Image



-------------------------------------------
Roadmap
My todo list for Texplorer is basically the following:
- Fancier Progress bars? ME related? Change colour when error?
- Integrated tutorial which loads a sample file to show off features etc automatically.
- Add more background videos to progress panel from here.
-- Did add another video, still want others though.

Next step is TPFTools. Modmaker is on ice for now.
- Improve TPFTools image loading times
- Fancy integrated tutorial



Screenshots
EDIT: Wow....The ads on the site for the screenshots are NSFW, just so you know. I'd have used imgur but it's self destructed this morning.
Initial scan panel
Image

Progress
Image

Finished Scan
Image

Texture Preview
Image

TPFTools
Image

Loaded TPF
Image

New Save TPF Panel
- This will likely be the same template I use for texture extraction i.e. when I enable extraction to change format etc
Image
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: KFreon's WPF Rewrite

Postby giftfish » 14 Sep 2016, 22:12

@K -- Moving this to the toolset development area, since that's what it is :)
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: KFreon's WPF Rewrite

Postby KFreon » 14 Sep 2016, 22:21

Fair enough gift :D
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: KFreon's WPF Rewrite

Postby KFreon » 14 Sep 2016, 22:42

Updated the Build since it already didn't work :P
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: KFreon's WPF Rewrite

Postby giftfish » 14 Sep 2016, 23:13

KFreon wrote:Updated the Build since it already didn't work :P

Rofl.

It begins.
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: KFreon's WPF Rewrite

Postby CreeperLava » 15 Sep 2016, 05:13

Looks nice, K ! Also, 162.4% disk usage ? Your disk is out of this world :P.
User avatar
CreeperLava
User
 
Posts: 844
Joined: 07 Feb 2015, 21:52
Has thanked: 119 time
Have thanks: 83 time

Re: KFreon's WPF Rewrite

Postby KFreon » 15 Sep 2016, 05:39

@Gift: Great start ay. Pretty much sets the tone :P

@Creeper: I know right? Apparently it's a well documented effect of how that measure works. It effectively has no limit, since it's a measure of the disk queue.
I added it just as an indicator as to how busy things are.
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: KFreon's WPF Rewrite

Postby CreeperLava » 15 Sep 2016, 05:45

I like it, apart from this major quirk :P. If it's faster and more efficient, awesome ! I'm eager to see by how much you can cut down installation times and tree scan.
User avatar
CreeperLava
User
 
Posts: 844
Joined: 07 Feb 2015, 21:52
Has thanked: 119 time
Have thanks: 83 time

Re: KFreon's WPF Rewrite

Postby KFreon » 15 Sep 2016, 06:05

I know tree build times are cut by ~30%, haven't tested install much. It should be improved as well.
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: KFreon's WPF Rewrite

Postby KFreon » 29 Sep 2016, 06:58

TPFTools now works!!
Yaaaay!


Anyway, yes TPFTools is there and does stuff.
As with Texplorer, no testing yet, so pleeease don't expect it to work or submit bug reports yet.
I DO WANT UI feedback. Ideas, improvements, etc.

OP is updated.
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Next

Return to ME3Explorer Toolset Development

Who is online

Users browsing this forum: No registered users and 0 guests

suspicion-preferred