Home Technical Talk

Question about uv seams and texture painting

Hi there, this might be a noob question, but since im also fairly new to this stuff, im gonna ask anyway. So im trying to figure out how things work together, and learnt that in order to texture a 3d model, i need to uv unwrap it. So this brought me to the next problem. Around the uv seams i see clear borders (seams) which i can't figure out how to get rid of. I guess i understand why they are there, but then i don't know how to deal with them.

The stuff im currently trying to model right now, is just some rocks. While i can often place them in cracks or so, i often find that the seams will be visible from some angles. So i read somewhere that people use different techniques to minimize the seams, but can't really figure out what is the easiest approach.

I use ZBrush for my rocks, and 3dsmax for uv unwrapping, and bake normals and AO maps in ZBrush as well. I then take my lopoly model + maps to Quixel suite and do the textures, and then i get stuck with the seams. So can i paint over them with ZBrush Projection Master? Or Photoshop CC 3d painting functionality? Or i hear that MudBox also has something similar or even better? What would you guys do? If i use ZAppLink in ZBrush, what about my normals then? Is there a way to make them seamless too?

Hope this is not too silly a question, and hope someone out there can point me in a good direction. Also let me know if you want pictures of what i try to do and what kind of seams i get. I can make a little video showing what i do right now. Maybe someone can spot some mistakes?

Replies

  • yukonwanderer
    Options
    Offline / Send Message
    yukonwanderer polygon
    I'm a noob too.  I think people on here are pretty awesome at answering our piddly questions, but they do always ask for a picture of what you're working on so they can better address the issue.

    p.s. that doggy!!
  • jonas_molgaard
    Options
    Offline / Send Message
    hehe, yeah, i'll post some video footage showing my problem. And yes i love that husky dog :D makes me laugh everytime
  • jonas_molgaard
    Options
    Offline / Send Message
    I've uploaded a short video showing the problem i try to fix https://www.youtube.com/watch?v=PouAX5D-Yeo
  • Eric Chadwick
    Options
    Offline / Send Message
    You can embed Youtube videos here, just grab the full URL and paste it directly into your post. For example:
    https://www.youtube.com/watch?v=PouAX5D-Yeo

  • jonas_molgaard
    Options
    Offline / Send Message
    oh, nice, i've updated my post and thanks for that tip.
  • Eric Chadwick
    Options
    Offline / Send Message
    Those material presets put a texture onto your model, but Quixel has no knowledge of the UV seams, if I recall correctly. You will need to paint those out, either by projection cloning, or texture stamping.

    To make normal maps seamless, you will need to make sure your baking app is synched with your display app.
    http://wiki.polycount.com/wiki/Normal_Map_Technical_Details#Synched_Workflow
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    You can paint over the seams in any of the 3d painting solutions you've mentioned. Even Max's viewport canvas will do the job. Quixel suite paints in 3d, why not do it there?
  • jonas_molgaard
    Options
    Offline / Send Message
    I have these rock textures and its either because i do something wrong or have wrong expectations, but i cant seem to get entirely rid of them. I hear lots of people saying, why dont you just paint over them with whatever app. So im thinking im doing something wrong. When im home i'll make a new recording showing what i try to do and how the result is. I really hope for some usefull constructive feedback other than its easy just use x program. I need to see a technique in action in order to put it to use myself.
  • jonas_molgaard
    Options
    Offline / Send Message
    About normal baking, i use Zbrush for that. I didnt see that on your list Eric. Do you by chance know this is handled inside ue4?
  • Eric Chadwick
    Options
    Offline / Send Message
    I'm not sure what tangent space Zbrush bakes with. I don't think Zbrush supports exporting the tangents either (OBJ format doesn't support tangents). So UE4 probably can't import the tangents from Zbrush.

    I'd suggest baking in Xnormal.
  • jonas_molgaard
    Options
    Offline / Send Message
    Another noob question (sorry so much of this is new to me) what are tangents? And is it something i can create if i bring it through max and save as a fbx? Anyway as i read your answer, i need to use xnormals instead of Zbrush :-( i wonder why they have that function, if cant be used?
  • Eric Chadwick
    Options
    Offline / Send Message
    I posted a link describing the issue.

    I think a lot of 3d software designers have implemented texture baking without fully understanding how normal maps work, or at least how game artists use them. So there's a big patchwork mess of incompatibility.
  • jonas_molgaard
    Options
    Offline / Send Message
    You can paint over the seams in any of the 3d painting solutions you've mentioned. Even Max's viewport canvas will do the job. Quixel suite paints in 3d, why not do it there?
    In the video i posted, i show what i try to do inside Quixel Suite. If you look at it towards the end, i show what i get. So is there something else i can do in Quixel Suite?

    I found this tutorial on viewport canvas and trying to follow that now.
    http://consoul.org.uk/view-port-canvas-3ds-max/#more-680
  • Eric Chadwick
    Options
    Offline / Send Message
    F1, search for Viewport Canvas.
  • jonas_molgaard
    Options
    Offline / Send Message
    xnormal maps yielded much better results together with viewport canvas painting. Thanks guys. I'll post a video for others in the same situation later.

    However, i now see a one pixel line a few places now. Think that can be an artefact from the viewport canvas painting? If i unplug the normal map it still shows up.
  • jonas_molgaard
    Options
    Offline / Send Message
    Here's a view from 3dsmax showing the issue. Is it maybe because of some angle skewing in the uv's?

  • Eric Chadwick
    Options
    Offline / Send Message
    Pixel-thin seams means you need gutter padding. http://wiki.polycount.com/wiki/Edge_padding

    The angled pixels are a natural artifact. Mostly can't avoid. But won't cause issues for most models, due to your regular viewing distance and texture filtering.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Another option you can try for an asset like this is to apply the base texture is Max's 'render to surface' This will wrap the texture around the unwrapped object using tri-planar projection and may help to blend the seams. Your UVs look to be distorted along that seam. Did you view the object with a UV grid texture applied? This is an important step before you begin baking/texturing and should always be practiced whilst unwrapping. Also, Zbrush normal maps are not the greatest. Better to use Xnormal or Handplane.
  • jonas_molgaard
    Options
    Offline / Send Message
    Another option you can try for an asset like this is to apply the base texture is Max's 'render to surface' This will wrap the texture around the unwrapped object using tri-planar projection and may help to blend the seams. Your UVs look to be distorted along that seam. Did you view the object with a UV grid texture applied? This is an important step before you begin baking/texturing and should always be practiced whilst unwrapping. Also, Zbrush normal maps are not the greatest. Better to use Xnormal or Handplane.
    Hi Musashidan, and thanks for taking your time to answer my questions. I did actually initially try to use the render to surface in 3dsmax, but that was before i had Quixel Suite. Then i switched away from it, since i started to make my textures in QS. Im a bit unsure how i can combine QS and something like 3dsmax render to surface or if it's either one or the other.

    About ZBrush normals, i agree, after checking a normal map from xnormal i got much better/crisper normals out of it.

    And yes i forgot to check the model with UV grid texture applied. To be honest im not sure what to look for and how to tweak it yet, so that's probably why i skipped it. Trying to tackle each problem one at a time, but sometimes it seem to be several things hehe. I'll see if i can search for some good tuts on what to look for to avoid distortions. Oh actually one thing i did, was to check with the angle and area distortion settings in the UVEditor in 3dsmax, and they seemed pretty grey for the most part (so not too much red or blue).

  • jonas_molgaard
    Options
    Offline / Send Message
    Pixel-thin seams means you need gutter padding. http://wiki.polycount.com/wiki/Edge_padding

    The angled pixels are a natural artifact. Mostly can't avoid. But won't cause issues for most models, due to your regular viewing distance and texture filtering.
    I looked into the link you sent. Yet another nice ressource. Thanks. And i think im beginning to understand the Swizzle coordinate thingie, so while ZBrush does flip the Y+ (i think), i also think it can flip it to Y- for use in UE4. I will make a try with that this evening to test it out just for fun. When that's said, the normals from xNormal was much better looking, so i might stick with those.

    Since im using Quixel Suite for my textures, im currently not sure how to create my gutter padding. QS generate a solid square texture and that makes it difficult for me to select only the part where the uv islands are. I've created another discussion on this in the QS forum, and linking to it here, for reference.
    http://polycount.com/discussion/173411/xnormals-and-quixel-suite-question/p1?new=1
  • Eric Chadwick
    Options
    Offline / Send Message
    This might help too, explains a bit about why a grid can be useful.
    http://wiki.polycount.com/wiki/Texture_Coordinates#UV_Map_Grids
  • jonas_molgaard
    Options
    Offline / Send Message
    This might help too, explains a bit about why a grid can be useful.
    http://wiki.polycount.com/wiki/Texture_Coordinates#UV_Map_Grids
    yes i read through it, and im not sure i understand what to look for? I've been turning it on inside 3dsmax a few times. Since 2017 they have the colored checker pattern. So how can i tell if there's a distortion or things are reversed? and how do i go about and fix the problems? Im sorry for asking all these noob questions, which im sure are super trivial, but only started looking into 3dmodeling about a few weeks ago.
  • Eric Chadwick
    Options
    Offline / Send Message
    Put the checker on your model, look at the model, if the pattern is distorted then your UVs are distorted. Distorted UVs means a distorted texture. Some distortion is inevitable, just the way it goes trying to wrap a 2D image onto a 3D surface. The trick is to minimize the distortion as much as possible, since it makes texturing easier. 

    Reversed UVs means any text in your textures will be reversed. Some reversing is desirable, like if you want to reuse parts of your texture to save UV space and thus increase texture resolution. You can use mirrored UVs, like down the centerline of a face, or left/right arms/legs using same texture just mirrored. It all depends on what you need.

    Fixing distortion is done with Relaxing UVs, Pelting, splitting, hand-massaging, etc.

    Fixing reversed UVs is done by flipping.

    Best way to learn these things is to try them, see where things fail, and thus learn why they matter. Make a simple 3d model, texture it, get it into a game engine, examine it, see where it fails, then fix those failures. You'll learn a ton this way, much more than by asking questions without doing it.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Don't worry at all about the questions, that's what the forum is here for. There is a lot to learn with this stuff and it can certainly be overwhelming for those new to it. I am doing this for many years and am still constantly learning. Always. It's one of the things I love the most about it. :) So don't panic, this stuff takes a lot of time to learn. As for the grid texture. It basically helps to visualise texture distortion in the form of either tension or stretching. You are looking for squares in the texture to be as square as possible. Circles to be circular rather than oblong. Numbers and letters can help with flipped UVs and aligning shells to a certain direction(i.e - they are all facing the same way) A lot of UV editors have built-in visual representations of distortion: tension/stretching in the form of blue/red colours; green for adequately relaxed UVs. Unfortunately, Max's 'show edge distortion' isn't the best and can be unreliable at times. Personally I use a combination of Headus UVLayout and Max for unwrapping. Headus is excellent and its visual distortion is very useful, but it costs money and as you're just starting out Max's unwrap tools have come a long way in recent releases and are very good imo. The seam issue in your video(just had a look) above should really be resolved in QS as obviously you're dealing with the entire material and would like to paint across all channels, as you did mention yourself, and that single-pixel black line that wouldn't paint out looked like a QS bug(provided it's not a padding issue) I have QS but don't use it as I use Substance Painter but I might open it now and see if I can replicate the issue. EDIT: just did a quick test in QS but couldn't replicate the black pixel line seam problem, so it isn't a QS bug. It's a pity though that there is no clone stamp brush as this is pretty important for painting over seams. Substance Painter only recently got one but there are still bugs related to seams and it is[clone stamp] far from perfect when trying to paint over multiple layers/channels simultaneously. As Eric mentioned earlier, your seams could be from your the tangent space you baked from or your UV padding. The model I used for testing above has 8 pixel padding in the UVs and auto-dilated directX(averaged) bake from Substance Painter.
  • jonas_molgaard
    Options
    Offline / Send Message
    Thanks both of you again. It really means a ton for me. I know i have to experiment and try things out to really learn it, its just that i need a little pointing in the right direction. From there on im ok experimenting by myself. 

    About the single line artifact, i dont see how it can be a QS thing, but i'll try tonight to make a texture without using QS and maybe even use max's texture projection to wrap the texture and see if i still have this artifact. 
  • Eric Chadwick
    Options
    Offline / Send Message
    It might be worth it to post in the Quixel subforum with a screenshot of the problem, plus a shot of the texture itself, see if it is a bug or not.
  • jonas_molgaard
    Options
    Offline / Send Message
    Another option you can try for an asset like this is to apply the base texture is Max's 'render to surface' This will wrap the texture around the unwrapped object using tri-planar projection and may help to blend the seams.
    Im trying to do this now, but my texture becomes way too bright. Is there a setting for light i may be missing?

    Im about to record a video of what i do now, and maybe there's something you can spot that i do wrong. Once again, thanks for all the assistance.
  • jonas_molgaard
    Options
    Offline / Send Message
    Ok, here's a video showing what i do, it's a bit long, even though i tried to keep it short.
    In summary, here's what it found out. After doing a relax on my uv, the distortion got better. I baked normals and ao in xNormal and used the render to surface in max to project a tiling texture onto my model, in ue4 it produces a seamless rock. But when i then try to use QS to make a texture and paint out the seam using viewport canvas, it dont entirely go away. I also try to mask out the unused texture and add edge padding in photoshop using xNormal Dilation filter, but it dont quite fix it. So maybe i did a bad job at painting out the seam. Anyway i'll keep fiddling with it tomorrow.
    Hope for some feedback on what else i can do https://www.youtube.com/watch?v=uUdaskR_09Y
  • jonas_molgaard
    Options
    Offline / Send Message
    You can paint over the seams in any of the 3d painting solutions you've mentioned. Even Max's viewport canvas will do the job. Quixel suite paints in 3d, why not do it there?
    Another day of tinkering, and just wanted to update this thread with my findings. I can indeed paint over seams in QS, however, currently it doesn't have a clonestamp tool, so since im such a shitty painter, i ended up trying my luck with painting it out in 3dsmax viewport canvas. It does leave a small one pixel seam here and there, and so far i think i got it tracked down to either a bug in the painting tool, or maybe im mistaken. If i look closely in the 2d view, i can indeed see the few pixels left untouched when i paint over it, but i can fix it by clonestamp tooling over in the 2d view. Not sure of the cause or wether it's a bug or something else. Since i did this test with a QS texture, it doesn't excactly have gutter padding, but it does have all the excess texture around it.

    Finally i did a test paint in ZBrush too to compare the results, and there i don't see the 1px seam, but it is quite cumbersome to switch back and forth between ZBrush and Photoshop with ZAppLink while rotating around the model piece by piece. So for now, im pretty satisfied with the 3dsmax approach.

    I've also installed Mudbox to see if it can do something like this, but so far i can only see i can project a flat texture onto a model, but i haven't spent more than an hour playing around with it. So i'll update if i find a good way.

    Anyone feel free to suggest other approaches or thoughts you might have regarding this.
  • jonas_molgaard
    Options
    Offline / Send Message
    It might be worth it to post in the Quixel subforum with a screenshot of the problem, plus a shot of the texture itself, see if it is a bug or not.

    See above post i just made regarding the 1px seam.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Have you tried Spotlight projection painting in Zbrush? Much quicker than jumping in and out of zapplink.
  • jonas_molgaard
    Options
    Offline / Send Message
    No, didnt know about it, but will definetely look into it. Thanks again. 
Sign In or Register to comment.