3
$\begingroup$

I'm making this ramen bowl, and I added some details to it, making it relatively high-poly (50k faces). Now I want to create a low-poly version and bake a normal map to it (planning to use this in a game).

I looked up a couple of ways to make low-poly versions of something, and the two methods I found are:

  1. Use decimate modifier (this made a really janky model that didn't really work)

  2. Retopology

I've been trying to use Bsurfaces and Loop Tools to retopologize this model. However, I'm finding it very hard to make the circle shape using quads.

enter image description here

I'm always left with small faces that are weirdly shaped and don't line up nicely, so to speak. Are there any suggestions to make this look nicer? Or am I overcomplicating things in regards to my end goal?

enter image description here

$\endgroup$
1
  • 3
    $\begingroup$ This is certainly a model for reconstruction, not manual retopology.. it's just a surface of revolution (Screw modifier) , on profile geometry .. possibly borrowed and cleaned up from your hi-res version, or just traced, plus some clean-up at the poles on the axis of rotation. $\endgroup$
    – Robin Betts
    Commented Jun 18 at 7:22

3 Answers 3

6
$\begingroup$

If you just extrude a few vertices like this, fitting the profile of the bowl you want.

strong text

Then add these modifiers -

enter image description here enter image description here

You get this.

enter image description here

Then you can just remove/lower the SubSurf mod, maybe add a few more steps to the screw resolution and make that one your low-poly. Like this.

enter image description here

$\endgroup$
3
  • 1
    $\begingroup$ Thank you for the answer! I tried out what you suggested, and it mostly works great except that I have this gaping hole in the bottom of my bowl... not sure why that is happening? I'm guessing it's something to do with how I made my vertices.. imgur.com/a/NrDQmjP $\endgroup$
    – iggy
    Commented Jun 19 at 4:19
  • 1
    $\begingroup$ Actually figured it out, I think my 3D cursor was at 0,0,0 but my first bottom vertex wasn't at 0,0,0 $\endgroup$
    – iggy
    Commented Jun 19 at 5:06
  • $\begingroup$ Awesome, glad to help. Can you accept whichever answer you prefer so the question gets closed? $\endgroup$
    – Jakemoyo
    Commented Jun 19 at 15:12
3
$\begingroup$

You can create a customizable bowl setup with topology resolution, curvature, and other parameters that you can adjust based on your preference:

enter image description here

You can do this using a Geometry Nodes setup like this one:

enter image description here

And this is the custom Node Group named Profile Curve. You can edit this one to change the profile of the curve.

enter image description here

Where the profile curve basically looks like this which is fed into a Curve to Mesh node.

enter image description here

Then you can add a Solidify Modifier and then Subdivision Modifier as well:

enter image description here

$\endgroup$
4
  • 3
    $\begingroup$ A+++ for effort and presentation but jc how unnecessarily complicated XD $\endgroup$
    – Cornivius
    Commented Jun 19 at 14:15
  • 2
    $\begingroup$ @Cornivius thnk you. but yeah, true haha I just felt like it :D $\endgroup$
    – Harry McKenzie
    Commented Jun 19 at 14:19
  • 1
    $\begingroup$ Wow thank you! While I’m prob not going to use this, I really appreciate learning the different approaches you can take since I’m so new $\endgroup$
    – iggy
    Commented Jun 19 at 16:47
  • 2
    $\begingroup$ Isn't it the future of the assets? you download a geonode setup and decide what kind of shape and resolution you want. Of course the setup could be even much more complex, involving UV settings (where to put seams) for example. $\endgroup$ Commented Jun 19 at 18:20
1
$\begingroup$

The OP asked for low poly solution, and the 2 answers given are pathetic* in this regard. A truly low-poly bowl looks like this:

This is just 14 triangles. Granted, there's a subtle difference to the reference provided in question: even though there are reasons to consider equilateral triangles to be low-res-circles, in the year 2024 (or any year of this millennium really) one would hope for a circle that rotates smoothly (you can't see that it rotates), and no low poly solution will satisfy that... Unless...

What if we create a pyramid (just 4 triangles!) big enough to cover bottom half of a 1 m sphere from any angle:

And then use SDF to draw the bowl on this pyramid? Since shader nodes don't support loops yet, how about we go an extra mile and just calculate it directly without the SDF trial-and-error approach: after all a bowl is just a fragment of a sphere, which is so trivial to describe mathematically…

Incoming defines the camera ray direction, and Position is where it hit our pyramid; we can treat the former as a line, the latter as the origin of that line - or add it to move the origin to object's origin: $P + I$, we can then scale this ray direction until it hits the surface of this virtual sphere: $||P + Is|| = r$ ($s$ is scale, $r$ is radius of the sphere, $||$ means the length of the vector, distance from origin). Now the distance is 3D Pythagoras $\sqrt{x²+y²+z²}$, so to get rid of that nasty root I compare with distance². I then rearrange everything into a quadratic equation, solve for $s$ (scale) and conveniently use dot products where applicable to reduce the node clutter (I think I could reduce the setup more but it's getting late). So yeah maths:

It's a little buggy still, not sure why - I think simply the real ray hit position affects reflection, and I can't alter that with (bump) displacement. Shadows definitely rely on real geometry so don't expect those to work…

The bugs get worse if you remove the top face, but if you use some custom shading, you really don't need it…

I know, I didn't add the stand, which would be the bowl with inverted $z$ coordinate check (change Less Than into Greater Than), smaller radius, a good ordering of drawing (probably dependent on the camera coordinate $<0, 0, 0>$ converted to object space having $z$ component above or below zero). Can be done but I got bored.

* - my rudeness is supposed to hint this is a joke-answer.

$\endgroup$
2
  • $\begingroup$ +1 very cool reminds me of blender.stackexchange.com/a/271719/142292 where you can make geometry just from shader nodes. Honestly I don't quite get how it's possible to create geometry with shading, I always thought it was for materials and looks only but never thought you could use it for actual geometry or maybe it's fake geometry? $\endgroup$
    – Harry McKenzie
    Commented Jul 9 at 11:43
  • $\begingroup$ @HarryMcKenzie Fake geo. I missed that thread! Though I wondered why this donut by Crantisz has such a simple node tree, and this is because he uses a volume and so requires cycles and is very slow. But then again my solution is wonky, it doesn't get reflections well and shadows are terrible. The trick is to figure out the direction of the ray and then calculate if it's on the collision course with a sphere of given radius. Then you can calculate if it will collide with the bottom or the top. If the top, you calculate if it would exit also through the top (transparent) or not (draw "inside"). $\endgroup$ Commented Jul 9 at 12:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .