続きです。
エクスポートしたファイルをheadしてみます。頭の方に、座標データが格納されています。
takk@deb9:~/tmp$ head 10x10.obj # Blender v2.79 (sub 0) OBJ File: '' # www.blender.org mtllib 10x10.mtl o Plane v 0.100000 0.000000 9.100000 v 9.100000 0.000000 9.100000 v 0.100000 0.000000 0.100000 v 9.100000 0.000000 0.100000 v 0.100000 0.000000 1.100000 v 0.100000 0.000000 2.100000 takk@deb9:~/tmp$
各行の先頭にvとあるので、きっと頂点座標のデータだと思いますが、念のため、どのようなデータがあるのか確認。10×10のデータなので100行ある情報が頂点座標のデータになりますね。
takk@deb9:~/tmp$ cut -b-2 10x10.obj | uniq -c
2 #
1 mt
1 o
100 v
5 vn
1 us
1 s
81 f
takk@deb9:~/tmp$
vから始まる行が100行なので、これが頂点座標のデータということで決まり。
vから始まる行のみ抽出して、整数化したデータに整形します。一か所だけ頂点を真上に伸ばした箇所があるはずです。
takk@deb9:~/tmp$ perl -naE 'if(shift@F eq "v"){@a=map{int$_}@F;say"@a"}' < 10x10.obj
0 0 9
9 0 9
0 0 0
9 0 0
0 0 1
0 0 2
0 0 3
0 0 4
0 0 5
5 0 8
~省略~
5 0 7
5 0 6
5 0 5
5 1 4
5 0 3
5 0 2
5 0 1
~省略~
8 0 6
8 0 5
8 0 4
8 0 3
8 0 2
8 0 1
takk@deb9:~/tmp$
ありました。5 1 4という座標が、真上に伸ばした座標と思われます。
今確認したデータをファイルへ保存します。
takk@deb9:~/tmp$ !!>out.txt
perl -naE 'if(shift@F eq "v"){@a=map{int$_}@F;say"@a"}' < 10x10.obj>out.txt
takk@deb9:~/tmp$
次回、このデータを取り込んで3D表示します。



コメント