MATLAB: Lighting only certain surfaces

lightsurf

I'd like to create a lit sphere, to be placed on an unlit surface. For example,
membrane;
[x,y,z] = sphere(40);
hold on;
surf(0.1*x,0.1*y,0.1*z+1);
light % lights everything!
The last command lights everything, but I just want to light the sphere. How would I do that?

Best Answer

Manually set the facelighting property of each object:
Z = membrane;
H(1) = surf(Z);
[x,y,z] = sphere(40);
hold on;
H(2) = surf(0.1*x,0.1*y,0.1*z+1);
set(H(1),'facelighting','none');
set(H(2),'facelighting','phong');
light % lights everything!