曲面の3次元CG(5)曲面の生成(点群から生成)

曲面はいつでも平易な数式で描けるとは限りません。例えば点群があればそこから曲面を生成できます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222756.jpg
file = "srfrecn.pnt";
id = m_getpointsset(getstr(file));
end;
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222800.jpg

この点群から曲面を生成するには次のようにします。
file = "srfrecn.pnt";
setrbfsurf_bound([-10,3.2,-10],[10,16,10]);
smooth_mode(1);
rbfimplicitsurface( getstr(file), 0.15);
end;
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222806.jpg
この計算で得られる結果は膨大な数式になります。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222810.jpg
しかし、そう都合よく法線ベクトルもセットの点群があるとは限りません。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222815.jpg
その場合は点群の様子から法線ベクトルを推定させる方法が使えます。
file =" srfrecn.pnt ";
id = m_getpointsset( getstr(file));
m_makenormalset(M[\id], [6,6,6], 10, 100);
m_rbfimplicitsurface(M[\ id], 0.25);
end;
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222819.jpg