So far there is no equivalent for pointiness in Eevee. Instead, we will have to work around this problem to get this effect.
How to use pointiness in Eevee? To use pointiness we have to bake it from cycles and use it in our Eevee material.
In this article I will walk you through the workflow of getting pointiness into Eevee from a cycles bake.
What is pointiness and why would we want it in Eevee?
Pointiness is a geometry based property that we can use when we create materials. In cycles, pointiness detects where we have edges in our object and based on that information creates a black and white mask based on the angles.
This can be used to create wear and tear along the edges of an object. Making them more realistic.
The pointiness attribute is heavily dependent on the amount of vertices in our model. The more geometry we have the more accurate result we can get.
This means that even if we are using cycles, we might want to bake pointiness from a mesh with more dense geometry and use it on a low poly object for a more accurate mask.
What are the requirements to get pointiness to Eevee?
In order for our object to be ready to accept a baked texture with pointiness data we will need a UV Map on the object. The UV Map needs to be non-overlapping.
For simpler objects, tab into edit mode, press “A” to select everything and then “U” and choose “Smart UV Project”.
If you are not sure how to work with UV maps you can read my Ultimate UV Mapping guide here.
To organize and pack the UV Map I like to use the UV Packmaster Pro 2 add-on. You can read the review of UV Packmaster Pro2 here. It allows us to pack the UV Map with a single click.
We also need a material on our object. If you don’t have one setup, go to the material properties tab in the properties panel and click the “Plus” to add a new material.
If your object has multiple materials, duplicate the object, delete all materials and add a new one.
We will use this copy to bake the pointiness mask, and as long as our original object has the same UV Map and we can use the baked mask on any of the materials in our original object.
I also like to use the node wrangler add-on, so if you haven’t go to “preferences”, find the “add-on” section and search for “node wrangler” and enable it.
Let’s get on with the baking workflow.
What is the workflow to get pointiness into Eevee?
In this example I will use a single object with a single material and a single UV Map. This video will show the workflow and the article will describe it.
Once we have a UV Map we can start to create the material.
Change the render engine to cycles in the properties panel.
Select your object and go to the Shader workspace.
Set the shading mode to render.
You can use “Ctrl+B” in the 3D viewport to create a render border for better performance. To clear the border, use “Ctrl+Alt+b”.
In the node editor, press “Shift+A”, hit search and type “image texture”
On the image texture node, press new to create a new image that we will bake to. Name the image and set the resolution. I will stick to the defaults.
Then add a “Geometry” node and a “Colorramp” node. The geometry node is what gives us the pointiness attribute. Connect the pointiness to the colorramp.
With the node wrangler add-on enabled, press “Ctrl+Shift+mouse click” on the colorramp node. This will connect the colorramp to a “viewer” node and plug the viewer node into the material output. The viewer node is really an emission shader with the strength set to 1.
Move the two flags very close to each other in the middle of the ramp. This step can be a bit tricky. You should have rendered view turned on so that you can see the changes in the 3D viewport as you drag the flags.
I ended up with the position value 0.554 for the black flag and 0.559 for the white flag in my testing. That is very close indeed.
If you still can’t see a change in the 3D viewport. Add a subdivision surface modifier to your object and set it to simple. Increase the viewport subdivisions to 2-4 depending on your object.
You can also try the bevel modifier and increase the segments.
When you are happy with your pointiness mask, select the Image texture node created earlier. This node should not be connected to anything. Just present in the node editor for our material with the image texture we want to bake to selected.
Now go to the render tab in the properties panel and find the bake section close to the bottom.
Set the bake type to emit. This will bake the emission output of our material and since the viewer node is an emission shader we will bake what we see to the UV Map connected to the image texture node.
In this case we don’t have anything connected to the image texture node so Blender will use the default.
Press bake. The bake should be very quick to finish.
We should now have a baked texture with the pointiness data written to it.
Change the render engine from Cycles to Eevee.
Connect the image texture node to a principled BSDF base color input. You should have one in your nodegraph if you didn’t delete it.
Connect the Principled BSDF to the material output node and you should get a preview of your pointiness in Eevee.
That is currently how we can get pointiness from Cycles to Eevee.