polyCloseBorder でポリゴンモデルの穴を埋めて、穴埋めのために新しく追加されたポリゴンには lambert1 を割り当てる MEL スクリプトです。
画像のように、ポリゴンモデルをバラバラにするモデル分割スクリプトなどで割れ目に別のマテリアルを割り当てたい場合に応用できます。
global proc FillHoleAndAssignInitialMaterial(string $target_name)
{
int $prev_face_counts[] = `polyEvaluate -face $target_name`;
polyCloseBorder -ch false $target_name ;
int $face_counts[] = `polyEvaluate -face $target_name`;
int $diff_count = $face_counts[0] - $prev_face_counts[0];
if ($diff_count == 0)
{
return;
}
int $added_first_index = $prev_face_counts[0];
int $last_index = $face_counts[0] - 1;
sets -e -forceElement initialShadingGroup ($target_name+".f["+$added_first_index+":"+$last_index+"]");
}
使用例
string $selected[] = `ls -sl`;
FillHoleAndAssignInitialMaterial($selected[0]);