さっきユタ・ティーポットの3Dモデルを自作の.objファイルローダで読み込もうとしたときに、f 1/2/3
のような構文ではなくf 1
だけしかなかったので、これをf 1//
にする方法を書き残しておく。
いつもは少し長めの記事を書くのになんでいきなり備忘録かというと、Qiitaで話題になっているこの記事を見て、「ちょっとしたことでも、もしかしたら他の人がみたら役に立つかもしれない情報を残しておこう」と思ったからである。
ユタ・ティーポットのデータはこちらで配布されている。
見ていただけるとわかるだろうが、
obj(一部抜粋)
f 2402 2410 2222
f 1694 1806 2208
f 2208 2222 1694
f 3092 3072 3078
f 3078 3116 3092
面情報は上のような記法で統一されている。これを
obj
f 2402// 2410// 2222//
f 1694// 1806// 2208//
f 2208// 2222// 1694//
f 3092// 3072// 3078//
f 3078// 3116// 3092//
のようにBlenderで出力したような結果にするのが今回の目的である。
結論
まず、vscodeでteapot.obj
を開く。そしてCtrl+f
で検索をかけるのだが、ここで正規表現を使う。
検索文字列: f (\d+) (\d+) (\d+)
置換文字列: f $1// $2// $3//
上のような結果を入れ、すべてを置換することで
から
こうなる
最後に
最後まで見てくださり、ありがとうございます。
今後はこのような「いいねはたくさんもらえないと思うけど、自分が役に立ったので共有しておいて、万が一ほかの人が役に立ったらうれしいな」というような記事が多くなるかもしれないです。
そしてあわよくば、いいねを押してくれると嬉しいです。