This file demonstrates a problem with poor performance using the Cortona VRML browser with Java EAI. The HTML page embeds the VRML world and the VRML world and the EAI Applet which manipulates it. The source for the EAI applet can be found here.
The sphere on the right is being morphed by a CoordinateInterpolator ("CI") which is driven by a TimeSensor ("Timer") within the .wrl file. The sphere on the left is manipulated by the EAI Applet. The applet implements EventOutObserver and uses the same TimeSensor's fraction_changed field to morph the points of the left sphere.
After every 30 callbacks to the applet, it will report its frame rate on the left. This is calculated by dividing 30 by the elapsed time since the last report. It also displays the value returned by browser.getCurrentFrameRate() on the right.
In Blaxxun's Contact, the two spheres morph identically and are in perfect synch. The performance is generally good. Unfortunately, the browser.getCurrentFrameRate() call returns an erroneous value. But, by clicking within the VRML world and pressing F8, the current frame rate will be displayed in the HTML window's status bar. This frame rate is the same as measured by the EAI applet as expected.
In ParallelGraphics' Cortona, the sphere on the right morphs as expected with a comparable frame rate. But the morph animation of the EAI controlled sphere on the left is noticeably jerky. The reported frame rate is 1/3 the speed of that of the rendering frame rate. Despite using the same TimeSensor the two animations are not in synch, and the cycle time appears to be longer for the EAI.
Please note that the above results were seen using Cortona 2.2 and Internet Explorer 5.5. With Netscape and Cortona, the EAI behavior is less predictable and its performance is considerably worse.