[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:01477] Re: ベンチマーク
------------------------------------------------------------------------
■■■■ 超大型514名様プレゼント実施中! ■■■■■■■■■■■■■■
■■┏━━━━━━━━━━━━━┓☆☆あなた好みの情報を厳選でお届け☆☆
■■┃ どーんと現金100万円!! ┃ ━━ NTT NaviSpace Presents ━━
■■┗━━━━━━━━━━━━━┛今なら2人に1人が当るデパート商品券♪
■■■■◎もちろん無料 http://myd.nttnavi.co.jp/camp33.html ■■■■■■
------------------------------------------------------------------------
From: yasuyuki@xxxxxxxxxxxx
Subject: [Java3Djp:01476] Re: ベンチマーク
Date: Thu, 6 Jul 2000 11:21:21 +0900 (JST)
>
> のドキュメントにあったような気がするので調べてみます。
> ちょっとお時間ください。
>
> > ちなみにこの方法で HelloUniverse を修正して
> > 表示させると、700 フレーム/秒 前後なのですが、
> > こんなものでしょうか?
>
> こんな速く動きますか? ちょっとスゲーと思いました。
>
いえ、もしかして間違ったものを測っているのでは
ないかと思い質問したのですが。
ソースコードは以下の通りです。
江本
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.*;
import java.awt.GraphicsConfiguration;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class HelloUniverse extends Applet {
class MyCanvas3D extends Canvas3D implements Runnable{
J3DGraphics2D g = null;
int count = 0;
int last = 0;
long curr = 0;
long prev = System.currentTimeMillis();
public void run(){
try {
while ( true ){
curr = System.currentTimeMillis();
double d = (double )(count - last ) / (curr - prev) * 1000.0;
System.out.println("" + d + " Frames / sec");
prev = curr;
last = count;
Thread.sleep(1000);
}
}catch(InterruptedException ex){
}
}
MyCanvas3D(java.awt.GraphicsConfiguration conf){
super(conf);
Thread t = new Thread(this);
t.start();
}
public void postRender(){
++count;
}
};
public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();
// Create the TransformGroup node and initialize it to the
// identity. Enable the TRANSFORM_WRITE capability so that
// our behavior code can modify it at run time. Add it to
// the root of the subgraph.
TransformGroup objTrans = new TransformGroup();
objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
objRoot.addChild(objTrans);
// Create a simple Shape3D node; add it to the scene graph.
objTrans.addChild(new ColorCube(0.4));
// Create a new Behavior object that will perform the
// desired operation on the specified transform and add
// it into the scene graph.
Transform3D yAxis = new Transform3D();
Alpha rotationAlpha = new Alpha(-1, 4000);
RotationInterpolator rotator =
new RotationInterpolator(rotationAlpha, objTrans, yAxis,
0.0f, (float) Math.PI*2.0f);
BoundingSphere bounds =
new BoundingSphere(new Point3d(0.0,0.0,0.0), 100.0);
rotator.setSchedulingBounds(bounds);
objRoot.addChild(rotator);
// Have Java 3D perform optimizations on this scene graph.
objRoot.compile();
return objRoot;
}
public HelloUniverse() {
setLayout(new BorderLayout());
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
MyCanvas3D c = new MyCanvas3D(config);
add("Center", c);
// Create a simple scene and attach it to the virtual universe
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
// This will move the ViewPlatform back a bit so the
// objects in the scene can be viewed.
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
//
// The following allows HelloUniverse to be run as an application
// as well as an applet
//
public static void main(String[] args) {
new MainFrame(new HelloUniverse(), 256, 256);
}
}