Creating 3D raised textures from solid single-colour images

Hello everyone,

(I anticipated that this would not be viewed as a ‘question’ but rather a discussion, hence my posting it here.)

I have been trying to create the illusion of having raised paint/ink on the surface of an object in Unity 3D, similar to the way raised ink that is sometimes used on business cards. I am designing my images as a single-colour .svg (in Inkscape) and saving them as .png in order to use them as textures. The import has worked perfectly and looks great in the Unity environment, except that it is diffuse.

Does anyone have an idea of how best to approach this? So far, all of my test attempts have yielded poor results.

Thank you,

Peter

Use a normalmap generated from the diffuse texture + some specular and smoothness set in the standard shader? (Assuming unity 5, similar for unity 4)

Thank you, Zicandar! That worked well. I was trying to use specular and occlusion maps alone, and the effect was inconsistent at best. I think I’ll be able to achieve a good result playing around with the normal map parameters.

I minor problem is that the border of the raised image is speckled with white spots. It is particularly noticeable when the camera is at a greater distance. Is this something that you’ve encountered before?

Yep…
It’s a hellish problem called aliasing…
The white dots are specular highlights, and they are “dotty” because the part raised is likely about 1 pixel or less large.
Generally to solve it:
MSAA
Post process AA (Not nearly as good!)
Make it more rough along the edge
Make the edge larger