可視化手法 | ![]() ![]() |
データ空間の中でのライトの配置
この例では、球面と立法体を作成し、ライティングに関する種々のプロパティの効果を示します。変数 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-ファイルのコードを調べると、種々のプロパティがどのようにライティングに影響するのかを理解することができます。
![]() | 背面ライティング | 透明性 | ![]() |