Blender Advice for UV and Texture Painting

chris the strangerchris the stranger Posts: 132
edited June 2019 in The Commons

NOTE: This topic started as an inquiry about affordable or free UV painting programs, but thanks to some very helpful users, it's become a great resource for learning the texture-painting workflow in Blender.  I've updated the title to reflect this, while leaving the the original posts intact. Hopefully this can help others who are new to the software.

OLD POST: Some assets I purchased had some very jarring seams, that I did not notice on the product page.  It's particularly noticeable because I'm using some toon shading materials, and rendering the images in a cel-shading style that uses discrete separations of colors.  Templates for these particular products were not included, and thanks to (I think) JPG artifacts, my attempts to create my own templates result in some stray white pixels showing up.

I'm looking for the cheapest, or perhaps free application that would allow me to both paint over an existing texture, as well as see the results on the object in real-time.  So, something like Substance Painter is out of the question.  I heard mention of a program called UVMapper, but all I could find online was an old program with a professional version that could not be purchsed.  Is there anything out there for a non-3D artist like myself that would let me deal with this one very specific issue?

Post edited by chris the stranger on
«1

Comments

  • AllenArtAllenArt Posts: 7,172

    Blender is probably going to be your best bet.

    Laurie

  • chris the strangerchris the stranger Posts: 132
    edited May 2019

    Thanks. Now one quick question: how do I go about importing my DSFs? Is there a special plugin for sending DS content to Blender that I hid in the DS installer, because I didn't think I'd be using a 3D modeling program?

    Edit: I may have found what I'm looking for: https://blenderartists.org/t/daz-importer/684697

    Post edited by chris the stranger on
  • jestmartjestmart Posts: 4,449

    You export the model out as a wavefront object.

  • Well, that was fun. Exported the entire character when I thought it'd just be the pants.  Couldn't help but smile at that when I saw him in Blender, lying flat on the ground. "Live and learn."

  • AllenArtAllenArt Posts: 7,172
    edited May 2019

    You only need to export a wavefront object, not a dsf since you only need the object to paint on. The resulting texture will work fine on your character in DS. There are import options in Blender as well to switch the Y and Z axis (in Blender Z is up when it's pretty much Y is up in everything else, including DS). If you want to export just the pants, hide everything except the pants in the scene tab by clicking the eye to the left of the item before exporting.

    Laurie

    Post edited by AllenArt on
  • After spending dozens of hours learning the horribly obtuse UI of Blender, banging my head against a walltrying to figure out how to paint multiple layers on an entire imported object, and some other stuff as well...I finally managed to make my own texture, for the pants that had the ugly crease going down the outer side of the leg.  And I ended up with a thicker, darker, even more blatantly obvious crease going down the outer sides of the leg, despite how it appeared in Blender. :\

    The product in question is Rogue Hunter for G8M, and as of now the only solution I have is "load a solid color material with no texture."  Don't know what else I can do, but maybe find new pants. That would probably result in me needing to find new boots as well, or getting really good at editing geometry.

  • AllenArtAllenArt Posts: 7,172

    How about you post a screen shot of this "crease" because I see nothing but smooth in the promo renders.

    Laurie

  • Lissa_xyzLissa_xyz Posts: 6,116

    You could also take a look at Armor Paint. I believe it's a one-man dev team, but he continues to work on it and make decent advancements all the time. He'll probably get UDIM working properly before Substance does. lol He currently sells it for 16 euros on gumroad (little less than $20 usd).

    https://armorpaint.org

  • I made a post about it in Technical Help

    https://www.daz3d.com/forums/discussion/330571/texture-seams-in-low-resolution-renders#latest

    Seems like an issue that potentially results from texture compression during the optimization phase. I haven't seen this happen in other products where I've done low-resolution renders, which makes this one case feel a little strange.

  • Silent WinterSilent Winter Posts: 3,804
    Pixolygon said:

    You could also take a look at Armor Paint. I believe it's a one-man dev team, but he continues to work on it and make decent advancements all the time. He'll probably get UDIM working properly before Substance does. lol He currently sells it for 16 euros on gumroad (little less than $20 usd).

    https://armorpaint.org

    ^I'll second this - once you support it, updates are free. Currently on v. 0.6 and added the ability to paint on 2D map as well as 3D model. The next update will include tri-planar mapping too, which helps with seams in certain models. It's still a ways behind substance painter, but it's catching up.

  • Silent WinterSilent Winter Posts: 3,804
    harrcj101 said:

    I made a post about it in Technical Help

    https://www.daz3d.com/forums/discussion/330571/texture-seams-in-low-resolution-renders#latest

    Seems like an issue that potentially results from texture compression during the optimization phase. I haven't seen this happen in other products where I've done low-resolution renders, which makes this one case feel a little strange.

    replied in that thread with more detail - could be a padding issue (if not, I'm stuck)

  • I'm going to have a serious look at Armor Paint.  It makes a lot more sense for me to invest in a program dedicated to a specific purpose, than to spend a whole lot of time learning the ins and outs of a new 3d-modeling suite.  There may be other reasons for me to learn Blender, but for now, I have to keep a close eye on scope.

  • chris the strangerchris the stranger Posts: 132
    edited June 2019

    And now I'm lost. :\

    The most I could figure out in Blender is that, if I wanted to paint a texture on an OBJ with multiple material groups (is that the right terminology?), I need to select every component in the scene separately, go to each of said component's materials, assign a new image texture to each material...go to Slots at some point to add a paint layer, that should be there after I click on the "New" next to the image bar and assign a name + properties...

    I feel like I'm doing this all wrong, or that there's something I'm missing that would be obvious to an experienced 3d artist.  I thought Armor Paint would be a lot more intuitive, but it turns out I was wrong. I was looking at the Southern Noble outfit in the attached image. Is there an easier way to paint on something like, "belt" or "leather vest" or "sleeves" without having to assign a material on every associated body part?

    Edit: I guess another question would be, is it possible to separate this set by regions in Armor Paint? So far all I can do is this (Attachment 2)

    blender.png
    1920 x 1040 - 259K
    ArmorPaint.png
    1920 x 1040 - 639K
    Post edited by chris the stranger on
  • Cris PalominoCris Palomino Posts: 11,898

    What product are you working on? How many maps does it have in the Surfaces tab in Studio? Can you show a screenshot? Are you importing the OBJ into Blender where Split is not the chosen option in Import OBJ settings?

  • Cris PalominoCris Palomino Posts: 11,898
    edited June 2019

    Maybe this will give you some clues for Armor Paint.

     

    https://armorpaint.org/manual/#/

    Post edited by Cris Palomino on
  • You're not doing it all wrong, and it's often not obvious!  It's not easy to find answers if you are unfamiliar with the terminology.

    WRT Blender, you don't *need* to mess with textures (though calling it 'Texture Painting' might suggest that) unless you actually want to use a texture as a brush.  I would steer away from that at this stage as it just complicates matters.  You *do* need to create an image to paint on for each material you want to paint.  (You can use existing images of course, including ones you have painted.)

    You will have to paint each object separately unless they share a material; in that case, you can paint an image on one object then re-use the material on another object, or use the image you have painted as part of the material on another object (subject to how the object shapes differ!).

    I will try to post some screenshots to illustrate the above a bit later.

  • Thanks Cris Palomino, but unfortunately I think the video did more to led me to buying the application, without fully understanding what was going on.  He made it look so easy and straightforward.  The outfit I had imported was Southern Noble Outfit for G8M.  I'm still pretty confused about the meaning of the terminology - groups, nodes, surfaces, etc. I'll attach an image of my export and import settings, maybe that would be a good starting place.

     

    OBJ Export.png
    451 x 504 - 18K
    OBJ Import.png
    239 x 295 - 12K
  • I may have had an epiphany earlier this morning.  For a single object that has several separate 'Groups?' 'Regions?' 'Materials?' 'Nodes?' -- maybe what I should do is:

    • Open Geometry Editor in DS
    • Select By Surfaces (Okay, so Surfaces refers to each 'component' of the outfit, Regions are generalized body parts, and Face Groups are more specific body parts).
    • Hide everything except desired surface.
    • Export OBJ
    • Do this for all surfaces.
    • Import a whole bunch of OBJs (into Armor Paint)
    • Select Mesh I want to paint on, paint away.

    It occurred to me now, that Blender might be doing this automatically (looking back at the Scene menu), but it seems to be splitting everything up based on Face Groups.  That's where things get confusing for me. It would make so much more sense were it populated by'Belt, Flaps, Leather Vest, Shirt, Sleeve, Sleeve Filler, Sleeve Leather'.  And maybe there's a way to split it up that way that I don't know about...but I'm going to try my hunch with Armor Painter and splitting up the OBJ into separate surface-based OBJs in the Geometry Editor.

  • RAMWolffRAMWolff Posts: 10,330

    I see he's done some more updates to this nice little program.  I bought it again by accident but you know for $17.00 a pop it's worth it to support this.  Watch the video, it's amazing how easy it is to get things done.  While I like Substance Painter it's just complicated... ArmorPaint is very streamlined... I like that!  

    Pixolygon said:

    You could also take a look at Armor Paint. I believe it's a one-man dev team, but he continues to work on it and make decent advancements all the time. He'll probably get UDIM working properly before Substance does. lol He currently sells it for 16 euros on gumroad (little less than $20 usd).

    https://armorpaint.org

     

  • Example workflow in Blender 2.80 beta.  If nothing else to remind me how to do it if when I have forgotten in about 3 days from now.  (This presumes the objects are already UV mapped.)

    1. Import 2 objects from Daz Studio (cylinder and torus for example) as OBJ.  Default material exists on each object; rename them, and create second material on cylinder - one for top half, one for bottom.
    2. Select the torus, switch to Texture Paint workspace.  The torus takes on a purple color to show there's no image to paint on. 
    3. Add a texture paint slot (little plus sign next to 'No textures...') in the Active Tool tab of the Properties pane, right hand side.  Choose, Base Color from the drop down, then set image size and color in the dialog.  This creates an image within Blender (not on disk), called 'Torus Base Color' by default. 
    4. Select this new image from the pulldown menu at the top of the Image Editor pane on the left-hand side.  The image (plain color right now) will appear.  The UVs should be overlaid on it; if not, select View menu, and check Display Texture Paint UVs.  The material on the torus has been updated to use the image created, and the torus should be showing the image color in the 3D viewport on the right, which will be in Texture Paint mode.
    5. Now you can paint direct on the torus object in the 3D viewport, including across the seam(s).
    6. Save the image when you're done painting - Image menu, Save As in the Image Editor pane on the left,
    7. Change the mode of the 3D viewport to Object mode and select to cylinder.  Switch back to Texture Paint mode and the cylinder will turn purple.

    For the cylinder, I had created two materials - one for the top half and one for the bottom, to show painting on two materials on one object.

    1. In the Active Tool tab of the Properties panel on the right, select the material slot ('Top' in my example) and click the little plus sign to the right of the 'No textures' (as in 3 above).  Choose a size and color for the new image and click OK.  The area of the object should now show the color of the image in the viewport.
    2. In the Image Editor on the left, select the image you just created - 'Top Base Color' in my case.
    3. In the Active Tool tab again, click on the second paint slot and the 'No Textures' will reappear, so click the little plus again and set the size and color of the new image.  The cylinder should now not have any purple (unless that's the color you set for your image!).  Now we have two materials with two associated images.
    4. Now you can paint on your cylinder, across the two material 'zones' at once - it will affect both images as necessary.
    5. Save the images!  There is a 'Save All Images' in the Active Tool tab, but this only works to save modifications - you have to save the new images first.

    So, no need to do anything with textures, and the images created have been added into the material setup as the base color (you will notice there are other options as well when creating a texture paint slot).  Happy to elaborate on any points that aren't clear.

    Fig01.jpg
    1920 x 1024 - 263K
    Fig03.jpg
    1920 x 1024 - 269K
    Fig04.jpg
    1920 x 1024 - 286K
    Fig05.jpg
    1920 x 1024 - 261K
    Fig06.jpg
    1920 x 1024 - 267K
    Fig07.jpg
    1920 x 1024 - 265K
    Fig08.jpg
    1920 x 1024 - 254K
  • WRT your import settings for Blender, which I missed earlier, if you select 'Keep Vertex Order' instead of Split, and then check the 'Poly Groups' checkbox that appears, Blender will import the item as one object, with the 'surfaces' translated to materials with default settings.  You can then add images to the materials and paint on the object.

    Blender OBJ Import Settings.JPG
    244 x 256 - 18K
  • ArtiniArtini Posts: 9,805
    edited June 2019

    Thanks a lot for this great tutorial, andya_b341b7c5f5. I did not know, that it is so easy to start with.

    Below is my quick paint on the T-shirt from https://www.daz3d.com/3-in-1-dungarees-for-genesis-3-genesis-8-female-s

    In Blender:

    image

    In Daz Studio

    image

    and the render:

    image

     

    DungaTshirt01scr03.jpg
    1918 x 1109 - 331K
    DungaTshirt01scr01.jpg
    1923 x 1021 - 325K
    DungaTshirt01pic01.jpg
    1028 x 908 - 154K
    Post edited by Artini on
  • Thanks a bunch, andya_b341b7c5f5.  Having a straightforward tutorial like that will save a lot of headaches. Wish I had something that detailed this past weekend, when I gave myself Blender Burnout.

    At some point, I'll need to look into some of the more advanced features (painting seamless noise/magic texture patterns in 3D...I messed around with it, but I don't yet know how to only apply that to say, a specular or bump map).  I should really learn this node system, because it seems to also apply to Armor Paint.  I'd like to use that application exclusively, but I don't think it has the feature to import multiple surfaces and treat them as separate materials...yet.

  • Artini said:

    Thanks a lot for this great tutorial, andya_b341b7c5f5. I did not know, that it is so easy to start with.

    Below is my quick paint on the T-shirt from https://www.daz3d.com/3-in-1-dungarees-for-genesis-3-genesis-8-female-s

    I'm glad you found it helpful.  It's been made a good deal easier to set up in 2.80 beta than it was in 2.7x, and is an underrated part of Blender I think.  Good to see the results reflected back in Daz Studio!

  • harrcj101 said:

    Thanks a bunch, andya_b341b7c5f5.  Having a straightforward tutorial like that will save a lot of headaches. Wish I had something that detailed this past weekend, when I gave myself Blender Burnout.

    At some point, I'll need to look into some of the more advanced features (painting seamless noise/magic texture patterns in 3D...I messed around with it, but I don't yet know how to only apply that to say, a specular or bump map).  I should really learn this node system, because it seems to also apply to Armor Paint.  I'd like to use that application exclusively, but I don't think it has the feature to import multiple surfaces and treat them as separate materials...yet.

    You're welcome.  With regards to the textures as bump or specular, in Blender you would select the appropriate option when creating the image.  At least when I just tried selecting Bump, the new image was automatically plugged into the node setup for the material.  These node systems are worth learning, I think, as they are both flexible and powerful.  You can get a layering effect in Blender by combining images together in the node setup.  Armor Paint looks like a good alternative if you want one tool to do one job; Blender is a full toolbox, which as such can be rather daunting - all those other functions can be distracting until you get your head around it.

  • ImagoImago Posts: 5,400
    edited June 2019

    Someone knows a way to paint on Genesis models in Blender? As far I can see Blender can manage only non-overlapping UVs.

    Post edited by Imago on
  • felisfelis Posts: 4,835

    I would assume you can do it if you export the figure as Collada, although I haven't tried. But the surfaces are maintained with individual maps.

  • chris the strangerchris the stranger Posts: 132
    edited June 2019

    Time for the next hurdle:

    I can paint on the surfaces I apply an image to, and though I gave them unique names, they all seem to be connected.  In the example below, I want to paint the brown color on just the material "Leather_vest," but I end up painting on all of the 'materials' that have an assigned paint slot.  How might I isolate components?

    (Thinking about starting a new topic, just called "Blender Help," and asking one of the mods to merge some of the responses into it.)

    Blender2.png
    1920 x 1040 - 280K
    Post edited by chris the stranger on
  • harrcj101 said:

    Time for the next hurdle:

    I can paint on the surfaces I apply an image to, and though I gave them unique names, they all seem to be connected.  In the example below, I want to paint the brown color on just the material "Leather_vest," but I end up painting on all of the 'materials' that have an assigned paint slot.  How might I isolate components?

    (Thinking about starting a new topic, just called "Blender Help," and asking one of the mods to merge some of the responses into it.)

    (Apologies if you've done this already.)  The first thing that occurs to me is to check which parts of the model each of your materials are assigned to.  I am wondering if perhaps the materials are overlapping.  Go to Edit mode, deselect everything in the 3D viewport, then in the Materials tab of the Properties panel select your material (say Leather_Vest) and click on the 'Select' button underneath the list of materials.  (This button only shows up in Edit mode.)  You can now see selected in the 3D viewport the areas of the model to which that material is assigned.  You may need to re-jig this.  Repeat for each material.

    Also, ensure that each material has a different image assigned to its base color.  I assume you have a reason for using v.2.79 and Blender Render, but I am already forgetting how to do things in 2.79 and I never used Blender Render much - always preferred Cycles, and node-based materials.

  • Imago said:

    Someone knows a way to paint on Genesis models in Blender? As far I can see Blender can manage only non-overlapping UVs.

    Import the Genesis model as OBJ with a materials library (exported from DS) and you can paint on it pretty much straight away.  The Daz surfaces will appear as materials with a basic setup (just diffuse), but you can add more image maps for other components.  No problem with overlapping UVs - it works for me whether or not I collapse the UVs on export from DS - examples below when I have not.  You can see the painting has been applied to the 3 relevant image maps.  (Hope the pics are sufficiently PG!)

    Pic01.jpg
    1920 x 1024 - 359K
    Pic02.jpg
    1920 x 1024 - 378K
    Pic03.jpg
    1920 x 1024 - 393K
Sign In or Register to comment.