Jump to content
The Dark Mod Forums

Feature Discussion: Material Editor


Recommended Posts

  • Replies 56
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Got the first WIP shot to share. Right now the GUI can display and handle all the material and stage keywords, had to extend the parser here and there. The material is read-only (so it's currently mor

While the pre-release testing of the upcoming DR 2.11 is finishing, I'd like to discuss a possible Material Editor feature. Just to get a picture of whether you guys think this is worth the effort, wh

I agree that it could be divided into a basic and advanced section, if is not hard to do the seperation, in the basic section you cant do much, just apply diffuse, bump and specular textures and say w

Posted Images

Posted (edited)
8 hours ago, peter_spy said:

It seems so, since the results look like a SAP system from the 90s.

You mean it's not so suitable after all? I thought it was beautiful, with all these tabs and checkboxes.

I've always been in love with those functional panels, so you can feel like you're in a control room of a nuclear power plant. 🥰

(edit: I guess it wasn't that obvious, but the above was meant to be sarcastic. I'm not a huge fan of nuclear power plants in real life.)

Edited by greebo
sarcasm
  • Like 1
Link to post
Share on other sites

Man, I really ought to spend more time on the forums, people around here are really helpful and full of good advice.

Speaking of which, I was just about to re-read your post about getting in touch with a closed group of mappers for feedback, but it seems you edited your answer and replaced everything with a dot?

Link to post
Share on other sites
2 minutes ago, peter_spy said:

It really is a special talent, with all the knowledge available on the web, and UI examples from other engines, to create something so antiquated and antithetic to all that.

Enjoy your backward bubble. Over and out.

Why, thank you! 😀

Link to post
Share on other sites

greebo please don't let peter_spy get on your nerves, he can be a little obtuse but he has sometimes good advice to give, we just need to separate it from his way of giving that advice.

Please continue working on the material editor and work on what you want to work, do continue posting here for us to "critic" constructively and give our input and also our kudos imo you and OrbWeaver deserve more praise than what is giving.

Now I believe many here don't care much about the look of the tools, if we did, we wouldn't be working on idtech 4 and would be working on any other modern engine, where the tools looks, in some way, are more important than the engine itself.

  • Like 1
Link to post
Share on other sites

It warms my heart to know that while half the world's hobby communities are engulfed in culture wars, there are still places where the high drama erupts over GUI design.

On a more practical note: being able to add a background image to the preview might be useful for testing blend modes.

It looks from the screenshot as though the list of stages has them identified by blend mode: maybe the currently selected stage could be highlighted in the right-hand textbox too, to make it easier to tell which blend add stage you're manipulating right now?

  • Like 2

Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Link to post
Share on other sites

@HMart Thanks, I do a lot of work with models and materials, so I was excited about this, but I think I received the message. It's like ThiefGen, covering your ears and singing to mute any voices you don't like. Since he ignored all the initial ideas and designed the whole solution in one go, I assumed he doesn't really know how the iterative development works, because it shows. It's even worse, if this was already consulted with mappers and iterated upon. So, if it's mostly doing stuff for three friends and their dog, my presence in this or any future threads like that is pointless. I'll stick to the tools I already have.

Edited by peter_spy
Link to post
Share on other sites
1 minute ago, VanishedOne said:

It warms my heart to know that while half the world's hobby communities are engulfed in culture wars, there are still places where the high drama erupts over GUI design.

See, this is why I joined this forum. Fuck the mod, it's the forum drama I was lacking in my life, after the previous place I inhabited slowly died out. That time it was music enthusiasts, now programming nerds apparently.

Link to post
Share on other sites
1 minute ago, VanishedOne said:

..

On a more practical note: being able to add a background image to the preview might be useful for testing blend modes.

..

That is a very good idea afaik not even the Doom 3 included material editor does that.

Link to post
Share on other sites
49 minutes ago, VanishedOne said:

On a more practical note: being able to add a background image to the preview might be useful for testing blend modes.

Yes, this is a good idea, it's on my list. The plan was to offer a small number of shapes (cube, sphere and a plane to test tiling behaviour) in front of a textured room.

45 minutes ago, peter_spy said:

Since he ignored all the initial ideas and designed the whole solution in one go, I assumed he doesn't really know how the iterative development works, because it shows.

Please back up that accusation and point out all the initial ideas I ignored in this thread. If it makes you feel better, you can continue calling me incompetent or backwards, it's ok for me.

And since you're not "over and out", care to explain why you edited all your posts in this thread and replaced them with dots? (It doesn't come without some irony, since your friend Biker did the same once when he got mad.)

  • Like 2
Link to post
Share on other sites
7 hours ago, peter_spy said:

@HMart Thanks, I do a lot of work with models and materials, so I was excited about this, but I think I received the message. It's like ThiefGen, covering your ears and singing to mute any voices you don't like. Since he ignored all the initial ideas and designed the whole solution in one go, I assumed he doesn't really know how the iterative development works, because it shows. It's even worse, if this was already consulted with mappers and iterated upon. So, if it's mostly doing stuff for three friends and their dog, my presence in this or any future threads like that is pointless. I'll stick to the tools I already have.

I know that your intention was good and to help improve the tool but imo you need to control your temper. 

No one wants you to go away from this type of threads, just be calm and in the future accept that others don't take things as seriously has you may take. or may take things seriously but not in the same way, all this debacle would be avoided if you just did that.

Please lets all calm down and help improve the material editor. 

Edited by HMart
Link to post
Share on other sites
5 hours ago, greebo said:

You mean it's not so suitable after all? I thought it was beautiful, with all these tabs and checkboxes.

I've always been in love with those functional panels, so you can feel like you're in a control room of a nuclear power plant. 🥰

I agree and I think it's the right way to go.  It is a complex tool so I don't see the need to dumb it down for newcomers.  If they feel overwhelmed and just quit, well maybe they do that a lot in their life?  Having all of the buttons and fields and checkboxes right in front of you means you can sit back and just look it all over, and feel more encouraged to just toy with something to see if you can figure out what it actually does.

Link to post
Share on other sites

First off, I love that this is actually happening!  Even if the interface is busy it offers a newbie the option to explore what keywords exist and see the results in realtime, rather than hunting them down off of various wikis that (besides ours) barely seem to exist anymore.  That alone is a massive improvement.

If I may constructively add a few thoughts:

image.thumb.png.c6281927c7899a1a35a364240c90bb22.png

 

1.  I think that even for someone who knows what every single field means (not sure that describes anyone but John Carmack, lol), there is a lot of value in having a basic set of fields that makes it easy for people to cut through the clutter and quickly bring in materials that don't need any special treatment.  We could call it Basic/Advanced or Common/All.  This isn't about gatekeeping people who are overwhelmed, but making it easier for daily use.  I had the idea of doing a word-count on all the keywords contained within all existing material files in order to figure out which ones are the most important to mappers.  The most frequent ones should go on the Common tab, and on the All tab they should be placed (within reason) with the most common ones in the prime locations (top / left, tabs ordered by commonality).

1a. The Basic / Common tab could have a checkbox or button to generate a standard frob stage for the material, according to whatever our current best practices are.  Even the advanced tab could do something to detect the frob stages and put them in a dedicated stage tab so you don't have to piecemeal it together.

2.  If all the texture fields had the option to open a file selection dialog, you could derive the texture name from the selected file path instead of making the user type it out.

3.  Having a good set of tooltips might go a long way on this page.  Obviously we can't explain everything, but for example a reminder of what the _MACRO options select could be done, anything that can be explained or just jog the user's memory in a one-liner would be helpful.

 

Some of these may not be worth the effort, but those were the ideas that came to mind.

 

 

  • Like 1
Link to post
Share on other sites
3 hours ago, jonri said:

1.  I think that even for someone who knows what every single field means (not sure that describes anyone but John Carmack, lol), there is a lot of value in having a basic set of fields that makes it easy for people to cut through the clutter and quickly bring in materials that don't need any special treatment.  We could call it Basic/Advanced or Common/All.  This isn't about gatekeeping people who are overwhelmed, but making it easier for daily use.  I had the idea of doing a word-count on all the keywords contained within all existing material files in order to figure out which ones are the most important to mappers.  The most frequent ones should go on the Common tab, and on the All tab they should be placed (within reason) with the most common ones in the prime locations (top / left, tabs ordered by commonality).

Yes, using tabs to switch between simple modes is one way and might even be the easiest way. Another way would be a toggle (Advanced Options - we don't have the Windows on/off slider controls in wxWidgets, but something like this). The tricky thing will be how the simple mode is going to deal with materials that use more than the basic options - are they just hidden and will they get dropped when a stage is edited in simple mode? Or can it detect such materials and simple mode will be disabled for those materials?

A general consideration: One of my requirements was that any material can be opened and altered without losing anything, except for maybe formatting or redundancy - not sure if this is something worthwile pursuing?

3 hours ago, jonri said:

1a. The Basic / Common tab could have a checkbox or button to generate a standard frob stage for the material, according to whatever our current best practices are.  Even the advanced tab could do something to detect the frob stages and put them in a dedicated stage tab so you don't have to piecemeal it together.

I have to read up on the latest development on frob stages. Haven't there been discussions of getting rid of that frob stage and have it handled by the engine automatically? If a frob stage is necessary, then a button to create it would of course be very useful, agreed.

3 hours ago, jonri said:

3.  Having a good set of tooltips might go a long way on this page.  Obviously we can't explain everything, but for example a reminder of what the _MACRO options select could be done, anything that can be explained or just jog the user's memory in a one-liner would be helpful.

Yeah, I planned to more or less copy/paste the explanations from iddevnet or modwiki to the tooltips. It's straight forward to do it in wxFormBuilder, but there was no time for that yet.

Link to post
Share on other sites
4 hours ago, greebo said:

The tricky thing will be how the simple mode is going to deal with materials that use more than the basic options - are they just hidden and will they get dropped when a stage is edited in simple mode?

I'm thinking the advanced options would still be in action with their current values, just that the controls are not visible to the user.

 

4 hours ago, greebo said:

A general consideration: One of my requirements was that any material can be opened and altered without losing anything, except for maybe formatting or redundancy - not sure if this is something worthwile pursuing?

This sounds like a good idea to me, wouldn't want to alter or break special materials that the mapper is inspecting for guidance in creating his own version. But this is a question of necessary time investment to implement vs. number of special materials that need special attention.

 

4 hours ago, greebo said:

I have to read up on the latest development on frob stages. Haven't there been discussions of getting rid of that frob stage and have it handled by the engine automatically? If a frob stage is necessary, then a button to create it would of course be very useful, agreed.

It's one of the things planned for 2.10, but until then frob stages will be necessary and not all mappers may upgrade immediately i.e. because of technical issues, so there might still be some value in being able to quickly add frob stages. There will also no doubt be many material frob stages floating about in custom texture packs long after 2.10 is out.

Link to post
Share on other sites

Regarding having every option available to avoid losing data when an existing material is passed through the editor: I think that is an important feature, but it also leads to two conflicting design goals. On the one hand, you need to save everything so no data is lost, on the other hand, many of those settings are pretty arcane and probably never used by ordinary users, so having them in the UI makes it seem overly complicated.

Would it be possible to decouple the UI and the data storage, so that while all settings would be stored internally when you load a material (and preserved when you save it out), you could still pick and choose what was actually exposed in the UI?

Link to post
Share on other sites
4 hours ago, OrbWeaver said:

Would it be possible to decouple the UI and the data storage, so that while all settings would be stored internally when you load a material (and preserved when you save it out), you could still pick and choose what was actually exposed in the UI?

I think that's already possible, yes. Since all the model data is in the CShader / ShaderTemplate pair, not everything needs to be exposed in a corresponding control.

I'm not religiously adding keywords just for the sake of having them, if we have some consensus about certain options to be left out completely I'm happy to throw them out. The corresponding keywords in existing materials would not be changeable by the UI, but very likely be preserved in the ShaderTemplate that will be written to the .mtr file. Setting those missing keywords will have to be done in a text editor (maybe even in that text definition box?).

Some settings are connected to or interfering with or can be combined with each other, like all the mask keywords, vertex colouring (colored vs. color vs. red, green, blue, alpha) and the various MACROs. So when exposing any of those, the related properties need to be there as well.

One more thought: while there are some keywords that are not widely unused (like isLightGemSurf which should only be used on the lightgem) and even dead horses (like renderbump/flat - I think nobody's using that anymore), the rest of them can actually be fun to experiment with and put to good use. Perhaps the editor could help them getting more surface coverage?

 

With regards to a possible basic vs. advanced editing mode, are there any suggestion lists from you guys what the basic editing mode should contain? I consider diffuse/bump/specular to be self-explanatory next to material type, description, noshadows, alphaTest, twosided, decal stuff. What else? Is blend mode selection already "advanced"?

Link to post
Share on other sites

I think blend modes with dedicated names tend (apart from blend none) to be pretty widely used and easy to learn: blend add for anything self-lit, blend filter for darkening effects like grime, blend blend as the basic choice for alpha blending. Other blend modes I'd consider more advanced, since you really need to know what the syntax means to work out how they interact with background colours: stuff like the blood decals that use blend gl_zero, gl_one_minus_src_color is quite non-obvious.

Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Link to post
Share on other sites
Quote

With regards to a possible basic vs. advanced editing mode, are there any suggestion lists from you guys what the basic editing mode should contain? I consider diffuse/bump/specular to be self-explanatory next to material type, description, noshadows, alphaTest, twosided, decal stuff. What else? Is blend mode selection already "advanced"?

To me is not easy to sugest what the basic section should have, because people using this tool, will be using it in diferent versions of idtech 4, with diferent basic requirements, so to simplify things it should support only the basic requirments of original idtech4 and obviously TDM. 

So imo yes blend modes, should be in the basic tab but if I may suggest, instead of using the OGL low level keywords, like gl_zero, gl_one_minus_src_alpha, etc, I suggest that they should be named in a more user friendly way, something similar to what photoshop does, you already have, add, blend, modulate and filter, that imo doing exactly the same thing is redundant, the engine has to support both for backwards compatibility but the material editor could force the usage of only one, perhaps filter?, then maybe invent names for other blend types that we may find in TDM materials or even Doom 3 materials that don't have a "name" assigned but use the low level gl keywords. 

based on this discussion this maybe the equations for photoshop blend modes (didn't tested them), also don't know if idtech4 supports all this blend modes using the gl blend keywords

multiply 	a * b
screen 	1 - (1 - a) * (1 - b)
darken 	min(a, b)
lighten 	max(a, b)
difference 	abs(a - b)
negation 	1 - abs(1 - a - b)
exclusion 	a + b - 2 * a * b
overlay 	a < .5 ? (2 * a * b) : (1 - 2 * (1 - a) * (1 - b))
hard light 	b < .5 ? (2 * a * b) : (1 - 2 * (1 - a) * (1 - b))
soft light 	b < .5 ? (2 * a * b + a * a * (1 - 2 * b)) : (sqrt(a) * (2 * b - 1) + (2 * a) * (1 - b))
dodge 	a / (1 - b)
burn 	1 - (1 - a) / b

next to blend mods the following imo are also some good candidates for the basic section;

surface type list:  wood, rock, grass, etc  (any way to assign custum surfaces?)

editor image : optional? perhaps use automatically the diffusemap?

description:  this one is totally optional in normal idtech 4, I didn't used it at all in my materials, but afaik it is required for TDM?

turn on or off shadows/selfshadows:

alpha on off

translucency

solid surface or not

two-sided or not

The rest of the global material keywords could go into the advanced section, or have a toggle next to the list that says "show all global keywords"?

Just my two cents. 

 

 

 

Edited by HMart
Link to post
Share on other sites
3 hours ago, greebo said:

With regards to a possible basic vs. advanced editing mode, are there any suggestion lists from you guys what the basic editing mode should contain? I consider diffuse/bump/specular to be self-explanatory next to material type, description, noshadows, alphaTest, twosided, decal stuff. What else? Is blend mode selection already "advanced"?

I would leave the blend modes in the Basic section because you've already got a dropdown for the common blend modes (diffuse/specular/bump) so you might as well have them all in there rather than having two separate dropdowns. However I would sort them by order of usage, e.g. [Diffuse, Bump, Specular, Add, Filter, ..., Custom] so the most useful selections would be near the top.

I'd also have all of the colour options in the Basic interface (rgb, colored, vertexColor) etc, along with probably alphaTest. I think the masks, depth hack, private polygon offset can go in the advanced section (although maybe mappers are using these more than I assume).

35 minutes ago, HMart said:

So imo yes blend modes, should be in the basic tab but if I may suggest, instead of using the OGL low level keywords, like gl_zero, gl_one_minus_src_alpha, etc, I suggest that they should be named in a more user friendly way,

That's not easy to accomplish. You'd have to make up a name not just for each keyword but for each pair of keywords (I count 36 combinations in total), and it might be far from obvious what name to use for many of the combinations (especially considering not everyone is a native English speaker). I think at the point where people are choosing the Custom blend option, they probably know exactly what operation they want and obscuring the technical details with vague terms like "Soft light" would just confuse things.

Link to post
Share on other sites

I certainly don't know enough about gl blend modes, the most I use is blend, add and filter, so if is hard to do that forget it.

I'm just saying that imo using a simple name, is better to understand for a artist, even if is just a vague descripting than gl_src_one, gl_dst_one (aka add), photoshop soft light maybe vague but imo gives a better idea of the final effect (or intended effect) than any gl blend keyword.  And for those that don't know english (that i assume are few here) the small name becomes a association with a effect, even if they don't know what the word means, and that is true even for the gl blend keywords but at lest the name would be shorter. 

So based on this discussion, perhaps the custom blend modes should be considered advanced? IMO only someone well versed on gl blending really knows how to mix and match the gl blend keywords, if not is a "throw mud at the wall and see what sticks" thing (but to be fair that is true even for the photoshop blends... :) ).    

Edited by HMart
Link to post
Share on other sites
23 minutes ago, HMart said:

I'm just saying that imo using a simple name, is better to understand for a artist, even if is just a vague descripting than gl_src_one, gl_dst_one (aka add),

I agree entirely, but I think ID already did that by using "blend blend", "blend add" and "blend filter" for the most common operations. Trying to make up a name for every other possible combination is a lot of work, and doesn't really add much value. As you correctly point out, those custom modes are for advanced users who know exactly what operation they want to specify, although they could still be made slightly more friendly by dropping the explicit OpenGL API names (i.e. "Source alpha" rather than "gl_src_alpha").

Quote

So based on this discussion, perhaps the custom blend modes should be considered advanced? IMO only someone well versed on gl blending really knows how to mix and match the gl blend keywords, if not is a "throw mud at the wall and see what sticks" thing (but to be fair that is true even for the photoshop blends... :) ).    

Right, it's just a question of whether it's worth having the Basic/Advanced distinction go as far as removing items from dropdown lists. If the switch between Basic and Advanced only controls the visibility of entire widgets (via tabs, or some other method), then the blend mode dropdown is going to be visible in both modes including its "Custom" entry (at which point you've got to have the src/dest blend mode widgets visible as well, although obviously they should be disabled if "Custom" isn't the chosen blend mode).

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...