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

Ben | DirectX work on Meshplorer

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

Re: Ben | DirectX work on Meshplorer

Postby Ottemis » 19 Nov 2016, 03:40

Focus with me3explorer has always been, first make it work, then expand, then beautify. While your plans look ambitious, my two cents on what modders really need is simple:
1. Less funky crashes
2. Porting of current functionality to ME2 and ME1.

Porting functionality has been so high up everyone's wishlist for years now that honestly, I couldn't care much at all about all the fancy stuff you're proposing to do. Right now Meshplorer is functional for ME3, we've been using it for years and the functionality you are proposing is not stuff we need. It's probably not even stuff current modders would personally use. We need meshplorer ported, and we need it less crash prone. Everything else is fluff and gravy. Now I understand that's not as much fun, and I sure as hell am not trying to **** on the effort here but if you'd ask me, as a long time mesh and texture modder, what we NEED... that would be it.

As to it possibly being useful to preview texture changes in Meshplorer on the model: I concur with Giftfish. I wouldn't use that functionality. It's really simple, you use the best tools for the job and in the case of ME texture and mesh modding that means Photoshop and 3DS Max. Can you use other programs? Sure, but they're not as compatible or simply lack functionality you need to do the job proper. That's not to say it wouldn't be neat, but in the end it's fluff.
User avatar
Ottemis
Harbinger
 
Posts: 824
Joined: 11 Mar 2013, 12:14
Has thanked: 225 time
Have thanks: 247 time

Re: Ben | DirectX work on Meshplorer

Postby benji » 19 Nov 2016, 06:34

Okay, the forums have spoken, I get the point. Don't work on adding extra renderer functionality. Thing is, there's not really much else I know how to do here.

I just have a hard time - as a modding n00b - seeing textures fail to load in Meshplorer and thinking 'there's a bug - somebody should probably fix that', and then not trying to fix those perceived issues myself.

It's okay if I finish up my cleanup if I don't add more features, right?
Are we okay with being able to move the camera in viewports? I kind of just assumed that 3d views should be interactive. You guys seem to not want *any* functionality added to the viewport if I'm understanding this correctly?
How about the checkboxes for wireframe and solid? Too many options?

Also, what about people who use Maya instead of 3DS Max? There's no ActorX Importer for Maya, but they could still make texure mods with an interactive preview (I'm not saying it has to exist, I'm giving rationale for my suggestion. And yes, I know that dds is what is used.) Are Maya users not 'texture modders worth their salt' because there's no ActorX import? Or perhaps nobody else but yourselves the existing users with Max ($185/month now) will ever use this tool, so Maya support wouldn't be used?

---

@Kinkojiro
Skeletal:
Viewing models is functional (dare I say complete)
Material previews in viewport: only diffuse textures supported (because you guys don't wany *anything* added)
Materials in treeview: was already working.
Set the material for a section: I'll look at the existing code and see if I can keep it working.
Add extra materials: You just said it can't be done. OK, let's not argue about it.
Import materials from unreal packages: If it can be done now, I'll keep it working - provided someone experienced can test for bugs. That's about all I can do.
Import models from unreal packages: Same as above.
Write import bone names to name table: I don't know enough about the file formats and structure.
Static:
Viewing models is functional (minus any material previewing beyond basic textured diffuse)
Set the materials: I should be able to keep it working (it does work now, doesn't it?).
RBBodySetup: No clue what this is. I'll have a look.
Import from unreal packages: Doesn't this already work?

@Ottemis
If you'd take my current version for a spin and try to crash it, I'd be much obliged. I might be able to patch some Meshplorer crashes if I can reproduce them.
Porting for ME2 and ME1 is not at all in my scope. I don't touch the existing code for loading and saving meshes. I touch preview rendering code. I might be able to pull it off with a ton of file format documentation, but that's pretty much not happening from me.

giftfish wrote:Okay, so the scan is for imported textures, only. That makes sense, but I don't think there needs to be a button for the feature, nor does it need to list the source file. Just have it scan in the background when loading the file and load the texture when ready.

Hey, I got something right - although I only scan for textures once, when the Meshplorer windows is opened. Even better than once per model! :D (although exported textures are treated the same as imports in the loading code - but hey, you don't even care about seeing textures anyway, iirc)

I'll update the TODO according to the great feedback recieved. (But I'll keep the old list for myself - I might come back to it someday. Don't worry, I won't try to make anyone else use a beautiful preview renderer :D Your WPF rewrite might even be done by then! Isn't open-source software great?)

Sorry I can't do more for loading and saving functionality.

Ben
benji
User
 
Posts: 18
Joined: 07 Nov 2016, 05:24
Has thanked: 1 time
Have thanks: 6 time

Re: Ben | DirectX work on Meshplorer

Postby KFreon » 19 Nov 2016, 07:47

As a fellow coder, I want to say a few things about this conversation.
Firstly, I know what it feels like when you find something you not only like, but you're good at (as evidenced by the speed of you're work).

Secondly, even though your work isn't the thing people want, that shouldn't discourage you. Mostly because no one's working on that stuff anyway. Your work doesn't hamper anyone's efforts on the things suggested, it improves the tool. Just not in the way needed.
Which leads to:

Thirdly, you have to realise that with the shift to WPF, either way your work could be wasted.
You need to understand that what you're doing may not be useful to the community at this stage, and that ideally, you'd switch to working on that which is required.
The best thing about the kind of stuff you're doing with Meshplorer though, is that it wouldn't be hard to move that to WPF. Just move all the UI stuff in code to Properties, design a new UI, and bind those properties to the correct UI elements.
User avatar
KFreon
Toolset Developer
 
Posts: 1665
Joined: 16 Apr 2013, 00:57
Has thanked: 83 time
Have thanks: 520 time

Re: Ben | DirectX work on Meshplorer

Postby Kinkojiro » 19 Nov 2016, 13:16

Just to add to KF, I am not saying it cannot be done, I just want you to recognise the issues involved and maybe give you hints on what to look for. After all if I had believed all the things people said couldn't be done, EGM would have never happened. Go for it. :)

There are some boundaries to our knowledge base at the moment and the shaders are a major one. If you want to take a look, the main game shader is loaded when the game starts and is: RefShaderCache-PC-D3D-SM3.upk. It might be easier to start by looking at each DLC file which has its own shadercache object. (seekfreeshadercache).

Just to clear up a few things. AFIK you cannot add materials (you can create new material instances).
- In skeletal meshes there are material references (in the binary, right after the boundary co-ordinates there is an integer which counts the number of materials used by the mesh followed by the list of material object references). Being able to edit this list, add and delete is vital.
- In static meshes there is an object reference to the rb-bodysetup. It is about 16 bytes into the binary (roughly). The RBBodySetup object determines the collision parameters of the mesh and is usually a highly simplified version of the mesh (often a cube around it).

Modders don't always use 3ds - some use Blender. However pretty much the only way to ensure stable import of meshes is to import it into Unreal Development Kit (UDK) and then export that to a .upk file and import it via meshplorer. Whether you use 3ds or Blender that is the best process because it removes all the irregularities between different sources and standardises it for Unreal.

I am looking forward to see how things develop.
User avatar
Kinkojiro
Modder
 
Posts: 578
Joined: 02 Dec 2013, 04:14
Has thanked: 233 time
Have thanks: 249 time

Re: Ben | DirectX work on Meshplorer

Postby giftfish » 19 Nov 2016, 15:17

benji wrote:Are we okay with being able to move the camera in viewports? I kind of just assumed that 3d views should be interactive. You guys seem to not want *any* functionality added to the viewport if I'm understanding this correctly?
How about the checkboxes for wireframe and solid? Too many options?

I don't think anyone has said they wouldn't be interested in these options. I think both would be useful, and would love to see them incorporated.

@Ottemis
If you'd take my current version for a spin and try to crash it, I'd be much obliged. I might be able to patch some Meshplorer crashes if I can reproduce them.

Otte can definitely try, but the problem with Meshplorer's crashes -- at least in my experience -- is they are very random and generate absolutely no output. The tool/toolset just closes. Otte's used the tool much more than myself, though, so maybe she has some ideas.

Hey, I got something right - although I only scan for textures once, when the Meshplorer windows is opened. Even better than once per model! :D (although exported textures are treated the same as imports in the loading code - but hey, you don't even care about seeing textures anyway, iirc)

Snark aside, I've already stated I think showing the skinned texture is useful and was a good idea -- it will be a huge help for newcomers to the toolset. Displaying the DIFF is likely enough for our purposes, and now that you'll be showing some type of list of textures used, folks will no longer have to search through Texplorer to find a texture to follow it to the mesh... which was pretty backwards.

----

Finally, to reiterate, both Kinko and Otte have provided great feedback as to what we need and how the tool is used. Anything you can contribute in that vein would be fantastic. Re-writing it in WPF will still require replication and more work, which isn't optimal, but my guess is that if you've already included those features in Winforms it will be easier than starting from scratch.

----

Kinkojiro wrote:After all if I had believed all the things people said couldn't be done, EGM would have never happened.

Truer words have never been spoken :)
User avatar
giftfish
Toolset Developer
 
Posts: 1247
Joined: 08 Jan 2016, 02:35
Has thanked: 129 time
Have thanks: 75 time

Re: Ben | DirectX work on Meshplorer

Postby benji » 20 Nov 2016, 01:15

OK, changing materials for staticmesh sections works. Pick material from menu, select mesh section, and click apply.

Image

Image

(hint: that's not the normal bed texture ;) )

Next up should be changing skeletalmesh section materials.
Because skeletalmesh sections reference materials in the mesh's material list, I see a few options:
- Hide the mesh materials list from modders (or rather don't make it directly changeable), update it automagically as section materials are changed.
- Keep the mesh materials list changeable, and add new UI so that modders pick from the current mesh materials when changing a section material, such as a context menu perhaps?
- Something else?

I am personally leaning for the first option, but it's up to you guys to pick. I'll be waiting for a decision before I prematurely write code :D .
benji
User
 
Posts: 18
Joined: 07 Nov 2016, 05:24
Has thanked: 1 time
Have thanks: 6 time

Re: Ben | DirectX work on Meshplorer

Postby benji » 20 Nov 2016, 07:37

Aaaaand, now Meshplorer2 is also using the new 3D viewport code. :D

I tried to add exactly zero new features / functionality, so Meshplorer2 still doesn't work with static meshes, although I suppose being able to move the camera is a new feature. That just comes along with the new viewport code.

Screenshot:
Image

Barring any bugs that I you guys might find (that didn't exist before my changes), I'm off to update the Level Editor in the same fashion, which I suspect might not be as straightforward.
I'm also itching to get working implementing skeletalmesh section texture changing, but I guess waiting for input is a good excersise in collaborative skills and patience. :|
On that note, what time zones are most people in? I'm in the Pacific Time Zone (UTC - 8:00).

Ben
benji
User
 
Posts: 18
Joined: 07 Nov 2016, 05:24
Has thanked: 1 time
Have thanks: 6 time

Re: Ben | DirectX work on Meshplorer

Postby Ottemis » 21 Nov 2016, 08:17

*cries tears for the port not happening*

Ugly tears aside, I'll try and dig up some bugs but yeah as Gift said, it's a pita to trigger them haha. If I run into any I have some way of reproducing i'll be sure to report them.

Don't get me wrong, there's definitely something to be said for all the stuff you are looking to implement, it's a shame you won't be able to take care of the groundwork that I'd like to see done on Meshplorer first but that's not to say any of the stuff you're exploring isn't cool. It's just a bit bass ackwards to do it this way in my opinion but if that's where we stand, not much to do about that.

I'm at UTC +1
User avatar
Ottemis
Harbinger
 
Posts: 824
Joined: 11 Mar 2013, 12:14
Has thanked: 225 time
Have thanks: 247 time

Re: Ben | DirectX work on Meshplorer

Postby benji » 21 Nov 2016, 09:38

Ottemis wrote:It's a shame you won't be able to take care of the groundwork that I'd like to see done on Meshplorer first
...
It's just a bit bass ackwards to do it this way in my opinion but if that's where we stand, not much to do about that.

Yeah I totally understand, although it could be argued that ME3 support should be polished before moving on to ME1 & 2 stuff, but I dunno. Maybe I'll have a look later but I'm really terrible at reverse engineering file formats. If both the ME2 pcc & model loading code was there then sure I could show it in Meshplorer but beyond that I'm clueless.

There aren't any tools that can open ME2 models from pccs, right?

Ben
benji
User
 
Posts: 18
Joined: 07 Nov 2016, 05:24
Has thanked: 1 time
Have thanks: 6 time

Re: Ben | DirectX work on Meshplorer

Postby Ottemis » 21 Nov 2016, 10:26

benji wrote:
Ottemis wrote:It's a shame you won't be able to take care of the groundwork that I'd like to see done on Meshplorer first
...
It's just a bit bass ackwards to do it this way in my opinion but if that's where we stand, not much to do about that.

Yeah I totally understand, although it could be argued that ME3 support should be polished before moving on to ME1 & 2 stuff, but I dunno.

That's true enough. I'm no coder in the end, I can't gauge how easy or hard it would be to port a more sophisticated system but it matters little atm if there's nobody to port it regardless heh.
As I don't code and basically am a toolset user in the end, do any of the other coders have any perspective on whether or not Meshplorer basecode is solid enough to build this kind of added functionality on? Asin, won't we run into issues tacking on functionality in the long run if the base is not optimized/largely bug free? I always got the impression it wasn't.

benji wrote: There aren't any tools that can open ME2 models from pccs, right?

I use Umodel/UE Viewer to get to the models for ME1/2.
User avatar
Ottemis
Harbinger
 
Posts: 824
Joined: 11 Mar 2013, 12:14
Has thanked: 225 time
Have thanks: 247 time

PreviousNext

Return to ME3Explorer Toolset Development

Who is online

Users browsing this forum: No registered users and 1 guest

suspicion-preferred