Substance Painter 2018

Substance Painter 2018

View Stats:
KennyT Sep 24, 2018 @ 9:37pm
Part of a mesh transparent. Is it possible?
hi, is it possible to make some part of a mesh transparent? Like a cube, one face is blue color but not transparent, the other faces transparent. or does it has to be separate mesh?

And how to make this half transparent half colored mesh work in UnityEngine?
Last edited by KennyT; Sep 24, 2018 @ 9:38pm
Originally posted by JKGames:
Yes, you can do this. In substance painter you use a combination of the Opacity option (0 indicates entire transparency while 1 indicates full visible) while using the Alpha Blending shader. You can then use masks to assign different opacity values across the mesh.

In Unity to get transparency with the standard shader, you need to set the Rendering Mode (right above where you assign materials) for the shader to Fade or Transparent. Fade typically yields better results, but you can experiment to see which one works better for your situation.

However, as for transfering this to Unity, because the way unity works with transparency in its rendering modes, its preferable to use multiple materials for the mesh. Even if you have variable opacity painted into the mesh, using a fade/transparent rendering mode for Opaque style materials tends to produce bad results. As such, it is best if the transparent parts are assigned a different material than the standard parts of the mesh. The standard mesh parts use the Opaque renderer setting while the transparent parts use the Fade or Transparent renderer setting.
< >
Showing 1-3 of 3 comments
The author of this thread has indicated that this post answers the original topic.
JKGames Sep 25, 2018 @ 2:09pm 
Yes, you can do this. In substance painter you use a combination of the Opacity option (0 indicates entire transparency while 1 indicates full visible) while using the Alpha Blending shader. You can then use masks to assign different opacity values across the mesh.

In Unity to get transparency with the standard shader, you need to set the Rendering Mode (right above where you assign materials) for the shader to Fade or Transparent. Fade typically yields better results, but you can experiment to see which one works better for your situation.

However, as for transfering this to Unity, because the way unity works with transparency in its rendering modes, its preferable to use multiple materials for the mesh. Even if you have variable opacity painted into the mesh, using a fade/transparent rendering mode for Opaque style materials tends to produce bad results. As such, it is best if the transparent parts are assigned a different material than the standard parts of the mesh. The standard mesh parts use the Opaque renderer setting while the transparent parts use the Fade or Transparent renderer setting.
Last edited by JKGames; Sep 25, 2018 @ 2:09pm
JKGames Sep 25, 2018 @ 2:35pm 
btw, the other problem that you run into with transparent meshes is the nature of normals. By default, the Unity Shader will render only the outer normals, which means that all of the inner faces simply don't show up. In the case of your cube example, while you are looking at the outer faces of the cube, you would see the cube. If you looked through the transparent part of the cube however, all parts of the cube simply wouldn't show since the inner faces of the cube aren't set to render.

Thus, if you are making a mesh partially transparent, you will need to either get a double sided shader, or take into account how to deal with this transparent mesh part. In the case of the cube for example, you could create a thick mesh or copy all parts of the cube, duplicate, and then reverse the normals of the duplicated section to get a transparent cube that works as you want. This would then result in the desired appearance when looking through the transparent face of the cube, rendering the other inside faces.
KennyT Sep 25, 2018 @ 8:47pm 
Originally posted by JKGames:
btw, the other problem that you run into with transparent meshes is the nature of normals. By default, the Unity Shader will render only the outer normals, which means that all of the inner faces simply don't show up. In the case of your cube example, while you are looking at the outer faces of the cube, you would see the cube. If you looked through the transparent part of the cube however, all parts of the cube simply wouldn't show since the inner faces of the cube aren't set to render.

Thus, if you are making a mesh partially transparent, you will need to either get a double sided shader, or take into account how to deal with this transparent mesh part. In the case of the cube for example, you could create a thick mesh or copy all parts of the cube, duplicate, and then reverse the normals of the duplicated section to get a transparent cube that works as you want. This would then result in the desired appearance when looking through the transparent face of the cube, rendering the other inside faces.

Thanks for your help! because I always wonder if i can just use one material for a whole car model, because car has a lot of glass like window, car light glass and etc. I tried it once with one texture on the glass jar with sticker on the glass, when i switch the unity render setting to fade or transparent, the result is not how i imagine it would be, the sticker also become transparent, so i end up separating the sticker and the jar. :steamfacepalm:
< >
Showing 1-3 of 3 comments
Per page: 1530 50