WagefrontOBJフォーマットで3Dアニメ

  • Wikipediaページ
  • 日本語の説明ページ
  • 要するに、v 点の3次元座標、vn 点の法線ベクトル、vt 表面模様を決める座標と色彩情報を与えた上で、面の情報を3角形(n角形)で与える。面の情報はv/vt/vnという/区切りの「v,vt,vnのID」を3個(n角形ならn個)並べる
  • Rなら、rglパッケージとかvrmlgenパッケージとかにあるらしい
  • rglのreadOBJ()関数は、法線ベクトルとか、テクスチャとかの情報は無視するらしい
  • Examplesを回せばRosetta彗星

library(rgl)
shade3d(readOBJ(url(
"http://sci.esa.int/science-e/www/object/doc.cfm?fobjectid=54726"
), material = list(col = "gray")))
  • たとえば3DアニメとかだとこんなWavefront.objとかがあり、これをそのままウィンドウズにとってくると、どうも、半角空白の個数が余計だったりするようでエラーを吐くけれど、少し工夫して(半角2連続を1つにして、半角+改行を改行にする、とか)

library(rgl)
test <- readOBJ("MIKU.obj",material=list(col="gray"))
shade3d(test)