Java3Dではシーンファイル(.lws)とオブジェクトファイル(.obj)の3Dモデルが読み込めるらしいので,テスト.
ネット上で簡単に拾えるobj形式のファイルで試してみました.
とりあえずシーン生成メソッドにこんな感じで記述.
try{
Loader loader = new ObjectFile(ObjectFile.RESIZE);
Scene scene = loader.load("src\\@@@@.obj");
root.addChild(scene.getSceneGroup());
} catch (FileNotFoundException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IncorrectFormatException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParsingErrorException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
うまくいきました.お手軽.
lws形式のファイルを読み込みたい場合は,
Loader loader = new ObjectFile(ObjectFile.RESIZE);
↓
Loader loader = new Lw3dLoader();
とするだけでOKみたい.
ちなみに,Lw3dLoader()でobj形式のファイルを読み込もうと下記のようなエラーが出ました.
はじめは何故エラーになるのかで困惑してましたが,よく見ると「wanted LWSC」と書いてあります.
致命的: null
com.sun.j3d.loaders.ParsingErrorException: Bad String Token (wanted LWSC, got null: Token['#'], line 1
(以下略)
それから,簡単な表示だけならLoaderクラス使わなくて
ObjectFile file = new ObjectFile(ObjectFile.RESIZE);
Scene scene = file.load("src\\@@@@.obj");
でも問題無さそうですが,あとあと何かしら困りそう.
ネット上で簡単に拾えるobj形式のファイルで試してみました.
とりあえずシーン生成メソッドにこんな感じで記述.
try{
Loader loader = new ObjectFile(ObjectFile.RESIZE);
Scene scene = loader.load("src\\@@@@.obj");
root.addChild(scene.getSceneGroup());
} catch (FileNotFoundException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (IncorrectFormatException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParsingErrorException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
うまくいきました.お手軽.
lws形式のファイルを読み込みたい場合は,
Loader loader = new ObjectFile(ObjectFile.RESIZE);
↓
Loader loader = new Lw3dLoader();
とするだけでOKみたい.
ちなみに,Lw3dLoader()でobj形式のファイルを読み込もうと下記のようなエラーが出ました.
はじめは何故エラーになるのかで困惑してましたが,よく見ると「wanted LWSC」と書いてあります.
致命的: null
com.sun.j3d.loaders.ParsingErrorException: Bad String Token (wanted LWSC, got null: Token['#'], line 1
(以下略)
それから,簡単な表示だけならLoaderクラス使わなくて
ObjectFile file = new ObjectFile(ObjectFile.RESIZE);
Scene scene = file.load("src\\@@@@.obj");
でも問題無さそうですが,あとあと何かしら困りそう.