Froggos being froggos | Project breakdown

For all the frog lovers (myself included)

Made this for last weeks render challenge with the theme “A place to call home”

Here is a little breakdown regarding some of the things that I found the most interesting to work on (or I guess find shortcuts for)

The back legs

Since I had no plans to extend the back legs for the render I decided to just simply extrude, scale and rotate faces with a cube as the base to create the leg shape (which I hadn’t realized was that funky-looking until I actually looked at a reference) and don’t pay any mind to intersecting geometry.

Main body shape

By far the easiest part to model: Add a cube, mirror, extrude, subdivide.
I left out a lot of distinct details for the body mesh itself and focused mostly on getting the silhouette looking good for reasons I will outline in the more interesting section (geometry nodes :D). The only specific detail I added to the head part was the nostrils. You might notice that the body mesh has a much denser topology which will also be important for the more interesting section.

The interesting section

Finally!

Eye displacement

The first geometry nodes setup I made was a simple proximity modifier with some controls (seen in the modifier to the right) that controls how the mesh around the eye objects should displace.
As usual with procedural geometry effects there is no single “ideal” setting so it’s mostly a matter of tweaking the values until you get something that “looks right”.

Otherwise it can lead to things like this (where you can also kind of see in what ways the mesh is being modified):

The mouth

Since I knew the mouth would be closed I decided to just displace the mesh to create the illusion of a mouth instead of dealing with splitting vertices and modeling the inside.
To do this I use a proximity object (in this case just some edges) to determine the placement and shape of the implied mouth.

First the proximity object’s vertices are placed on the frog mesh in the geometry nodes setup using “Sample Nearest Surface” to make the proximity distance even along the entire length of the proximity object (also means you don’t have to be precise at all with the placement and distance which just makes it easier overall to adjust if needed).

Doing it this way allows me to have full control of the mouth shape and it could easily be animated if needed

“Merging” the body parts

My first attempt at giving the illusion of a single mesh for the whole frog was to do a normal transfer based on proximity. However while looking at reference images I realized that frogs are actually very chunky and squishy, meaning that when their body parts are close together the skin tends to fold over itself. Another perfect use case for geometry nodes!

So again I made a geometry nodes setup that uses proximity of the legs to displace the body mesh. This also had the added benefit of creating something I had seen in a lot of reference images: the frog “butt”

And again, this can be taken to some more extreme cases (if you would ever need it (not that you would (unless.. ._.)))

Unused idea

One thing I wanted to solve was the inflation that occurs when a frog is croaking, and while I did create a geometry nodes setup for that I ended up not using it for the final scene.

Here is a quick breakdown of it either way:

I use a simple mesh consisting of two edges which I then modify in the geometry nodes modifier to create an arced mesh.

The effector mesh could be rigged to the same frog armature to allow movement of the head for example while still affecting the correct parts of the frog mesh in the correct way.

I then use the proximity of this generated mesh to displace the frog mesh based on the normals of the proximity mesh to produce this big ol’ neck

And of course you could easily animate the croaking procedurally with a Scene time node and some math nodes!

Just chilling, talking to his buddies across the pond

PANIK

Material setup

Eye material

Making the eye material was pretty straight forward since the eyes for the style of frog I was making are generally fairly simple.
The base is a voronois texture colorized with a color ramp and mixed together with a big pupil. The pupil itself is just a combination of color ramps for the XY/UV coordinates with some modifications to rotation and location.

In addition to the eye material I also create an outside shell with geometry nodes and apply a different material to it. The “dome” material is mostly the Principled BSDF with full transmission, zero roughness and some sheen and coat added for good measure.

The frog material

The material for the frog skin is procedural (and too big to fit into a screenshot) but I will highlight some key points within it

Mixing of body and belly

To add variation in the respective colors of the body I colorize a noise texture with two different color ramps and mix them together using an attribute that I named “Underside”. This attribute is just a vertex group that I assigned manually.

Here you can see the vertices of that vertex group selected and how it affects the color mixing.

Obviously those jagged edges and wierd blending is not what you would want, so I created a geometry nodes setup that just blurs the vertex group attribute before it’s being used in the material.

Perhaps the same effect could have been achieved with weight painting, but keeping things non-destructive is one of my favorite pastimes :smiling_face_with_sunglasses: It also allows me to adjust the blending on the fly.

The geometry nodes:


Very simple, just blurs the attribute X-amount of times


Blur iterations exposed in the modifier for easier access

A comparison of blending with 5 iterations versus 100 iterations:

The bumpiness

To create the bumpy skin I use a Voronoi texture (smooth F1) that I modify slightly with a color ramp to even out the harshness before finally using the “Underside” attribute once more to lessen the bumpiness on the belly area

I use the same trick and Voronoi texture to create a roughness map:

As a final touch to the bumpiness I use another noise texture to add some overall randomness to the bump strength. I feel like it adds a little bit of “life experience” by giving the skin imperfections and implied wear and tear from a frog-life well lived.

And lastly I use a Voronoi texture to add displacement while letting the same noise texture setup I used for the “wear and tear bumpiness” control the scale of the displacement!
This especially helps with adding to the chonky squishiness of the frog skin (most noticable on the limb here)

Until next time; this has been a PFA (Public Froggo Announcement)

41 Likes

Very interesting breakdown - thanks :slight_smile:

The entry deserved the win, but time was “against” you :stopwatch:

1 Like

I really enjoyed the winning submission though as I love cats too :grinning_cat: Was a deserved win

supper amazing !

1 Like

@alf0 Thank you!

1 Like

Awesome frogs! You explained all of it very well, too.

1 Like

@Sarah_Draws The froggos says thanks!

1 Like

Decided to do some more work on the croaking setup for a short animation I will work on over the weekend

It now has:

Automatic swallowing(? Is that what it is? The thing they do constantly)

and

Pre-croak inhaling

Each feature has its own affector mesh which is attached to the relevant bones using Hook modifiers so that the froggo can be animated without messing up the setup

!WARNING! Very lazily animated parameter values for showcasing purposes

Here are the current exposed parameters that controls the different behaviours:

The breather frequency (swallow frequency?) controls how fast it repeats and the offset is there so that different froggos with the same frequency don’t have to be in sync (unless they want to of course, I won’t judge) :frog::frog:

5 Likes

happy frogyyy :heart_eyes:

1 Like

I now have access to nearly unlimited variations of froggos (for non-nefarious purposes) thanks to the different geometry nodes setups!

From skinny to chonky to mega-chonky, we got them all :frog::frog::frog::frog:

5 Likes

A breakdown/showcase of an animation that spawned from the froggo setup in this thead!

2 Likes

You’re on the featured row! :+1:

1 Like

Thanks @bartv :grinning_face_with_smiling_eyes: