Home Technical Talk

Efficient way to texture a topographically complex mech for Unreal?

polycounter lvl 6
Offline / Send Message
BlueBlankey polycounter lvl 6
Hi, I'm attempting to texture a mech but am not sure if what I'm doing is a good way to do it.
The model was made in Sketchup so it's topographically "weird", I'm using 3dsmax to unwrap it and planning on using Substance Painter to make a set of material masks with Ue4 being the target renderer.



I've never made a "proper" unwrap of anything like this before so I have no idea how it'll turn out, a single 4k map would probably be good enough but I have no experience in material blending either. Also nearly every part is dismemberable, so there's lots of geometry that's hidden a majority of the time that would be eating up UV space. (I might have internal components on a separate UV channel with a different material indexl)


The way I have it set up now is to split everything that's bilateral, auto-unwrap everything and go around making sure there's no overlaps or excess area deformation. The mesh is made of 100 individual objects so it's a veeery tedious thing to do. 3dsmax also has a pretty unimpressive way of packing tons of tiny islands, so I may have to snoop around for an alternative packer.

So my question is there a better way to do this, either in workflow, end product, or potential software alternatives? The end goal is a real-time game in Ue4 and it may take up a large percentage of the screen, but doesn't need to be next-gen quality per-se. This is also the first of several so it would be good to nail down a set procedure that doesn't take a thousand years. (but if that's the only way then so be it)

Thank you for any suggestions!

Replies

  • gnoop
    Options
    Offline / Send Message
    gnoop polycounter
    I tried  to use Sketchup and Moi around  decade ago  and it always ended up with randomly flipped polygons at best but also all sorts of issues in mesh geometry ( like double faces) .  Maybe they do better export now  I am not sure, but it's a first thing to deal with.        I can suggest  something like  remeshing in hires and then decimating  in Zbrush  or Blender  .  

    But if Max imports it just fine   it's probably ok .   Other then this "hidden" geo you are talking about.   Isn't Sketchup can use booleans to get rid of it on its own?     Also you could delete them manually I hope.    Some  details just could be floating parts  really.       The geo still might have messed tangent and binormal vectors  that is not instantly obvious in max viewport.    Don't forget  to triangulate before Unreal import.

    Ones geo is ok I see no issues with UV unwrap.   If MAx packer does it not good enough try something else.  Ryzom lab or UV packmaster .   Usually such an amount of small UV islands is not a problem. They are usually beeing packed automatically with high efficiency.



  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    There was a lot of random faces inside the geometry, but I manually got rid of them before the import. The hidden geometry I'm concerned about are the faces that aren't visible before a piece is 'blown off' in-game, most of the time the mech will be in one piece, so it might be a waste of UV space to have those faces on the same UV channel.
    UV packmaster looks like a cool thing to look into for the island problem, and the overlapping of similar islands also looks delicious :)
  • Eric Chadwick
    Options
    Offline / Send Message
    I know it's a bit late here, but for efficient material use and high-resolution texturing, I would suggest re-making your meshs using trim sheets.

    A couple examples of the complexity achievable with fairly "simple" textures.

    https://polycount.com/discussion/comment/1881634/#Comment_1881634

    https://polycount.com/discussion/89682/an-exercise-in-modular-textures-scifi-lab-udk/p1

    More
    http://wiki.polycount.com/wiki/MultiTexture#Trim_Sheets
    http://wiki.polycount.com/wiki/Modular_environments
  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    @Eric Chadwick  That's a cool idea but a trim sheet probably wouldn't be worth it for these kinds of models. They aren't held together by bolts/rivets and things so there isn't a whole lot of minute detail, and getting each piece to match a part of the texture would be a pretty tough thing to do. That'll be a good thing to keep in mind for modular meshes down the line though.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Well ... it's a bit of an ironic situation to be in isn't it. Chicken and egg kind of thing.

    If you know that your art style/modeling style doesn't lead itself to regular UVs, then either change this style accordingly ; or, develop an overall visual style that doesn't rely on UVs altogether.

    It'd understand that one would get frustrated if *forced* to deal with such models and being asked to unwrap them 1to1. But since they seem to be yours, then just don't put as much random details all over the place and then you'd get models that are perfectly okay to manually unwrap in no time.

    It's an issue you created yourself ; so assuming that you know the basics of unwrapping, then you can identify all the friction points before they happen.

    Now on a somewhat related note I'd be curious to see how some of these shapes are actually done in Sketchup. I only have a superficial knowledge of the program but the few times I've used it or seen it used it felt somewhat slow and cumbersome to use (besides the elegance of the draw/extrude loop of course) - hence I am having a hard time imagining how such busy shapes are even done in the first place. I suppose there is some kind of "form follows the tool" paradigm at play here. Care to share ?
  • gnoop
    Options
    Offline / Send Message
    gnoop polycounter
      Those CAD style programs do have some kind of elegance  and straight forward simplicity  allowing   to learn them in 1-2  hour and start realizing a complex design ideas right away.   

     They also allow  somewhat  usual for an art person thoughts flow "from general idea to specifics"    You kind of crystallizing  your idea in the process while have no idea yet in the beginning. 

      It's how true art friendly tools should work IMO with all the  " you can't bevel this before check in there" or "you have to put a loop there and fix normals here "  etc    being done by some helping  AI behind the soft.

    But since no such AI still exists all that elegance give you nothing but messed up mesh in the end .   Once it appear I would switch in a blink of an eye.   But not in my life time ,  I know :(

  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Hmm - @gnoop : I don't know if your above post is intended as an answer to my question about the the specifics of Sketchup, but what you describe is the complete opposite of what CAD tools do in practice. Yes they are easy to learn, but no, they absolutely do not allow for artsy exploration (beyond, say, moving the placement of a boolean in a non destructive way or changing chamfer width after the fact) because they are all *extremely* stiff when it comes to global freeform editing. I think you are conflating the ease of piling up details with the ease of actually iterating through a design globablly. Even the smoothest, most user-friendly CAD-like app (MOI3D) is 100% awful at that. But then again diferent people have different levels of tolerance to friction, and different people mean different things with "exploration" too.


  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    @pior I definitely paint model myself into a corner every time I make these. When you use a basic program like Sketchup for years and years it starts to become almost second nature, and you have trouble tearing yourself away.

    Also @gnoop is right in that it's artsy exploration, 100% every single model I've ever made was from zero, just random extrusions. I enjoy playing around with low-level geometry so a lot of the friction of dealing with limitation is mitigated. In that sense I very much am a slave of the program, and end up with these textureless wads.
    I'm trying to shift away from Sketchup and its chokehold but the style has to be consistent between models (also because the explanation of why they look like this in-universe is pretty well ingrained, they're literally grown like crystals, kind of like IRL)

    Now that you mention it I wonder if it would look passable without UVs, just auto unwrap for AO or something and rely on surface detail to do the "talking". The problem with that might be that it would require multiple material indexes, in Unreal a single map with a single material is a lot better performance-wise than several materials. At this rate it might be worth the time saved in making sense of these.

    Also this random wad doesn't have any real UVs and it turned out good enough, maybe just stick with doing that? For comparison this is what it could look like with a map. (the bipedal mechs are "cleaner" though so they could get away with a lot less surface detail)
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Well, there's definitely a certain visual style about all these models, and I definitely wish more game levels today looked more like that map of yours. But still this whole topic is somewhat confusing : since you*know* that putting too much SketchupGreeble detail everywhere will lead you to get stuck later down the pipe, then why just accommodate for that and use less random noise ? It will only make your designs better, so why this is even a question boggles my mind. Or, go UV-less and that's it.

    Note that another issue is to think of all these things in black and white terms. After all, even the overly detailed models *can* be UVed. You just have to embrace the fact that it will require some busy/painful work as opposed to only fun random "exploration".

    Lastly I am still wondering about how some of the parts of these models are being made in the first place as I always found Sketchup frustratingly annoying every time I've used it. But that's probably just because I assume the "making precisely what one has in mind" workflow as opposed to the "letting the tool improvise" workflow ... which is not an option in production when designs are locked beforehand. Can edges/verts/polies even be dragged around freely in Sketchup ? Or is everything a "draw line on surface > negative extrude" ?

    Also ... Kerbal was made in Sketchup, so that's that ...
    https://www.gamasutra.com/blogs/ArtyomZuev/20130731/197365/Environment_art_and_modeling_in_Kerbal_Space_Program.php


  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    @pior Thanks for the Kerbal link, very insightful :) I'll clarify it a little bit- the random noise is a big part of the designs, it's an art style that I don't intend to change for these particular models. As soon as they're done I'll move on to more efficient modeling paradigms, but in the mean time I'm stuck with finding a way to make them usable. (i.e. look nice enough to pilot, dynamics will be its own can of worms)

    I'm completely willing to go through the effort of properly UV'ing all of them if it's worth it, the reason I'm hesitating is I'd rather not find out it was an inferior approach after a lot of work has been done. I'm thinking maybe just take a small piece and apply different methods and see what sticks at this rate. I see looots of awesome looking stuff but can't find any real guides on how they textured them other than regular UVs.

    It's an oddly specific problem but the answers are pretty broad. Regular UVs if there's no 'fancy' way of doing it, no UVs if this small test works out, maybe local triplanar projections, maybe an in-engine way to bake out placed decals, maybe even trim sheets if there's a tool out there that would make it manageable. Heck it might be worth looking into a way to make a procedural algorithm that literally wraps UV'd geometry on top of existing geometry (I'll entertain the fact that I might also be overthinking it as well)

    Also I couldn't find any decent examples of ad-lib modeling from the past 5 years so I recorded some, nothing impressive but it shows how sketchup works more or less



  • gnoop
    Options
    Offline / Send Message
    gnoop polycounter
    Speaking of UV unwrap I don't understand what's the big  issue with such kind of a model.  I do UV  exclusively in Blender for decade already  and there it's  just: 
    a)  make  auto smooth  angle
    b) make smart UV project
    c) pack by packmaster with heuristic  and rotation on

    That smart uv project splits cylinders into 3 islands  although and if you willing to put a bit more time  then you just mark one  edge as a seam on each cylinder then put "edge split" modifier  that splits your mesh based on auto smooth angle  then do regular U for unwrap and  pack  .   With packmaster you could manually downscale  UV islands  you consider hiden inside  and it wouldn't re-scale them if you don't want.    After  unwrapping you can put weld modifier that  weld split edges back.

    Together with cylinder seams marking it's  a few  minutes of manual job only .  Bet it  could be same in MAx too .

    ps.   the real issue with such model would be LODs  


  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    @gnoop That's basically the workflow I have setup in Max, auto-unwrap and stitch together cylinders/small floating bits and make sure there's no improper skewing. It's a big issue because there's lots of weird geometry like split edges and bad triangulation, multiplied by how many individual objects have to be polished, 100 in this case. It's very far from impossible but I have lots of similar models of increasing complexity and want to compare all options before committing.

    I went ahead and tried blender with packmaster and it refused to work due to the weird island triangulation, and it would quite a bit more overhead to make a vertex-perfect unwrap to make it work. Still plausible but doesn't seem like an optimal solution. I'll try a side-by-side comparison of a smaller mesh with proper UVs and no UVs.

    Also LODs will just be trial and error with automatic conversions so not too concerned about it. Ue5 with its weird triangle streaming might be a cool thing to look into later on.
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    That tech in ue5 is not really ideal for this kind of things so don't count on that. It works better on round shapes. Thats why they were showing it with mostly rocks. 

    Have you tried auto unwrap by smoothing splits, and a 3d texture painting tool?
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Hey there man - thank you for being a good sport, as contructive criticism can often be seen as what it isn't.

    So - basically based on the video I am still convinced that the style is really not *just* coming from the backstory, but at least half from the tool itslef :) You're pretty much in a similar situation Tor Frick, more or less - in the sense that you've developped a look an workflow that works well with the natural branching choices offered by your tech/tool. I wouldn't call that "path of least resistance" but you see what I mean.

    The video is interesting. Most of it confirms my impression of sketchup from back when I used it (architecture) : draw line on surface, extrude surface, repeat. I wasn't aware of the per-vertex scaling tool or the ability to directly edit/manipulate edges though, so these are the links I was missing.

    - - - - -

    So, back to UVs. Regardless of what you end up doing in the end you will always benefit from having a 1to1 unwrap. The only exeption being if you use tiling/trim sheets, but the visual style of the models is imho not compatible with that. Every other "fancy/clever" approach relying on complex shaders is likely going to be a performance bottleneck at some point. I think the best is always to ask oneself "would it run on mobile" ? Admittedly you could maybe leverage vertex colors for shading and multiply things over that. But that'd propbably require at least one subdivision being applied to the model.

    Now, flipping the issue on its head I'd say this. *IF* your workflow supported a way to, say, mark the edges to be used later for pelt unweapping, *THEN* would this thread exist at all ? I'd say probably no. So assuming that you can proactively avoid showing too many parts through others and keep things watertight on most chunks then the question becomes : "how to prepare the models for unwrap *as you work on them*."

    Since Sketchup will likely not let you mark edges for unwrap in another program, then I'd say just take the habit of assigning different materials to different faces according to what you know the UV islands would be. That way once you're in Maya/Max/Blender you can split things up that way, mark the edges from there, and keep on going with the unwrap, even with an automatic layout. But at the very least the UV islands themselves would be under control.
  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    @Obscura Ah guess I won't be benefiting from that in any form then. When it's exported from sketchup the vertices have to be welded so no smoothing information survives, the work I do in max for smoothing is basic and I wouldn't trust it with unwrapping. I'm using substance painter for the texturing.

    @pior The way I view it is anyone that replies is taking time out of their day to help someone, and there's no use getting offended on artstyle opinions, the more unique angles the better. (also literally in my opinion). I want to say the backstory is compensating for how the models turn out, but I draw 2d similarly so am not sure exactly what came first.

    That's a really good idea to use material information for the unwrap, kind of played around with it but find it to be more work figuring out exactly how things wrap rather than working on max's closest guess. Also tried not having UVs at all, not really impressive. I suppose I should just bite the bullet and just unwrap them and stop musing on an easy way out. I spent an obscene amount of time making them, I can spend a little more time polishing them.

    Thanks for the help everyone that's replied, still open to suggestions if there's a key concept I'm missing.
  • BlueBlankey
    Options
    Offline / Send Message
    BlueBlankey polycounter lvl 6
    So this is what I went with that's 'close enough', it ended up as a mixture of different approaches. After some research I figured out multiple material IDs really don't have a huge performance impact, so I painted the faces based on material in sketchup.


    Since there's really no specific surface detail other than grunge/curvature/AO, the UV map really doesn't have to be 'proper', so it was just autounwrap and pretend it makes sense. As far as 3dsmax's bad packing goes I noticed it functions a lot better with less islands, so I split the result into quads, re-packed them, and scaled them up to fit.



    A quick smart mask in substance painter and a few scuffs here and there is all it really needed for detail, so it has one RGB packed texture map. The rest is random concrete textures I had laying around, might change it up later.



Sign In or Register to comment.