Home 3D Art Showcase & Critiques

[Finished] Kaminsky Handheld Device

greentooth
Offline / Send Message
Vertrucio greentooth
The final piece:



Taking a break from some other work to make this handheld pad from Kaminsky designs, used with permission.

All critiques welcome.

The concept:


Here's the current progress:


Originally I'd worked with a subd only workflow for practice, but found that blender's remesh modifier alongside smoothing modifier did a pretty good job of bringing hard surface stuff together. So I've switched to a combination subd and medium detail modeling, then boolean and remesh/smooth workflow to unify it.

Previously I'd used Zbrush to do the booleans and finish the highpoly. It's nicer to stay in one app, but Blender's modifiers are a bit slow, and there's a lack of fine control. I'm going to use vertex groups and data transfer to try and get some control back.

More shots:

Replies

  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Made some fixes and got some of the more complex forms in subd. Checking the surface with a metallic material just in case.

    Just a few more tricky parts. and making something up for the back.

  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth

    Doing a test of the hinge and lid opening mechanics for this, and it worked!

    I was worried about this change to the concept, since it required animations to maintain the look and still function.


  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Highpoly is done. Just testing colors and getting a beauty shot. I forgot to duplicate all the meshes before applying all the modifiers, so now I'm stepping back a few files to split off the base meshes into lowpoly collections in blender, which I can then just append into the latest blend file.

  • HarlequinWerewolf
    Online / Send Message
    HarlequinWerewolf polycounter
    So cleeeeeeeeeeeeean! I love it! Looking forward to seeing how you do the textures for such a clean design
  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Did some test UVs and bakes to check my lowpoly modeling decisions. It turned out okay with some obvious things to fix. However, I'd like to up my lowpoly mesh game with complex assets like this, so any critique is welcome.

    This will be a hero prop, seen up close, and currently sits at ~14k tris

    Main thing worrying me are all those long and thin polys, and a lot of the transition areas between main forms. RTX doesn't like some areas at steep light angles and I may try to fix that by adjusting the meshes to be even closer to the highpoly, but I don't know if it's worth the effort. I may also have left too many unnecessary bevels in the low poly.

    Time to deep dive into Blender UVs after using Maya for so long.


  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Everything related to UVs in Blender takes 3-6 additional steps compared to any other package, and gets worse if you need fine control. But, I finally got this unwrapped.


  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    En-materiation begin!

    j/k some normal and other issues I need to fix before really drive into the materials. Nothing I haven't dealt with before, just stuff like the flat surface normal jank like you can see on the flat area under the lid, the top panels, etc. Those flat areas should be bordered entirely with hard edges, ideally in their own UV island split off to make sure it's baked flat and the triangles don't appear. I forget the technical reason why this is, need to read up on it again.

    Also some leftover unintended hard edges, because blender requires you set autosmooth set to 180 angle, before any manually marked sharp (hard) edges will take effect.

    Because substance can be a paint to see and paint things from one angle, before exporting to substance you should just duplicate your mesh a bunch and rotate it to better angles, and hide parts that get in the way of painting.

  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    The bane of my hard surface career: the flat panel normal jank.

    It's mainly a problem with metallic or glossy materials... oh wait, that's almost all the medical equipment I've been modeling the past 2 years. Thankfully, the fix is easy enough, but will require some UV adjustment.


  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    It's starting to look like an NES accessory
  • BlueFlytrap
    Offline / Send Message
    BlueFlytrap polycounter lvl 9
    Vertrucio said:
    The bane of my hard surface career: the flat panel normal jank.

    It's mainly a problem with metallic or glossy materials... oh wait, that's almost all the medical equipment I've been modeling the past 2 years. Thankfully, the fix is easy enough, but will require some UV adjustment.
    It may be quicker and easier to instead flatten the vertex normals along the top of your flat panels so the normalmap doesn't have to do any work. No need to cut up the uv.




  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Did you mean to do something like harden the edges, and set normals to face?



    The problem that my old team ran into is if you don't cut and separate the UV seams where you split/harden the normals, then you get a nasty obvious seam along every split edge in the bake.

    However I just tried the above, which seems to fix the issue without the need to cut UVs. The normals aren't split, they're just Set to Face, and the edges have to be hardened (and in Blender autosmooth needs to be on, but set to 180). With those two combined, I can avoid cutting the UVs. However, I'll still have to test this in engine as that's where a lot of these issues finally show.

    I'm so glad that the Blender 4-5 roadmap has a giant change to the way they handle normals, even removing the extra step of autosmooth 180, and manual sharps as its weirdly required for game meshes.


  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    So I just tested this method all the way through and into Unity, and it works! I'm not sure WHY it works, but it's a huge time saver from what I learned at my previous job. The key is to not let the normals split, and just have the vertex normals be perpendicular to the flat area, AND have a hardened edge.

    I can't say how to do this in Maya, since I recall Maya auto splits normals when you harden an edge, but there should be a way to.

    But, seeing this in Unity when it used to be a common annoyance at my previous job is a relief.
  • BlueFlytrap
    Offline / Send Message
    BlueFlytrap polycounter lvl 9
    Vertrucio said:
    So I just tested this method all the way through and into Unity, and it works! I'm not sure WHY it works, but it's a huge time saver from what I learned at my previous job. The key is to not let the normals split, and just have the vertex normals be perpendicular to the flat area, AND have a hardened edge.

    I can't say how to do this in Maya, since I recall Maya auto splits normals when you harden an edge, but there should be a way to.

    But, seeing this in Unity when it used to be a common annoyance at my previous job is a relief.
    Glad I could help.
    So why this works greatly simplified is we're taking the equation for how something looks 'lowpoly + normalmap = highpoly' and taking lowpoly out. Or most of lowpoly anyway.

    First off; Normalmaps baked from highpoly are the above equation moved around. 'highpoly - lowpoly = normalmap'.
    A highpoly facing up(0) - a lowpoly facing left(-1) = a normalmap facing right(+1).

    If the lowpoly is instead a metaphorical zero that shortens the equation down to 'highpoly = normalmap'.
    A highpoly facing up(0) - a lowpoly facing up(0) = a normalmap facing up(0).
    A highpoly facing left(-1) - a lowpoly facing up(0) - a normalmap facing left(-1) With me so far? Lets add error to the mix.


    Error happens is because the lowpoly and normalmap don't both use the same kind of number.
    Once again simplified the highpoly and lowpoly can use decimals but the normalmap cannot.
    Highpoly(6.40) - lowpoly(3.17) = normalmap(3.23)
    But normalmaps cannot have decimals. So instead of 3.23 we get really get 3.
    lowpoly(3.17) + normalmap(3) = 6.17.
    Our highpoly was 6.40 so 6.17 has error from the normalmap. Now for the wobbly surface ripple on reflections.

    The rippling happens because each lowpoly triangle on the model has 3 decimal numbers. We will once again simplify and instead say each triangle has 2 decimal numbers. A triangle will use both those numbers as well as Every Single Decimal Number Between Them. The normalmap still cannot use decimals.
    So what happens if we have 'lowpoly(4.40 & 4.92) + normalmap(3)'?
    Out of all fifty-ish numbers the lowpoly uses the normalmap will add up to the right number exactly once. Every other number is error. That is a lot of error. An entire curve of error.

    The ripples are all of those error curves made visible. The many hundreds of thousands of spots across the entire triangle where the normalmap can't add the right number.
    Having the triangle use the metaphorical 0 from earlier means rather than two numbers with thousands of numbers between them instead the triangle has just one number. Once again shortening it down into 'highpoly = normalmap'.
    Mind you we will still almost always have error since the highpoly has decimals and the normalmap doesn't. But the error is the same across all the triangles of the flat panel instead of curving wildly along where each triangle meets another.
  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    This is exactly the kind of technical stuff I wanted to learn. Thank you! While I understood the basics of this, I'm also just as curious as to why these other methods to fix also worked and didn't work.

    Why just moving the normals to point perpendicular without setting the edges to hard didn't work at all for the baker. Or why splitting the normals caused seams unless the UV was cut. I haven't had time to really get the fundamental math behind it, let alone deep dive into it. But I'm gonna have to learn it if I want to write shaders and do other tech art related stuff.
  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Nonstop texturing today. Still WIP. Not convinced this is conveying the idea of heavily used, but well maintained look I was going for. I need to have something for tomorrow, as that's my deadline. Current goal is to finish this, but revisit later when I animate the screens after some time learning Unreal's UMG.

    As always all critique welcome.



  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    Enjoy these semi-final renders of the Kaminsky Handheld. Still plenty of work to do, but I wanted to have something of these for Portfolio Day. I'm going to wait until I've had some rest before fixing the mistakes, getting nice renders and breakdowns, then updating my portfolio. I'm still going to learn UMG to get this in Unreal with animated UI, but one step at a time.

    Any critiques are always welcome.


  • Tits
    Offline / Send Message
    Tits mod
    Looking clean!
  • BlueFlytrap
    Offline / Send Message
    BlueFlytrap polycounter lvl 9
    Vertrucio said:
    This is exactly the kind of technical stuff I wanted to learn. Thank you! While I understood the basics of this, I'm also just as curious as to why these other methods to fix also worked and didn't work.

    Why just moving the normals to point perpendicular without setting the edges to hard didn't work at all for the baker.
    Honestly vertex normal export from all modelling tools is kinda screwy. Anytime I export something I immediately re-import it to see if it broke. Especially since what breaks them can be version specific. Newer versions of 3ds are somehow worse with this.
    Vertrucio said:
    Or why splitting the normals caused seams unless the UV was cut.
    A vertex can only point in one direction. Splitting the normals literally puts a second vert in the same spot pointing a different direction.
    Normalmap cannot fix two directions in the same spot without error. It only gets one hypothetical number remember.

    Splitting the uv and moving it means those two verts are no longer in the same spot. Normalmap can work with both now. Downside is you now have slightly less resolution on your final model. The padding between UV islands has to come from somewhere after all.


    Having the seam wasn't always a bad idea either. Older texture compression was really, really mean to normalmaps and the seam helped a lot. Yeah there's some edge here and there but still better than no normalmap at all.









  • Vertrucio
    Offline / Send Message
    Vertrucio greentooth
    It's done! For now...

    More shots and breakdowns to follow.

    I plan to revisit this to fix anything that comes up once when I create the animated UI for Unreal. But right now I need to start on some weapon props for potential jobs.



  • pxgeek
    Offline / Send Message
    pxgeek greentooth
    turned out nice!
  • iam717
    Offline / Send Message
    iam717 interpolator
    Cool was fun to see the progress, yeah, just would've liked to see more "grime/dirt/buildup" to areas that would be touched a bunch (both sides of that "door") like the front panel that opens for the tablet pad/workspace, probably would be cool to see some sort of hand or outline of how one would use this thing and go full on animated with it, probably not too much to do, with unreal and some "default" hand.  Otherwise i like the colors, looking forward to more when you get around to it.
Sign In or Register to comment.