[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01725] Re: VRML97Loader のサポート
八嶋@東工大です。
回答ありがとうございます。
> まずは最新版をお使いかどうかチェックしてみてください。
> KNOWN BUGS ファイルに PixelTexture には対応していないと書いてあります。
>
> PROTO に関してもなんらかの制限があったと思いました。
> 最新の付属ドキュメントや、ちょっと前のバージョンのドキュメントを
> チェックしてみてください。
付属ドキュメントというのは、vrml97.jarに付属のものですか?
私が持っているvrml97.jarには付属のドキュメントはありませんでした。
上記のKNOWN BUGS ファイルは、どこにあるものでしょうか?
> 現在 vrml97.jar を開発していた人達は X3D 関連の開発に力を入れているようで、
> あまり期待はできないと思います。
> NCSA が出しているもう一つの VRML loader ライブラリ、
> NCSA Portfolio (http://www.ncsa.uiuc.edu/~srp/Java3D/portfolio/) や、その他、
> CyberVRML97 (http://www.cyber.koganei.tokyo.jp/vrml/cv97/cv97java/)
> を使うのも一つの手でしょう。
いま試しにCyberVRML97を使ってサンプルプログラムを作ってみました。
documentにのっている通りに書いたのですが、
loadされたVRMLがうまくCanvas3Dに表示されないようです。
エラーがたくさん出ます。
windowは表示されるのですが、VRMLのオブジェクトだけが表示されません。
CyberVRML97でVRMLをloadして表示するプログラムを作ったことのある方、
簡単な例を見せてもらえませんか?
私が作ったプログラムのソースを以下に載せます。
よろしくお願いします。
--------------------
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.reflect.*;
import java.net.*;
import java.util.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.SimpleUniverse;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.*;
import cv97.j3d.*;
//import com.sun.j3d.loaders.vrml97.* ;
public class Cyber97VrmlViewerTest
{
public Cyber97VrmlViewerTest(String filename)
{
////////////////////////////////
//////// Virtual World /////////
////////////////////////////////
SimpleUniverse u = new SimpleUniverse(new Canvas3D(null));
////////////////////////////////
////// VRML file Load /////////
////////////////////////////////
/* vrmlファイルを読み込み、sceneとする。*/
VRML97Loader loader = new VRML97Loader();
try
{
loader.load(filename);
}
catch (Exception e)
{
System.out.println("Exception loading vrml file.");
}
if(bg == null){
System.out.println("Something went wrong.");
System.exit(1);
}
//Scene Graph
u.addBranchGraph(loader.getBranchGroup());
//Phisical Window
Frame f = new Frame("vrml viewer");
f.add(u.getCanvas(),"Center");
f.setSize(400,400);
f.show();
}
public static void main(String argv[])
{
if( argv.length != 1 ) { /* コマンド引数の指定が不正 */
System.err.println("Usage: java MyCyber97VrmlViewer filename");
System.exit(0);
}
String filename = new String( argv[0] ); /* 読み込むファイル */
Cyber97VrmlViewerTest f = new Cyber97VrmlViewerTest(filename);
}
}