Start a new topic
Answered

How to get good looking materials in Vortex that match other engines?

I've heard that Vortex is not using a real PBR shader and that it's being "faked". What I keep hearing over and over is that glossiness doesn't work right, and models imported into Vortex lose their "shine". I did some experiments and it seems like there is some kind of real problem here.


We are using Substance Painter, which is rapidly become an industry standard if it isn't one already for generating PBR textures that will work in any conceivable engine. So my first question is, if Vortex is not using PBR than how are we supposed to generate consistent graphics for Vortex? Are you able to provide us with a shader that works in Substance Painter so we can see what our models will look like in engine?


So I decided to go ahead and do a series of experiments to make a workflow that generates consistent results.


1) Here is a fully reflective object (Diffuse=Black, Specular=White, Glossy=1.0) as it appears in Substance Painter using their built in PBR Spec/Gloss shader (this is exactly how it I would expect it to look) 

image


2) Next I imported the model into Vortex and turned on Environment / Environment Input using default level of .300


image


So you can see the environment is not fully reflected, but it's there and if there were more details such as clouds it might actually look as shiny as it is supposed to.


3) Since the main factor in shininess is having something to reflect, I figured the problem could be replicated in Substance Painter by using the same sky dome colors. I created a custom environment texture to load into Painter and here is the result:


image


As you can see it looks very dull with the Vortex Skydome, although Painter is correctly reflecting it 100%.


4) Finally I went back into Vortex and tried to tweak the Environment Input to get something close to 100% gloss but it washes out if you set the input too high. This is using .900 for the Environment Input. It's about as close as I could get:


image


Now I have to try this with a real model.


So I'm wondering what other people are doing to get their models looking right. I'm happy to share my insights and results of my experiments. Ultimately we need to get consistent material settings across our entire world. Should we be setting the environment input to 1.0 and tone down the Sun? Or is a new shader with true PBR on the way? Or can we have a version of the current shader to use in Substance Painter?


Best Answer

The shader that we use is not a PBR one, that's correct. It's in our roadmap to improve the lighting; there's a lot of items to implement to get a fully PBR renderer, but we'll eventually get there.

 

To answer your question, though we do use Substance Painter to help us develop 3D assets, it's not an official part of the Vortex Studio workflow. As such we don't have a Painter shader to replicate our engine's looks. The process we use is a Spec-Gloss workflow for now; I wish we were at the true PBR material state, but like I said that's still in development. Right now, since we're dealing with really complex scenes, often we do not actually use a spec or gloss texture for the respective slots to save on time and memory.

 

We manually tweak the factor settings that you can see below. Here is a sample of how one of the materials is set up (my thanks to Lead Art Deven Winters for providing the captures).

 

image

 

Painter Set, we export everything for when we will revisit this workflow of using just the factors.


image


Export from Painter 2017:


image



image


Hope this helps! 




Answer

The shader that we use is not a PBR one, that's correct. It's in our roadmap to improve the lighting; there's a lot of items to implement to get a fully PBR renderer, but we'll eventually get there.

 

To answer your question, though we do use Substance Painter to help us develop 3D assets, it's not an official part of the Vortex Studio workflow. As such we don't have a Painter shader to replicate our engine's looks. The process we use is a Spec-Gloss workflow for now; I wish we were at the true PBR material state, but like I said that's still in development. Right now, since we're dealing with really complex scenes, often we do not actually use a spec or gloss texture for the respective slots to save on time and memory.

 

We manually tweak the factor settings that you can see below. Here is a sample of how one of the materials is set up (my thanks to Lead Art Deven Winters for providing the captures).

 

image

 

Painter Set, we export everything for when we will revisit this workflow of using just the factors.


image


Export from Painter 2017:


image



image


Hope this helps! 



This is very helpful, thanks. Especially confirming the status of the (almost PBR) shader and that you are using Painter.


It's interesting that you are using the Gr texture output because when we tried that we got maps that seemed to be incompatible with Vortex, specifically the AO and Glossy map. Using the "Gr" output node as it is shown above resulted in a map that just appeared black in Vortex. I'm also wondering about the "A" alpha nodes in the Specular / Normal slot. What would those be for?


To get textures that worked properly I had to make a custom output configuration that looks like this:


image


Note that the Gr node has been replaced by an RGB node (in Grayscale mode). We had to do that or else the map appeared completely black when loaded into the Vortex material. I concluded that the Vortex importer simply doesn't support 8-bit PNG which is what you get from the Gr node (pretty sure).


Also note the lack of Alpha channels in the Normal map, etc  - I'm really curious what you could be using that for because it doesn't make sense to me for there to be an alpha channel there.


Just for completeness, here is what we are using for our Texture set channel set:

image


Note that the Height channel gets automatically added into the Normal channel and if we want transparency we add an Opacity channel (and also use the PBR Spec/Gloss shader with Alpha downloadable from substance share so we can see transparency in Painter: https://share.allegorithmic.com/libraries/1436 )


Thanks again Marc-Alexandre for your help and looking forward to your thoughts on the above.



I'm not a 3D artist so I went and got comments from our Art team. They said we don't use Alpha with a Normal map, but there exists a Metal Roughness for PBR that includes an Alpha. It must be recent in Painter; in the past, our lead had to do alphas in Photoshop and export those off as mask for UE3.


I don't know if it's new but yes in Painter you can combine your metal/rough or spec/gloss into a single texture using, for example, the RGB for Spec and the A for gloss. It just depends on what engine you are going to. Unity has its own flavor, as well as all the others. That's what all those nodes are about in Painter's Texture Export Config in the screenshots above, and that's why they have so many different presets. I actually have two presets for Vortex, one with Opacity and one without.


But based on the Vortex material editor having slots for each map individually, it would seem it doesn't use any of those tricks (maybe internally it does), but the material editor wants a separate texture map for Albedo, Specular, Gloss, Normal, AO. The only combined map is the Albedo which uses the A channel for Opacity.


So I'm still not understanding why your screenshot above has A channels added to the Normal Map and Specular. And I'll have to verify whether the Gr node really works for the Glossy map. Maybe it was just something we were doing wrong that day. Something to try this weekend.... :)

Okay it appears the Gr node does work after all for the Glossy map. Not sure why we had so much trouble last time, but here it is working (I just put a noise map in the Gloss channel, turned up the specular a bit, turned down the albedo a bit)


image


And wow, just realized I can paste images into the post without even saving out a file. Love that!!! :)


image


Thanks for your help! I'm sure we'll have more questions once we start building our city. Coming up with a way to automate material/texture imports will probably be the next challenge! :)


1 person likes this
Login to post a comment