Home Technical Talk

ZBrush Decimation and SP baking.

LosRe
polycounter lvl 4
Offline / Send Message
LosRe polycounter lvl 4
Happy new year everyone! I hope 2021 it's better for everyone.

I'm trying to sculpt and bake some wood planks but I have a little issue with the high poly model shading. After I finished the sculpting I did a decimate because my computer can't handle baking with more than 15-16m polygons. As you can see  in the screens, the excessive triangulation that is happening on the flat surfaces creates problems with the shading when I'm importing my high poly model into 3dsMax. The issue continues after the final import in painter and even the baked maps have the problem.

So my question is this: is there any way to fix this without raising up my polys in the decimation? Could I fix the shading in 3dsMax maybe?
Thanks in advance!

Note: My workflow is pretty standard. 3dsMax for the blockout geometry, zbrush for sculpting, decimation and import in max for renaming etc and then final export to painter for bake and texturing.


Replies

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    couple things:

    1. don't need to send the hi poly back to max after zbrush. Just send the Hi from zbrush straight to baker. Can rename and do whatever you to do in there - cut out a step. Only the low poly model needs to get it's UV's done. 

    2. I'd question that high of polycount for a high detailed character. A mostly flat rectangle seems excessive.  Working well within limits of the hardware does a lot to improve productivity. Pushing limits of hardware to sculpt something like this suggest you aren't being as technically efficient as possible. You might be using a selective decimation to keep so much density on the edges? They don't need nearly so much to make that shape. 

    3. Decimation master is an automated tool. To get clean, precise results, you have to work in a clean, precise way. I'd reconsider the entire workflow. How to do more with less? Are you approaching this item in a modular way? That is the typical method for game assets like this. I am making some assumptions but the questions are rhetorical - don't got to explain to me. If it leads to rethinking workflow and improving, great. If not, don't mind me.

  • LosRe
    Offline / Send Message
    LosRe polycounter lvl 4
    Thank you for the response. 16m polys is the final count for the whole high poly model. It consists much more planks and models (the above plank for example it's only 1.5m before decimation and 400k after it). I'm currently making a texture set for almost all the assets I'm using in the scene.

    I usually like to import the high poly in max again to do some copy and paste in some geometries to save some sculpting time (for example if I want to bake 4 stones on a plane I just sculpt 1-2 stones and copy paste them backwards etc, I could do that in ZBrush but I like the precision with max)

    I totally get what you're saying. I'm kind new to this and everything in my workflow is always up for some feedback. What would you suggest other than exporting my high poly direct from Zbrush?
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    It's hard to say exactly what to do without knowing the full scope of project, but efficiency is the big idea. Always try to use minimum resources to accomplish the job. Start from simplest thing and only go up in resolution when absolutely necessary. I think a lot of people, especially beginners, got an idea that the fastest most intuitive and "artiest" way to get 3d work done is to just throw triangles around in zbrush. Sculpt everything like clay. But usually you use a minimum of geometry and the work goes much faster, is more manageable, and you end up with cleaner looking art in the end.

    I'd suggest to go ahead and bake out your current pillar. But then do another experiment. Start a pillar from cube primitive. Subdivide it minimally to sculpt similar details on the broken edges. Shouldn't take more than a few thousand triangles at the most to get similar level of detail as in your screenshot, I'd expect. No need for decimation then. 

    Use separate floaters for the non-silhouette changing grooves. It's superfluous detail so a couple repeating pieces should be enough. I think that's the sort of detail trim sheets excel at. Or can probably accomplish directly in your texturing app as well. Worth trying a couple different ways. Just keep in mind baking from a high poly source is often the slowest way to accomplish things. I only do things that way as a last resort basically, but that's just me. 

    Then compare the two final results. Can you see a difference in quality? And which way went quicker and required less waiting around for machine to think? Remember the final result is a texture: an image file with finite resolution/texel density. So if you spend time sculpting detail that is greater than the final result is capable of showing, that was wasted time. 


    oh, and about duplicating repeating items in max : again, why not bake the items first and then duplicate the low poly models afterward?
  • LosRe
    Offline / Send Message
    LosRe polycounter lvl 4
    Since your input is very helpful I guess I could share some info about the bigger picture. I'm making a modular environment for a game and even though the final result will be just a video demo of the gameplay, as a practice for me, I'm trying to keep the materials of the scene as low as possible. I used 2 tileables and 2 trimsheets for the entire scene and now scene assets it's the only thing left. 

    I then started simplifying all my block out assets in simple geometries so I can reconstruct them AFTER the bake. I, then, imported these geometries to ZBrush for the sculpting so I can bake, texture them and get the texture and the bakes lows in max again to make all the assets just from one texture set. This is my complete model (it consists of some different sizes of wood planks, and some iron parts that I need):



    So about the shading problem I currently have, the only solution is to export my high poly model directly from Zbrush? Is the no way to fix it from max? Also, is there an option in painter to bake from 2 different high poly models so I can divide the total polygons and get around my limited memory?

    Thanks again for your time!
  • Eric Chadwick
    As mentioned by Alex_J, you're using way too many subdivs for your detail level. A bit late with this project I suspect, unless you're interested in improving the process.

    You could certainly bake separate parts of the same trim sheet, then composite them together in 2d afterwards. Either with Designer, or Photoshop/Gimp.
  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    The nitty gritty details will be better discussed with an environment artist. I am just a generalist so if I see a big thing wrong I can point to that. 

    The shading problem is due to what you are forcing decimation master to do. There is big flat areas with no detail and then little grooves with high detail. So the most efficient way for it to remove triangles is from the flat area, leaving a lot of long thin triangles. That's where the shading issue comes from. Maybe there is some way to hack a fix for that but it's not solving the real problem.

    You could fuss around with using polypaint to get more evenly distributed resolution from decimation master (hold control and hover over the button in decimation master that says "use polypaint"), but I think this isn't solving the larger workflow related issue. 

    Looks to me like you have designed a thoughtful workflow, but room for improvement. Just keep the principle of efficiency in mind and you'll be getting better each time. Also take some time to review tutorials professional enviro guys are putting out, even if it's something you think you already know.
  • icegodofhungary
    Offline / Send Message
    icegodofhungary interpolator
    >ter I finished the sculpting I did a decimate because my computer can't handle baking with more than 15-16m polygons.

    I'm running a 970, a 6-7 year old i5, and some ddr3 ram. My computer absolutely locks up much over 10M. So I feel you.

    Before you're export your blockout geo in max, make sure you add divisions in your geo so that you get more even subD geo in zbrush. If you just import a box, zbrush will put most geo at the corners, and less on the big flat areas. This leads to inconsistent details. Your damage and wood details will look crappier on the flat areas, but sharper on the corners. This leads you to sub-d more so that your flat areas look good, but now you have way too many in the corners. Trying to add equally spaced divisions in the mesh beforehand forces zbrush to keep the ammount of polygons evenly distributed. Example:


    You can get around this by using dynamesh in zbrush. As soon as you import your plank mesh, sub-d (with smt on or off as you need it) and then dynamesh it. This will evenly distribute the polygons over the surface, at the cost of some sharpness on lower settings, and you won't have to use as many polygons.

    The next thing is that when you're sculpting in zbrush, you're up close to the mesh so you see all the little details. When you bake it down to texture and put it in the engine, you won't see as much detail. It doesn't matter if your mesh is looking a little blocky when you zoom in close to it. As long as the zoomed-out bake looks good, then you're fine. Getting some perfect 3cm crack in your 4m wall won't be noticeable. It helps to think about scale in that way. Think about how big your details are in relation to the size of the object it's going on. How close the player would be to it. Is this a texture of a floor under many objects and a blended dirt/grime texture? Or is it on some hero piece that the player gets really close to? It may help to import a mannequin for scale as a subtool while you sculpt to help keep things in scale.

    Also, when it comes to tiny details, you have two resolutions. There's the resolution of the meshes, the amount of polygons they have. There's the resolution of the baked texture. Having fine detail on your sculpt might get washed out because even though the mesh has enough geo to support them, the 1024 texture doesn't have enough resolution to capture them. So that's something to also keep in mind. To get a feel for it you can do quick bakes while you sculpt to see what details show through and what doesn't.





  • LosRe
    Offline / Send Message
    LosRe polycounter lvl 4
    Yeah, I mostly use the dynamesh method when I sculpt. All the info that you posted is golden, thanks everyone for your input!
    My end conclusion is that problem was created mostly from the difference in detail between the edges and the flat surfaces. Baking curvature map from mesh and not from normal eliminated the problem as a whole in baking. (I really need to start updating Substance when I can instead of going in "let's do it tomorrow" mentality).

    Thanks again, and this is the end result for everyone that's interested:
    Have a great weekend!



    https://www.artstation.com/artwork/lxXK4z
Sign In or Register to comment.