Home Adobe Substance

Rounded corners filter in Substance Painter

grand marshal polycounter
Offline / Send Message
Obscura grand marshal polycounter

Replies

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    So apparently, this is kind of easy to implement:

  • Ashervisalis
    Offline / Send Message
    Ashervisalis grand marshal polycounter
    That looks really cool. I'll have to try this out later.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    I'm pretty confident you could derive this from  curvature smooth and make it uv independent with a bit of pixel processor fiddling.
  • Udjani
    Offline / Send Message
    Udjani interpolator
    Insert earthquake ''make art'' button.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    The problem with the curvature based method is the hard edged lowpoly mesh. You get literally 0 curvature data from that. That was the 1st thing i tried.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Does per pixel as opposed to per vertex curvature not produce anything for that?

    Can you cheat and average normals when you bake it? 

    Not doubting you BTW, just can't get to a computer to try it
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    I tried per pixel and per vertex too. I havent tried smoothed normals tho. 
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    What does Wes mean by this:

    'My workflow was to bevel all hard edges then bake this mid poly mesh to normal. Now, I can just use this filter on the low poly mesh :) So much easier'

    There was that Designer filter Chamfer2.0 that I tried a few years back that did the same. Then you could blend average/non-average to eliminate skewing.


    https://youtu.be/2V3IRKya-AQ
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    Hey. I just tried the chamfer 2 node and its giving me a lot of errors.


    Also, back to the curvature method topic, the use average normals checkbox does nothing so I used a manually smoothed version for testing, and that one bakes curvature fine.
  • Clark Coots
    Offline / Send Message
    Clark Coots polycounter lvl 13
    I though this was done with UV shell mask too, and requires an SVG or bitmap. Anyone know if there is a way to access the UV coordinates via code magic and auto generate a UV shell mask? I guess that may be flawed the way Designer works, you'd need to feed it a 3D model in a node.... guess baking it out makes sense in the end.
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    You can bake svg inside Designer. Thats what I did too. Disable dilation, and the alpha channel will contain the uv shells mask.
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    While this approach is undoubtedly interesting and may have some cool applications, it also seems fairly limited as it seems to depend on *both* UVs and hard edges - meaning that the optimisation of the final asset itself will be hindered by the requirements of the effect.

    Now I certainly don't want to sound like an evangelist nor do I want to derail the thread, but still : anyone interested in round edge baking ought to check what can be done with the new "Bevel" shader node in Blender 2.8. The outcome can be baked from a source model to a target (therefore the effect is not affecting the UVs of the final asset itself, which can be handled just like any lowpoly in a regular high to low baking workflow) and the results are pretty much flawless imho.



    Anyways, fun stuff.
  • IxenonI
    Offline / Send Message
    IxenonI interpolator
    @pior
    How are things, I hope you are doing well...
    I`ve tried looking into this in Blender and I was wondering if you have any resources you can point me to? As a new blender using a lot of stuff in the baking pipeline there is still confusing to me.

  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Hi there Simon !
    Shift-A in the node editor, search for Bevel, plug that in the normal input. That's it :)
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    That looks so good that it makes this approach absolutely ridiculous. I think people who aren't on blender already (including me), should seriously consider moving now. We can only hear good things about it these days.
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @pior Yes, the Bevel bake results in Blender are great(FAR superior to Modo), but the workflow is still far from perfect. No AA or supersampling so oversize render+downres required. No 'bake by mesh name' or similar auto-explode method(composite baking hack) Results not quite as good as Substance or TB3. Also, the set up is a bit weird, but that's just something that becomes second nature, I suppose.

    I've tested a 'baking wizard' free addon that is great and has a really intuitive workflow, but the dev hasn't found a way to implement an auto-explode method.

    Textools has a very nice bake workflow and a bevel bake option built-in. Still waiting for it to port to 2.80 though.
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Yeah the UX is far from ideal in that regard, no doubt about it - I'd even go as far as saying that it is awful :D However it is compensated quite well by the ability to position parts at specific timeline keyframes (0 for grouped, 1 for exploded) - which actually bypasses the need to even name parts in the first place. In that sense the limitations are quite different from that of a dedicated baking tool.

    I personally wouldn't want to to bake all passes in Blender anyways - just the rounded edges really.

    - - - - -

    But anyways now that this post has been moved to the SP section all this is definitely off-topic. At the end of the day, my point is basically that one probably shouldn't rely too much on an (admittedly useful) hack like the one shown here if it relies on many specific conditions for the low. By that I mean : the fact that it requires the final asset to have all the edges behind the rounded effect to be set to hard (and therefore, split UVs as well) is really an issue because that means many unneeded splits and verts, as well as noticeable shading issues across these edges. Whereas a solution in which the rounded edged source and the lowpoly target are treated separately allows for all the proper optimizations.

    At the end of the day life always finds a way :D Filtering/blurring hard edges of an OS map later converted to TS, or even doing the blurring directly on the TS map after retrieving the selection from the OS has been possible for 10 years and it always worked pretty well :)


  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @pior This is what I wondered about in Blender, can it bake fully averaged(it's using MikkT) from a bevel node? From your last image it appears that's what you're doing. So your low is a single smoothing group(fully smooth shaded) and your 'high' is just the low with hard edges and a bevel node assigned.
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Heya -

    The very last image (red / blue / grey parts) is unrelated to the topic of the Blender bevel shader - this is just a way to illustrate that smoothing edges (by blurring them on the texture itself, after an edge detection selection) has been possible since forever, and to great effect.

    As for the earlier images/comments : Yes ! The effect of the bevel node is fully bake-able. Hence allowing to treat the source and target independently - the "low" doesn't need to have hard edges to support the effect (see the indents on the chrome parts here https://imgur.com/XSUS2TE )

    So if the Substance guys want to support that sort of stuff, they will have to add support for such post processing of edges at the source level ("pseudo highpoly", consisting of a low with manually placed hard edges to control where the effect should show) rather than doing it through a mere filter/effect on the final model and textures - as by definition not all the edges of a low should be set to hard.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    That's rather outside the remit of designer I think.

    I'm wondering now if theres something that can be done with bakes - does anyone know of a paper / open source implementation describing a edge shader? 
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
    poopipe said:
    That's rather outside the remit of designer I think.

    I'm wondering now if theres something that can be done with bakes - does anyone know of a paper / open source implementation describing a edge shader? 
    I've been trying to find this since looking through this thread and have yet to find one. I  was thinking I could just emulate the same math into a pixel processor but have had no luck as of yet.
  • IxenonI
    Offline / Send Message
    IxenonI interpolator
    pior said:
    Hi there Simon !
    Shift-A in the node editor, search for Bevel, plug that in the normal input. That's it :)
    Thanks, I`ll look into it...
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
    Was able to get this with some playing around but the normals look wrong to me. 

  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @pior sorry for the derail again, but since it's being discussed in the thread and pertinent for posterity, I've been messing around with baking Blender's Bevel node straight to the low and bypassing the need for any kind of highpoly altogether(single mesh bake) and it's working really well, and even though I'm very much a Blender amateur and part-time dabbler, it's very easy to set up. :)
    Probably the main letdown is no Cycles supersampling resulting in long render times for compensated oversized maps.
    Now if only Blender had a decent 'auto-explode' feature this could actually be a total workflow-changer for me. At the moment, from what I've looked into baking multiple separate components, there is a very cumbersome collections/layers approach and a not too painful hacky composite approach. Interesting stuff though.

    Even up close the result holds up nicely. Plus there's the added bonus of being able to just penetrate separate geo and get a nice bevel at the intersection, like the half sphere.

  • Justo
    Offline / Send Message
    Justo polycounter
    I'll name my next offspring after whoever develops a Mesh By Name baking feature for Blender. 
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    Justo said:
    I'll name my next offspring after whoever develops a Mesh By Name baking feature for Blender. 
    Next? How many have you got? ;)

    In the meantime, the composite 'hack' actually isn't too bad, and with the Bevel baking there's not nearly as much to deal with as you don't have to set up strict naming conventions or even have to deal with any highpoly meshes.

    Let's say you have 10 meshes as part of the same weapon or whatever. You just select them in groups that won't interfere with eachother's rays and uncheck the 'clear' box and just select and bake. Each successive bake will just add to the map.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    zachagreg said:
    Was able to get this with some playing around but the normals look wrong to me. 


    I still haven't had a chance to look at this - I've been in fbx sdk hell for what seems like forever..

    You can bake tangent maps using one of the normal Bakers (possibly binormals as well but if not you can derive it from normal and tangent)  my working theory is that there may be a way to convert a blurred wsnormal to tangent space using that data - I might have it totally arsewise though. 
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
    poopipe said:
    zachagreg said:
    Was able to get this with some playing around but the normals look wrong to me. 


    I still haven't had a chance to look at this - I've been in fbx sdk hell for what seems like forever..

    You can bake tangent maps using one of the normal Bakers (possibly binormals as well but if not you can derive it from normal and tangent)  my working theory is that there may be a way to convert a blurred wsnormal to tangent space using that data - I might have it totally arsewise though. 
    There is world space direction baker, which if you use a WS as a direction file should convert to tangent space. I don't know how the hell I'd get that into Painter though
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    You can import the bitmaps as resources and plug them into any input of a filter.  Assuming the sums work out it'd be pretty straightforward to build a filter that generated your results and pumped them into the normal channel

    I'm not 100% sure world space direction and tangents are the same.  I think it's the normal from mesh Baker in designer that can do a tangent bake.  You'd have to check but the option is there somewhere. 
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
    poopipe said:
    You can import the bitmaps as resources and plug them into any input of a filter.  Assuming the sums work out it'd be pretty straightforward to build a filter that generated your results and pumped them into the normal channel

    I'm not 100% sure world space direction and tangents are the same.  I think it's the normal from mesh Baker in designer that can do a tangent bake.  You'd have to check but the option is there somewhere. 
    Yea this is true, the main goal with my recent experiments is to get a generator/material working in painter so that I can bake maps from the lowpoly and generate a blurred normal. Which is why I've been looking for that white paper so I can get my head around the math or blurring the normals by using the map data available to be baked in painter.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Im 99% certain you're buggered if you want to keep this pure painter - you're missing a link between the mesh makeup and the textures and no amount of clever maths can make up for that. 

    You could bake the extra maps using the automation toolkit instead.  I've written a couple of painter plugins that launch SAT scripts and I'm confident  it could be integrated relatively seamlessly into a button click  - I'd be happy to lend a hand with that bit if it helps. 
  • pior
    Offline / Send Message
    pior grand marshal polycounter
    Hey there @musashidan - that does look great ! Smooth and perfectly rounded, just the way it should be :) Note that it is also possible to control and modulate the rounding diameter within an object by multiplying the bevel value with vertex color data - therefore allowing for bevels of varying width along an edge, or even the possibility of turning off the effect altogether on certain edges. Tried it on a 2.79 build and it worked, hence I assume that it works as well on 2.8 (can't test it at the moment myself).

    I am confident that quite a few addons will start showing up soon allowing for more fluid scene handling workflows when it comes to baking. If anything now would probably be a good time to write design docs covering all the features such addons should have !
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    @pior Yes, I was pleasantly surprised myself at how well the bevels baked. I didn't think that the larger, more 'chunky' bevels would hold up. I'll definitely look into the vertex data setup as I've just been thinking of using multiple bevel nodes for varying bevel sizes.

    I have no doubt that once 2.80 is finally released we will definitely see a slew of new and exciting addons released, and if more people catch on to this simple and effective setup Blender could become a popular normal baking option. The fact that you don't need a high poly at all will be such a timesaver. I still see a lot of people still using the 'model the highpoly first' workflow for hard-surface.
  • zachagreg
    Offline / Send Message
    zachagreg ngon master
    @poopipe
    I'll take you up on that offer when I get my controls and everything situated in Designer. Any one click solution is still a one click solution. 
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    Blender seriously needs a fix  for baking face weighted /edited/rotated normals correctly
  • Avis Para.doc's
    Offline / Send Message
    Avis Para.doc's polycounter lvl 10
    Damn I didn't expect to find a live thread about that feature!
    Back in Photoshop times we had Maya to photoshop chamfer creator based on masks and color blending. It were usible solution but with unstable results. And from that time I was playing with that kind of filter and I was so frustrated because its so obvious that we all need that tool and nobody made it suitable for pipeline in painter.

    I tryed to complete some sort of stable filter for my home projects and even used it in my work assets production. Then I suddenly find some old basic code from dot3 bump mapping and boom, got a good idea how to increase a quality of chamfers by using not an artistic aproach but a math. And in good test conditions it produces better results than baking.

    My work colleagues was inspired with results and I made a second version that worked in basicly 95% perfectly. But then riality strikes me back on the ground because there is so many human factors like bad uvs, dirty topology, incorrect smoothing groups, software updates, and base designer drawbacks all that you need to take affect in production.

    So its truly a simple idea and easy concept but make it usible and stable is one hell of a deal. And I feel that the best way to produce tool which can make reliable results is to make standalone application. If you want try out that filters you cand find them here. Maybe someone can find them helpful  =)
    Latest version- https://artstn.co/m/vxVV

    One guy told me that he dont what that kind of tool becouse he love to bake all the stuff he model even if it is simple chamfers on a box. So bake all stuff around is some sort of drug and I were surprised by his answer =)


  • Avis Para.doc's
    Offline / Send Message
    Avis Para.doc's polycounter lvl 10
    @pior sorry for the derail again, but since it's being discussed in the thread and pertinent for posterity, I've been messing around with baking Blender's Bevel node straight to the low and bypassing the need for any kind of highpoly altogether(single mesh bake) and it's working really well, and even though I'm very much a Blender amateur and part-time dabbler, it's very easy to set up. :)
    Probably the main letdown is no Cycles supersampling resulting in long render times for compensated oversized maps.
    Now if only Blender had a decent 'auto-explode' feature this could actually be a total workflow-changer for me. At the moment, from what I've looked into baking multiple separate components, there is a very cumbersome collections/layers approach and a not too painful hacky composite approach. Interesting stuff though.

    Even up close the result holds up nicely. Plus there's the added bonus of being able to just penetrate separate geo and get a nice bevel at the intersection, like the half sphere.



    TexTools have explode feature. And you can combine bevel node with creased hard edge + subdivision and bake that mesh to low poly. It will produce chamfers and smooth shading. Some times it's the best solution.

  • monitorhero
    Offline / Send Message
    monitorhero polycounter lvl 6
    @pior sorry for the derail again, but since it's being discussed in the thread and pertinent for posterity, I've been messing around with baking Blender's Bevel node straight to the low and bypassing the need for any kind of highpoly altogether(single mesh bake) and it's working really well, and even though I'm very much a Blender amateur and part-time dabbler, it's very easy to set up. :)
    Probably the main letdown is no Cycles supersampling resulting in long render times for compensated oversized maps.
    Now if only Blender had a decent 'auto-explode' feature this could actually be a total workflow-changer for me. At the moment, from what I've looked into baking multiple separate components, there is a very cumbersome collections/layers approach and a not too painful hacky composite approach. Interesting stuff though.

    Even up close the result holds up nicely. Plus there's the added bonus of being able to just penetrate separate geo and get a nice bevel at the intersection, like the half sphere.

    Sorry digging up this old thread but I tried to recreate your model to test out the bevel node and the edges have some very visible seams. Could you post your UV layout @musashidan


  • Avis Para.doc's
    Offline / Send Message
    Avis Para.doc's polycounter lvl 10
    @monitorhero
    You need to use hard edges and uv splits on them to decrease amount of normal shading compensation. Or make 16bit, or even 32bit bake.


Sign In or Register to comment.