| 可視化手法 | ![]() |
データ空間の中でのライトの配置
この例では、球面と立法体を作成し、ライティングに関する種々のプロパティの効果を示します。変数 vert および fac により、関数 patch を使って立方体を定義します。
sphere(36);
h = findobj('Type','surface');
set(h,'FaceLighting','phong',...
'FaceColor','interp',...
'EdgeColor',[.4 .4 .4],...
'BackFaceLighting','lit')
hold on
patch('faces',fac,'vertices',vert,'FaceColor','y');
light('Position',[1 3 2]);
light('Position',[-3 -1 3]);
material shiny
axis vis3d off
hold off
立方体のすべての面の FaceColor は黄色に設定してあります。関数 sphere は球面を作成し、このサーフェスのハンドル番号は、Type プロパティが surface であるオブジェクトを検索するための findobj を使用することによって得られます。関数 light は、Position ベクトルで指定した方向の無限遠点に2つの白色(デフォルトのカラー)lightオブジェクトを定義します。これらのベクトルは、axes座標 [x, y, z] で定義します。
patchは、flat FaceLighting (デフォルト)を使って、各面の可視性を強調します。surfaceは、ライティング効果の最も滑らかな補間が行われる、phong FaceLighting を利用します。material shiny コマンドは、立方体と球面の反射率特性に影響します(しかし、その影響は立方体のflatシェーディングのため球面上でしか認識できません)。
球面は閉じているので、BackFaceLighting プロパティは、カメラとは逆の方向に向く頂点法線の方向を逆転させるデフォルト設定から、望ましくないエッジ効果を取り除く法線ライティングに変更されます。
lighting および material M-ファイルのコードを調べると、種々のプロパティがどのようにライティングに影響するのかを理解することができます。
| 背面ライティング | 透明性 | ![]() |