\begin{tikzpicture}[scale=0.75]

% Constants

	% Sphere radius
	\def\minR{2} % Primary reference sphere radius
	\def\maxR{3} % Maximum sphere radius
	\def\sphereWeight{1} % Thickness of sphere curve in pt
	\def\unitLength{0.8} % Length that a unit vector is drawn as

% Clip region

	%\tkzInit
	\tkzInit[xmin=-0.5,xmax=7.1,ymin=-0.5,ymax=4.0]
	\tkzClip

% Points

	% Origin (viewpoint)
	\tkzPoint*(0,0){O}

	% Sphere center
	\tkzPoint*(4,0){C}

	% Intersections

		% Directionpoint for tangent ray
		\tkzPoint*(1,0.58){Odt} % Odt = Directionpoint at O for vector t

		% Intersect tangent ray with maximum sphere
		\tkzInterLCR(Odt,O)(C,\maxR cm){U}{I} % I = back facing intersection

	% Unit vectors

		% Calculate tangent ray vector
		\tkyUnitVect(O,Odt){t}

		% Calculate sphere normal
		\tkyUnitVect(C,I){s}

	% Create vectorpoints

		% Tangent ray at O
		\tkyPointVectL(O,t,\unitLength){Ovt} % Ovt = vectorpoint at O for vector t

		% Sphere normal at I
		\tkyPointVectL(I,s,\unitLength){Ivs}

		% Sphere normal at C
		\tkyPointVectL(C,s,\unitLength){Cvs}

% Drawing

	% Points

		% Origin
		\tkzDrawPoint[pos=below left](O)

		% Sphere center
		\tkzDrawPoint(C)

		% Tangent ray intersection point
		\tkzDrawPoint[noname](I)

	% Vectors

		% Tangent ray
		\tkzDrawVector(O/Ovt);
		\tkzDrawPoint[name=$\unit{t}$,pos=above left,size=0](Ovt)

		% Sphere normal at back facing intersection
		\tkzDrawVector(I/Ivs);
		\tkzDrawPoint[name=$\unit{s}$,pos=below right,size=0](Ivs)

		% Sphere normal on primary reference sphere
		\tkzDrawVector(C/Cvs);
		\tkzDrawPoint[name=$\unit{s}$,pos=below right,size=0](Cvs)

	% Line segments

		% From origin to center
		\tkzSegment[style=dashed](O/C)

		% From tip of tangent ray to back facing intersection
		\tkzSegment[style=dashed](Ovt/I)

		% From center to primary reference sphere
		\tkzSegment[style=dashed](Cvs/I)

	% Angles

		% Tangent angle
		\tkzMarkAngle[size=0.5,dist=0.15,labelsize={},label={\tau}](I/O/C)

		% Upper bound on normal angle
		\tkzMarkAngle[size=0.5,dist=0.15,labelsize={},label={\gamma_0}](O/C/I)

	% Mountain
		\draw ( 4.00, 2.00) 
		  -- +( 0.25, 0.25)
		  -- +( 0.30, 0.20)
		  -- +( 0.50, 0.50)
		  -- +( 0.55, 0.45)
		  -- +( 0.91, 0.82)
		  -- +( 1.00, 0.30)
		  -- +( 1.07, 0.32)
		  -- +( 1.09, 0.04)
		  -- +( 1.16, 0.07)
		  -- +( 1.18,-0.36);

	% Spheres

		\tkzPoint*(6,0){P}
		\tkzPoint*(7,0){M}
		
		% Primary reference sphere
		\tkzCircleR[lw=\sphereWeight pt](C,\maxR)
		\tkzDrawPoint[name=\entity{P},pos=left,size=0](P)

		% Maximum sphere
		\tkzCircleR[lw=\sphereWeight pt](C,\minR)
		\tkzDrawPoint[name=\entity{M},pos=left,size=0](M)

\end{tikzpicture}
