3D Animation Workshop: Lesson 76: Interactivity in Shout3D
Lesson 76 - Interactivity in Shout3D - Part 1
We got our first look at the new Shout3D 1.0 toolset for 3D Web development in the Lesson 75. This soon-to-be-released package allows developers to embed a realtime, interactive 3D rendering engine directly into a Web page, without the need for plug-ins on the client's computer. If you haven't already seen this marvel in action, take a look at Lesson 75 right now.
As I have been reminded by many readers, Shout3D is not the only technology on the landscape for bringing 3D to the Web, so I should perhaps take a moment to explain why I'm focusing on it, even prior to its release. One reason is my respect for Shout Interactive, the firm that developed this technology. When VRML was still the focus of 3D for the Internet, Shout Interactive was producing the finest VRML content I had ever seen, and established a realistic vision for the role that 3D graphics and animation could be expected to play on the Web. Another reason is the direct connection between Shout3D and VRML. Many people retain significant VRML development skills, and all the major 3D modeling and animation packages can export files in VRML format. Shout3D is keeping VRML alive, or rather bringing it back to life by reshaping it. Indeed, Shout3D is an implementation of a proposed standard that may well be adopted by the Web3D Consortium (formerly the VRML Consortium) as an official standard. So Shout3D is an expression of a larger movement, and stands firmly on the VRML tradition. I'm also convinced that eliminating the need for a plug-in application is critical to the success of 3D on the Web, and Shout3D has clearly solved this vexing problem.
But perhaps more important than all these factors is the way Shout3D handles interactivity. Realtime 3D on the Web can only make sense as a highly interactive tool that invites user participation and makes the use of the Internet easier and more enjoyable. Interactivity is the central issue for Web 3D, far more important than the underlying graphics. The tools for creating such interactivity must be powerful and flexible. Shout3D 1.0 uses Java, a full-strength programming language as the vehicle for interactivity. From what I can see, there is little or nothing that cannot be achieved using Shout3D's Java class library.
In this lesson, I'd like to introduce you, in a general way, to how interactivity is achieved in Shout3D. Ultimately, this is an issue of writing the specific Java code (or using the excellent code examples that are provided with the package). But beyond the coding are broader issues that must first be addressed. For example, what does "interactivity" really mean here?
Interactivity implies responses by the application to user input. The responses might be starting an animation, rotating an object in the scene, zooming the camera, changing the lighting, making an object transparent, or loading a new scene. In fact, this list doesn't even scratch the surface of the possibilities. The user input is in the form of actions taken with the mouse or the keyboard. The application (or rather, the Java applet, in the specific case of Shout3D) must receive user input and respond with changes in the 3D scene.
This definition of interactivity is simple enough, and common to almost every program you are currently familiar with. But special considerations apply in the case of realtime 3D rendering. A realtime 3D renderer, such as a VRML player or the Shout3DApplet, renders frames as fast as it can. As soon as a frame is rendered, the renderer is asked to render the scene again, creating a rendering loop. Thus your frame rate depends on your microprocessor and the demands being made on it, and thus it cannot be fixed in advance.
|To Continue to Parts 2 and 3, Use Arrow Buttons||
Created: Sept. 26, 1999
Revised: Sept. 26, 1999