A couple of ideas. Rendering is a problem with transparency and so many planes. Hence the need for "DepthPeelingLayers"
.
{zsol} = Solve[2 a x + 2 b y - z + a^2 + b^2 == 0, {z}];
family = Graphics3D[
{Opacity[0.3], Darker@Red, Specularity[White, 10],
EdgeForm[Directive[Opacity[0.25], Red]],
Table[InfinitePlane[{x, y, z} /. zsol /. Thread[{x, y} -> #] & /@
Most@Tuples[{0, 1}, 2]],
{a, -2, 2, 2/3}, {b, -2, 2, 2/3}]
},
PlotRange -> 2.5,
BaseStyle -> {RenderingOptions -> {"DepthPeelingLayers" -> 70}}]
With Opacity[1]
:
With tangent disks instead of planes, one can start to perceive the outside silhouette of the envelope:
f = 2 a x + 2 b y - z + a^2 + b^2;
norm = D[f, {{x, y, z}}];
env = {x, y, z} /. First@Solve[{# == 0, D[#, a] == 0, D[#, b] == 0}] &[f];
t1 = {norm[[3]], 0, -norm[[1]]};
t2 = Cross[{norm[[3]], 0, -norm[[1]]}, norm];
{t1, t2} = Normalize /@ {t1, t2};
family = Graphics3D[
{Opacity[0.04], Red, EdgeForm[],
Table[Polygon@
Table[env + 1.5 Cos[t] t1 + 1.5 Sin[t] t2, {t, 0, 2 Pi - 0.1,
Pi/4}],
{a, -2, 2, 1/4}, {b, -2, 2, 1/4}]
},
PlotRange -> 2.5];
Style[
Show[family /. Opacity[_] -> Opacity[0.15], PlotRange -> 2],
RenderingOptions -> {"DepthPeelingLayers" -> 150}]