2
$\begingroup$

enter image description here

The image shows the same model with a level of subsurf, and with a 15deg planar decimate. The shaders are grey toon diffuse and gloss mixed with Fresnel.

I want to get the sort of look you get by using planar decimate on a model without directly decimating the model. The goal is to get planar shading, but without breaking up the silhouette of the model the way that decimating it will.

Ideally, I would have the regular version of the mesh, and then transfer normals from a decimated version of the mesh via the Data Transfer Modifier. However, this causes blender to crash if the mesh has any complexity, such as for this character, and can have other problems. So I am looking for other options.

Is there any way to use a material to get a more planar look? A baked normalmap may work, but would contribute to VRAM issues.

$\endgroup$
7
  • 1
    $\begingroup$ I don't really understand what you mean. Could you post some screenshots? $\endgroup$
    – JakeD
    Sep 8, 2016 at 22:39
  • $\begingroup$ @Drudge please edit your question and add an image that illustrates what you are after. $\endgroup$
    – user1853
    Sep 9, 2016 at 0:01
  • $\begingroup$ Could you be looking for the Edge Split modifier? It will give you flat shaded areas without altering the geometry. You could also use the "Auto Smooth" option in the *Properties Window > Object Data > Normals > (mesh objects only) $\endgroup$ Sep 9, 2016 at 1:03
  • $\begingroup$ How about Bake Normal Maps with Cycles? That one concentrates on baking normals from a highpoly object to a lowpoly one, but it should be perfectly doable to do it the other way around. $\endgroup$
    – user27640
    Sep 9, 2016 at 3:11
  • $\begingroup$ Picture added, sorry folks. And @DuaneDibbley baking normal maps should work, and I'll accept that as an answer if we can't find another option. But I'm hoping to avoid it due to VRAM consumption of textures. (Also your name is the best.) $\endgroup$
    – Ascalon
    Sep 9, 2016 at 7:49

1 Answer 1

1
$\begingroup$

I've done this with a baked normal map, but as you point out, image textures do require a bit of memory. I've already prepared two characters, one is the default character from MakeHuman with two subdivisions, and the other is a duplicate of that, which I decimated with Planar and an angle of 5 degrees. I've also made sure they're aligned with each other on all axes.

Prepare an image to contain the normal map. Open up the UV/Image Editor and click New. I used the default settings.
enter image description here

Select the undecimated character and go into the Compositor. Add an image texture and change it to Non-Color Data. Add a Texture Coordiante node and connect its UV socket to the Vector socket of the Image Texture node. Do not connect the output of the Image Texture node to anything yet. If you do, you may get a Circular Reference error when baking.
enter image description here

Go back to the 3D View.Expand the Bake section in the Render panel, change Bake Type to Normal, enable Selected to Active, and set the Ray Distance to something higher than 0. Select the two objects. Make sure you select the decimated one first, then while holding Shift select the undecimated one. Then click Bake.
enter image description here

Once the baking is done, open up the UV/Image Editor and select the image you created. It should now contain the normal map. Make sure you save it or pack it before doing anything else, or you may lose it.
enter image description here

Go back to the 3D View and select the undecimated object, the go into the Compositor. Add a Normal Map node. Connect the output from the Image Texture node to the Color input of the Normal Map node. The connect its Normal output to the Normal input of any shader you want to be affected by this.
enter image description here

Here's the result I got with my characters. I've exaggerated the effect of the normal map by turning its strength up to 2.
enter image description here

With this render, RAM usage peaked at 63.95MB. I'm not GPU rendering, because my GPU is basically a potato, and I do not know if textures require more, less or the same amout of RAM when rendering on GPU. I used default settings when creating the image, so I did not enable the 32 bit Float option and the size is 1024x1024. If you require higher quality, it will obviously use up more RAM.

$\endgroup$

You must log in to answer this question.

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