How to do it...

Let's start by editing the RadiusShader file:

  1. In the new shader, remove the _Glossiness and _Metallic properties and add these four properties:
_Center("Center", Vector) = (200,0,200,0) 
_Radius("Radius", Float) = 100 
_RadiusColor("Radius Color", Color) = (1,0,0,1) 
_RadiusWidth("Radius Width", Float) = 10
  1. Add their respective variables to the CGPROGRAM section, remembering to remove the declaration of _Glossiness and _Metallic:
float3 _Center; 
float _Radius; 
fixed4 _RadiusColor; 
float _RadiusWidth; 
  1. Input to our surface function requires not only the UV of the texture but also the position (in world coordinates) of every point of the terrain. We can retrieve this parameter by changing the struct Input as follows:
struct ...

Get Unity 2018 Shaders and Effects Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.