Home Technical Talk

How to import mesh in to existing project in Substance Painter?

polycounter lvl 6
Offline / Send Message
ISUther polycounter lvl 6
Hello,

I am trying to figure out how to import mesh in to substance painter.
I all ready have one mesh imported there and done some painting there.
But now need to import teeth (all are as separate OBJ-s with UV-s)

Replies

  • engelmanna
    Options
    Offline / Send Message
    engelmanna polycounter lvl 16
    You can't add new meshes to an existing project. However, if you export your original mesh with your new mesh (teeth) as one obj/fbx), you can go to Edit -> Project Configuration and then reimport from there, substance will keep all your paint work from before and apply it to the same textureset of the newly imported mesh.
  • hansolocambo
    Options
    Offline / Send Message
    hansolocambo polycounter lvl 8
    "You can't add new meshes to an existing project". I believe you can and it can be really useful too.
    Three great ways to use what you'll find in Substance Painter's main menu : Edit -> Project Configuration. There you can reload the mesh(es) from your scene in progress.
    The first one refers to ISUther issue. The two others are damn useful in my opinion.


    1/ You already have some hand-painting done but you need to add a new object to an exisiting Substance Painter Project. Whether the new mesh you want to add to it shares the same UVs and/or textures doesn't matter. You go back to your other 3D app (Maya, 3DS Max, etc) and you re-export your whole scene with the new object added to it (I strongly advise FBX for many reasons). Then you go to Painter : Edit -> Project Configuration and import your new project mesh.

    - as long as you didn't move any part of the original mesh, all will work fine. You'll end up with your scene untouched + the new mesh. It  will use the same TextureSet if it shares the same texture (Material ID). Or you'll have a new TextureSet in the list.
    - You can freely re-organize the UVs Islands with 3D-Coat, 3DS Max's Unwrap UVW, etc and re-import that in Painter. Each and every one of the strokes you did will be projected back in place.
    - You can't move an object and re-import that modification in Painter ! If you did some hand-painting, you'll lose your strokes. If you did procedural layer fillings, you'll lose your masks and will have to redefine them.


    2/ You loaded a scene. Began to hand-paint it. But then one of your objects is hardly accessible (hidden behind another). Go back in your 3D App and create an instance of that object (don't move the original)  that you move far enough away from the rest of the scene. Then export the FBX, re-import it in Painter. When you'll paint on the instance, it will modify the original piece that wasn't easily accessible as both share the same UVs. I was so fucking happy when I figured that out.


    3/ You already have a scene hand-painted in Painter but would love to have a reference image in there to be able to pick colors using the Shortcut P without having to slide the eyedropper on another screen where your reference is, especially when you paint with a Wacom for example and would prefere ro always remain focused on ONE screen.

    - Go back in your 3D App. Create a simple plane and give it a new material with your reference image. Then place that plane, and eventually many instances of it (to make it convenient for you in Painter to pick colors when you rotate around). Then export this FBX with your original mesh + the reference(s) planes.
    - Import that in Painter (Always from Edit -> Project Configuration). Your original object will remain untouched. And you'll have a new one (the ref planes) with its own TextureSet. Now you can easily pick colors from a reference while comfortably staying in Substance Painter's main interface. Simply use  the Shortcut P instead of painfull having to open the Base Color Eyedropper, press and drag it around to pick a color from a reference opened in ACDSee, photoshop, etc on another screen.

    Cheers.
  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter
    Second poster disagreed with first, but neither are wrong. There is just some miscommunication. 

    You cannot load two separate .fbx/.obj files into a SP project. So if you exported a naked character model as one .fbx file, and you exported the characters clothes as a separate .fbx file, you will not be able to import the body model, and then also import the clothes.

    However, if you have the body and the clothes in a scene together in your 3d app, and you export them together as a single fbx/obj file, then you can work on them both in Substance Painter at the same time. 

    So then the question is, "How do I separate different meshes for convenience?" Obviously if your clothes are covering the body, how will you see to paint on the body?

    For this problem, there are a number of solutions. The above poster mention  a couple, but I would be cautious of duplicating/instancing meshes if you are working with lots of layers, high resolutions like 4k, or the meshes are pretty dense. Even with a beastly computer, you can get a lot of slow-down in SP pretty quick if you don't observe some good optimization practices. ABout that, search the programs documentation for "performance" for some clear guidance on how to keep the app running smoothly.

    Typically, my different meshes would have their own material defined in the 3d app. This means multiple texture maps will be output -- so there are considerations. If you must keep everything all in a single texture map, you'll find plenty of methods to accomplish that from Allegorithmics tutorials, documentation, and also searching forums like these. Here is one method I haven't seen mentioned, but I use sometimes:

    Usually I create my mask in SP from UV islands or mesh fill. That's a quick and easy way that doesn't require any prior setup, and works for most purposes. So what if, like in the example I mentioned, you need to paint the body which is hidden beneath the clothes, and yet you cannot hide the clothes via the texture set menu? Well, you can use mesh fill/uv island fill to set mask that will separate the parts you need, and then add an opacity fill to the part you need temporarily hidden. (it won't become transparent with the default shader -- you'll need to choose the shader that supports alpha channels) Then you can toggle that opacity fill channel as you need, and of course once you don't need it anymore you can delete.
  • hansolocambo
    Options
    Offline / Send Message
    hansolocambo polycounter lvl 8
    You're absolutely right BigtimeMaster, I indeed kinda missed the "all are as separate OBJ-s with UV-s" from the first post. As it sounded obvious that everything needs to be in a single fbx. My bad.

    About this example of a body that one needs  to paint beneath a layer of clothes. As far as I'm concerned I keep both Painter and Maya (or 3DS Max) open at all times. If I need to paint beneath clothes : I go back to Maya, select the clothes, move them of  let's say 1 meter to the right. Then I re-export the fbx. Update it in Painter. And there you have your body easy to paint. Or you make an instance of the body in Maya, export that and you can paint the body and still keep an idea of what it looks like with clothes on top of it. I find it hard to believe that masked clothes use less GPU/CPU than a translation of a part of the mesh. And it sounds so much easier too ;)

    The fact that Allegorithmic gave us this possibility : to update the mesh when it's already been painted, is quiet an amazing piece of coding. I personally am overusing it.
    We users can go back in our 3D APP at anytime and : move around or resize UV Islands, weld or unweld vertices !! , move 3D elements around, create instances, etc, etc. And back in Painter, we can update the fbx and each and every pen stroke will be processed and projected back in its proper place. It's still, even today, such a powerful possibility, that it's really worth testing how far you can go with it :
    - To isolate a glove by moving it apart from the rest of a body for example, making it easier to paint,
    - To paint both sides of a pillar for example : create a 180 rotation instance of the pillar and put it next to the other one. This way you can paint both sides without having to rotate the camera and the light around it,
    - To create a new plane with a specific crop of the reference picture that you put close to an element of your scene to make it easy to pick colors from within the 3D Main window
    - To add a new piece of geometry to the original scene with a new texture set,
    - etc, etc.
    Possibilities are huge when you begin to think about it. And some of them save a lot of time.
  • Alex_J
    Options
    Offline / Send Message
    Alex_J grand marshal polycounter
    Your method does sound better. 

    I started the opacity method before I realized how easy it is to adjust model in 3d app and reupload, so I just kept doing it that way. Stupidly, I have been doing like you describe to adjust UV's and minor tweaks to meshes, but I never realized that I could easily separate meshes and just move them back in place later.
Sign In or Register to comment.