그래픽스 객체의 반사율 특성
정반사와 난반사
patch 객체와 surface 객체의 반사율 특성을 지정하고 이를 통해 장면에 조명을 적용할 때 이들 객체의 보여지는 모습에 영향을 줄 수 있습니다. 특정 결과를 생성하기 위해 이러한 특성들을 같이 조정할 경우가 꽤 있을 것입니다.
편리하게 특정 조명 효과를 생성하는 방법을 보려면 material 명령도 참조하십시오.
SpecularStrength 속성과 DiffuseStrength 속성을 설정하여 객체의 곡면에서 정반사와 난반사의 양을 제어할 수 있습니다. 다음 그림은 다양한 설정값들을 보여줍니다.

주변광
주변광은 장면 내 모든 객체에 균일하게 비추는 방향성이 없는 빛입니다. 주변광은 좌표축에 light 객체가 있을 때만 볼 수 있습니다. 주변광을 제어하는 속성은 두 가지가 있습니다. AmbientLightColor는 색을 설정하는 axes 속성이고 AmbientStrength는 특정 객체에 비치는 주변광의 명암을 결정하는 patch 객체와 surface 객체의 속성입니다.
다음 그림은 다양한 명암에서 세 가지 다른 주변광 색을 보여줍니다. 구는 빨간색이며 장면에는 하나의 흰색 light 객체가 있습니다.

녹색 조명에는 빨간색 성분이 없으므로 녹색 [0 1 0] 주변광은 장면에 영향을 주지 않습니다. 하지만 RGB 값 [.5 0 1]로 정의된 색은 빨간색 성분을 포함하므로 구에 비치는 조명에 영향을 미칩니다(단, 흰색 [1 1 1] 주변광보다는 그 영향력이 덜함).
정반사 지수
반사면 지점의 크기는 patch 객체와 surface 객체의 SpecularExponent 속성값에 따라 결정됩니다. 이 속성의 일반적인 값 범위는 1~500이며, 일반적인 객체는 5~20 범위의 값을 갖습니다.
다음 그림은 세 가지 다른 SpecularExponent 속성값으로 흰색 조명을 비춘 빨간색 구를 보여줍니다.

색상 정반사율
정반사되는 조명의 색 범위는 객체 색과 광원 색의 조합부터 광원 색만 사용하는 것까지 다양할 수 있습니다. patch와 surface의 SpecularColorReflectance 속성은 이 색을 제어합니다. 다음 그림은 흰색 조명을 비춘 빨간색 구를 보여줍니다. SpecularColorReflectance 속성값의 범위는 0(객체 색과 조명 색)부터 1(조명 색)까지입니다.

후면 조명
후면 조명은 내부 면과 외부 면 사이의 차이를 보여 주는 데 유용합니다. 아래 잘려진 원통면 그림은 후면 조명의 효과를 보여줍니다.

BackFaceLighting의 디폴트 값은 reverselit입니다. 이 설정은 카메라 반대쪽을 향하는 꼭짓점 법선의 방향을 반전함으로써 내부 곡면이 카메라 쪽으로 조명을 반사하도록 합니다. BackFaceLighting을 unlit로 설정하면 카메라 반대쪽을 가리키는 법선을 가진 면에 대한 조명이 비활성화됩니다.
데이터 공간에 조명 배치하기
이 예제에서는 구와 정육면체를 만든 후 두 개의 광원으로 조명을 비춥니다. light 객체는 무한에 위치하고 있지만, 이들 객체의 위치 벡터로 지정되는 방향에 있습니다.
% Create a sphere sphere(36); axis([-3 3 -3 3 -3 3]) hold on % Create a cube fac = [1 2 3 4;2 6 7 3;4 3 7 8;1 5 8 4;1 2 6 5;5 6 7 8]; vert = [1 1 1;1 2 1;2 2 1;2 1 1;1 1 2;1 2 2;2 2 2;2 1 2]; patch('faces',fac,'vertices',vert,'FaceColor','y'); % Add lights light('Position',[1 3 2]); light('Position',[-3 -1 3]); hold off
light 함수는 Position 벡터로 지정되는 방향으로 무한에 위치한 두 개의 light 객체를 정의합니다. 이 벡터는 좌표축 좌표 [x, y, z]로 정의됩니다.
