Jump to content
Dante Unbound: Share Bug Reports and Feedback Here! ×

Does anyone have a node setup for rendering Warframe models in Blender?


DragonBreath75
 Share

Recommended Posts

I'm looking to make preview images for a tennogen helmet I made, and I'd like to render it in Blender and possibly pose it. Does anyone have a node setup for applying Warframe's texture files to the model for me to reference? I'm somewhat new to Blender and have been running into a lot of issues figuring out the correct node setup.

Link to comment
Share on other sites

I have made a simple material/shading and light setup in Blender v2.80 using Saryn and her default textures. everything is simply connected to their correct nodes except the normal map as Blender uses openGL to render normal map(I dont know if we can change to DirectX mode in Blender so just used the nodes to do it) and Warframe engines uses DirectX so only thing is I have done is invert the green channel of the normal map in the node setup to be seen properly in the Blender. here is the link to the file: https://drive.google.com/open?id=10Z61b9Uw2drC4Vc5YM4jAt0IE8Ii_T0l

Edited by A1stLight
  • Like 1
Link to comment
Share on other sites

22 hours ago, A1stLight said:

I have made a simple material/shading and light setup in Blender v2.80 using Saryn and her default textures. everything is simply connected to their correct nodes except the normal map as Blender uses openGL to render normal map(I dont know if we can change to DirectX mode in Blender so just used the nodes to do it) and Warframe engines uses DirectX so only thing is I have done is invert the green channel of the normal map in the node setup to be seen properly in the Blender. here is the link to the file: https://drive.google.com/open?id=10Z61b9Uw2drC4Vc5YM4jAt0IE8Ii_T0l

Thank you for this! This setup is great, but how would this be set up to work with the tint mask in order to change the model's colors?

Link to comment
Share on other sites

19 hours ago, DragonBreath75 said:

Thank you for this! This setup is great, but how would this be set up to work with the tint mask in order to change the model's colors?

I tried to find the ways to deal with tint mask in Blender, but its not working . To work with tint mask, there needs to be a way to select a specific color from the map and then use it as a mask to change color and blend it with diffuse. Tint mask are better with texture creations software like substance painter, photoshop ,etc which allows to pick colors as a mask.

  • Like 1
Link to comment
Share on other sites

Wouldn't you have to apply the colors you wanted in something like photoshop, mix the albedo with it (i dont know what that process would be called), then apply it as a base color like you did in the blender file? It would be a pain to do, but there really isn't another way, unless someone was willing to figure out what node combinations do it in blender.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Oomatu said:

I use Substance painter, which allows you go flip the green channel when exporting the normal. I have no clue how to do that within blender. 

Add a Convert>Separate RGB node in.

Plug the normal texture into that

Place a Color>Invert node and stick the G output into it.

Then add a Convert>Combine RGB node and make the normal R, B and inverted G as inputs.

Then, bake it onto a plane as that.

Edited by iLightning13
  • Like 1
Link to comment
Share on other sites

14 hours ago, Oomatu said:

I use Substance painter, which allows you go flip the green channel when exporting the normal. I have no clue how to do that within blender. 

The Blender file I shared already have nodes setup for the normal map to look correctly in blender, If you check it I have group the normal map nodes for the green channel flip.

  • Like 1
Link to comment
Share on other sites

I guess there is a new question I could ask here. What other options are there to make good preview pics for Tennogen items like I see all over the workshop? I'm still looking for a definitive node setup for a colorable Warframe model in Blender, but Blender seems to have a few snags when it comes to properly displaying a colorable Warframe model.

Edited by DragonBreath75
Link to comment
Share on other sites

23 hours ago, DragonBreath75 said:

I guess there is a new question I could ask here. What other options are there to make good preview pics for Tennogen items like I see all over the workshop? I'm still looking for a definitive node setup for a colorable Warframe model in Blender, but Blender seems to have a few snags when it comes to properly displaying a colorable Warframe model.

Well Blender is good for rendering and also you can texture in it but can be difficult for tint masks related stuffs. 

there are other options as well like

For rendering preview images:

  • Unreal Engine 4 (free) - a game engine, it does rendering in real-time and quality is great but will requires quite a bit of learning process.
  • Marmoset toolbag (paid) - its sort of same as unreal engine but only for rendering, also can do baking. its quality is very good and it is quite simple software.
  • Unity (free) - its a game engine same as unreal engine and so requires a bit of learning process.
  • Sketchfab (online website) - it is simple and quality is decent.
  • Substance Painter (paid) (Iray mode) - yeah painter have a rendering mode, it is simple and very good but not enough controls.
  • Warframe TennoGen Tool - lastly its the tennogen tool

For texturing and making tint mask stuffs:

  • Substance Painter (paid) - its a great texturing software and can make tint masks easily, you can change colors accordingly with tint mask , and also DE provide a shader for tint mask.
  • Photoshop (paid) - you know it.
  • Gimp (free) - same as photoshop.
  • Krita (free) - same as photoshop.
  • Quixel Mixer 2020 (free) - coming soon, its going to be same as Substance painter!
  • Like 1
Link to comment
Share on other sites

https://drive.google.com/file/d/1KTwAxD9jl_j3rCOpYVF2eHIXJlSsDLM6/view?usp=sharing

try this out, I used the one A1stLight posted, and added the emissive and and tintmask editing into it. It is in compositor, so you will have to change the save file everytime you wanna change another part, or just duplicate all the nodes for each tintmask you plan on using. Blender will refresh it once you render the compositor, then switch from render to solid then back, (dunno why), but it all works for the saryn test. I doubt there is a way to do scrolling emissives though, so i guess just use the tennogen submitter thing to see it there.

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Alright, I've only recently started learning blender, and I'm still quite new to all this. I do think I can add a few things to this discussion, but please correct me if you feel I'm saying something wrong.

First of all, thanks to @A1stLight and @supremeloser123 and the others for providing example project files and explaining things. I would've had no clue about remapping the green channel in the Normal map if not for this thread. Although @supremeloser123 you might want to do: File > External Data > Pack all into .blend as I was unable to follow your instructions because some files are not included in that .blend.

 

Also note, so far I'm only playing around with Excalibur. Everything was done in blender 2.81.

I think one of the problems with a proper node setup is that the guys at DE are using both a "Metalness" and a "Specular" workflow, and it depends on the target they're modeling[1]. That seems to be problematic, because it looks like blender's Principled BSDF shader is made for a "Metalness" workflow[4][5][6].

From what I've gathered, one telltale sign for a "Metalness" workflow seems to be that the "filename_s" texture is practically nothing but black and white (non-metal aka "dielectric" or metal)[3][4]. Excalibur's looks like that, so good for me, ymmv.

Specifically, @A1stLight I think that plugging a texture into the Specular socket is not the best idea, even if they used the "Specular" workflow in that case, see footnote [6] at the bottom. Although I guess the results aren't too bad even if you do that. So far I haven't found out how to properly use textures that were created with the "Specular" workflow in blender, however.

 

Things I did to set up my project:

Spoiler
  1. Add a subdivision modifier to the meshes, makes it look better: Properties > Wrench Icon > Add Modifier > Subdivision Surface (default values are fine)
     
  2. Environment lighting:
    • Disable the default light by going into Object Properties > Visibility and turning off Show in Viewport and Show in Renders.
    • In Viewport Shading set to Material Preview select city.exr (first one from the left. Not essential to use this, but I feel it has the best neutral lighting)
    • In the Shading Workspace select World from the dropdown, delete the Background node, then add and connect a Texture > Environment Texture to the output. Select the city.exr texture, which you can find in your blender installation folder (subfolder datafiles\studiolights\world\ to be exact. With this, rendered images have even lighting and actually match the Material Preview, which I find really helpful.
       
  3. Import Excalibur model[2], scale it, basic node setup with textures, which I learned from you guys (thanks again). Exception: I'm using the Metallic socket and not Specular, as explained.

 

Now on to the two things I specifically wanted to mention:

1) With my setup, the metal parts would look too shiny with the provided textures. That may very well be a problem with my lighting (and me not having a clue). An easy way to fix it is to add a Map Range node between the texture and the Roughness socket. I've found a value around 0.300 and 0.400 to look good for this (note that I've renamed the textures, but those are the same as yours, specifically, Body Metalness is the "filename_s" texture):

8LPTfRs.png

 

2) I think I've found a way to apply the Tint Mask directly on the texture, but it's a bit of a mess. Hope my explanation is clear enough. Also, not sure if this is the final version yet, but looks promising.

The idea is to separate out the individual channels from the mask (Separate RGB), do the masking through the alpha channel of a ColorRamp, apply a tint with a MixRGB Overlay, then combine it all back together with the provided diffuse texture.

Note: I'm only showing alpha and red channel from the mask here, and if you want it to be completely correct, you'd also have to subtract the overlapping parts from each other somehow.

Alpha can be seen as the "topmost" (smallest and overlaps with green and red), so that's a good one to start. Here's how my nodes look just for this one channel:

3kCxvXu.png

  • Texture file name is: ExcaliburBodyPBRTintMask_d.png
  • Because each channel encodes separate information, a Separate RGB node is required (see below), and the Color Space needs to be set to Non-Color.
  • The ColorRamp goes from fully black with 100% alpha to 50% grey with 0% alpha.
  • Make sure to connect the nodes exactly as shown, and set the Fac of the colour overlay node to 1.000.
  • The RGB node just serves as a colour picker.

As you can see in the preview, this is colouring just the tiny bands from the alpha channel with the chosen colour.

To include the other channels, duplicate the nodes and chain the whole thing together (also, maybe add some kind of subtraction for overlaps, as mentioned, but I haven't done that):

Spoiler

QOWn5xk.png

 

Footnotes/Resources I've been using:

Spoiler

[1] Warframe Texturing Guide  —  https://www.warframe.com/steamworkshop/help/index.php?page=texturing-guide

[2] Warframe Content Files and Examples  —  https://www.warframe.com/steamworkshop/help/index.php?page=content-files-and-examples

[3] Specular vs Metalness Workflows for PBR Shading in Blender  —  https://www.youtube.com/watch?v=mrNMpqdNchY

[4] How to Use Blender's New "Ultimate" Shader: The Principled BSDF —  https://www.youtube.com/watch?v=4H5W6C_Mbck

[5] "To my knowledge, the Principled BSDF shader uses the metallic workflow."  —  https://blenderartists.org/t/can-the-principled-bsdf-shader-be-used-with-a-specular-workflow/699467/4/

[6] Principled Shader: Rename “Specular” socket to “Specular Level” to prevent confusion —  https://devtalk.blender.org/t/principled-shader-rename-specular-socket-to-specular-level-to-prevent-confusion/4588

Edited by Kontrollo
improved
Link to comment
Share on other sites

Quick follow-up: turns out I had the other textures (the non-diffuse ones: normal, specular, i.e. "metalness", roughness) set to sRGB, and that's something one shouldn't be doing. Trying it now with all of them set to Non-Color, and maybe the Map Range node is not required after all, or can be set to a different value. Roughness is the primary way to give materials a different feel according to the guide, so keeping that in only for slight adjustments might still be beneficial. Need to play around with it more, I guess. 🤔

From the guide: "This controls how rough or smooth a surface will feel and conveys the history, character, and backstory of a material. This map requires the most artistic judgement!"

budnQrn.png

Edited by Kontrollo
screenshot
Link to comment
Share on other sites

@Kontrollo Yeah I probably should have done that, but my process was similar to yours, except that i did mine in compositor and shader, while you managed to do it entirely in shader. I will be able to come up with a better guide soon, but imma about to turn in a submission, so after I'll look into it. I recommend that if you wanna make something for tennogen, probably spend the most time in zbrush, as I already feel like I could have done more on my submission. 

Link to comment
Share on other sites

9 hours ago, supremeloser123 said:

@Kontrollo Yeah I probably should have done that, but my process was similar to yours, except that i did mine in compositor and shader, while you managed to do it entirely in shader. I will be able to come up with a better guide soon, but imma about to turn in a submission, so after I'll look into it. I recommend that if you wanna make something for tennogen, probably spend the most time in zbrush, as I already feel like I could have done more on my submission. 

Ah no, I'm not creating any Tennogen things, just doing this to learn blender and the ins and outs of modeling. But thanks, you never know and I'll keep that in mind.

 

In the meantime, I've looked a bit more into the PBR workflows, and I think this guy's post here makes it clear that the Principled BSDF shader is really only meant for the "Metalness" workflow.

Now I've also downloaded the Saryn model and had a look at its textures. The telltale sign here that Excalibur and Saryn were made with different workflows is the "filename_s" texture (Excalibur: "Metalness", Saryn: "Specular"):

YF8kF2F.png

For the "Metalness" workflow this is pretty much just a mask (white = metal, black = non-metal), whereas in the "Specular" workflow this encodes, well, specular data. Incidentally, metals are also white because they have very high specularity compared to dielectric materials.

But the workflow requires a quite a bit different node setup, it seems, i.e. a combination of several shaders is required. I've been playing around a bit and the following gives me good results so far. It's a combination of Diffuse BSDF and Glossy BSDF, with the additional textures applied where fitting. Again, note the Color Space settings:

Spoiler

BupjgZ4.png

This doesn't yet have the Tint Mask in it, but it's a start, I'd say. I took the same steps as with Excalibur above (Scale, Environment lighting texture, Subdivision Surface Modifier). Here's a quick Cycles test render, which looks decent already imho:

Spoiler

pW0Twks.png

 

Anyway, I'd wager there's still more to a proper setup for the "Specular" workflow. I'll investigate that some more, but at least this seems like a good basic setup, and it doesn't abuse the Principled BSDF for something it wasn't meant to do.

Link to comment
Share on other sites

Okay so ive done a bit of stuff, and it isnt perfect, but it'll work for now. The issue with the tintmasks is that sometimes the red layer or green layer covers the entire image, and so that tends to mess it up. 

TUTrZih.png

shown here is the split rbg and alpha each going into a color ramp, one side black/alpha and the other side the color you want that channel to be (the color that appears on the frame). Then all 4 are added up with the add nodes. It becomes an issue here when colors start to overlay weirdly. There should be a way, but honestly its a bit rough, the colors may be separated correctly, but the shader editor wont really take in alphas, so if you want a more compact setup that doesnt need you to troubleshoot, maybe the compositor has a way to do it. 

PgB5as8.png

The next bit merges the diffuse and the tint together. Its just a multiply, but it will have trouble when there is still black in the tintmask, like with excalibur. You'll have to section off the black, then use it as a factor then connect those nodes into an overlay, but swap the 2 color nodes around. Its a pain, but this will be useful in making tennogen because in the guide you are allowed to use black to signify that the albedo will be the only factor in determining the color there. (it'd be nice if someone would confirm that). 

hjBkIzp.png

The last 2 images are quite easy to understand. The specular, roughness and normal are non color data and are connected to the principled bdsf. You can use some mix shaders and input the roughness and specular into different shaders, but only excalibur has an issue with it, and his shiny parts are very shiny, so you can either test out different shaders, or put in a color ramp in between it and its input to lower how shiny it is.

AVgnovV.png

Lastly the emission image can be inputed into an emission node, allowing you to blow the scene with just emission. then you just mix node it with the principled bdsf node

CcsYhja.png

It kinda sucks that there are a couple of frames that have special parts in them, I just dont know if they are in the scope of the shader editor or if there is stuff lacking between blender and the program they use. (maya/3dsmax? I dont have either) Hopefully all the files i used are hooked up, you can mess with it here.

Edited by supremeloser123
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...