3D Animation Workshop: Lesson 75: Introducing Shout3D | 2 | WebReference

3D Animation Workshop: Lesson 75: Introducing Shout3D | 2


Lesson 75 - Introducing Shout3D - Part 3

Java is a full-strength programming language that is completely object-oriented. I won't pretend that the meaning of "object-oriented" can be described to someone without practical experience with the subject. But I can say that, as an object-oriented language, Java has enormous benefits. For example, the power to build more functionality right on top of more basic functionality is at the core of objected-oriented programming. It's also easy to create useful tools that can be plugged into a variety of contexts. And the Java language is so general and powerful that there is probably nothing that can't be achieved in it.

I know only the basics of Java programming, yet I have been able to get a good handle on the Shout3D Java class libraries in just a few days. I've found that it's possible to obtain a solid working grasp on the logic of the toolset without needing to plumb its depths. It's possible to put many tools to work without understanding any of their interior workings. For example, a major aspect of 3D interactivity is a means of picking geometric objects on a screen by placing the cursor over them and clicking the mouse. When you think about it, this is a pretty complex business. A ray must be sent though the pixel to intersect the geometry in 3D space. But all you need to do in Shout3D is to create a Picker object and call its functions, such as pickClosest(), which finds the first object intersected by the ray. It's a little more complicated than that, but not much. You can produce results surprisingly quickly, and develop your knowledge as you proceed.

The following applet demonstrates a remarkably wide range of interactivity features.

Drag on the suit to spin it around, or click on the arrow buttons. Note that the suit automatically spins by itself. Check the html source code for this Web page to see the parameters for this applet, and you can see that either or both of the "autospin" and "rotateable" features can be turned on and off. A well-designed applet provides parameters that can be set at the time that it's placed in the Web page, providing general functionality that can be customized. Drag with the right mouse button, instead of the left, to move the suit forward and backwards in the scene. A careful study of the Java source code of this applet, as provided in Shout3D 1.0, will open up a world of interactive powers to the adventurous programmer.

The suit applet is especially interesting because of the 2D interface superimposed on the 3D scene. This shows the power of Java applets as vehicles for 3D interactive applications. This applet draws on the 2D powers of the standard Java class libraries (automatically available to any modern browser) to support the special 3D powers of the Shout Java classes. And it goes much further. As you can see from the fashion show applet, all of the standard interface controls, such as buttons and dropdown lists, can be used to manage the 3D experience.

Shout 3D is small enough to make practical sense and powerful enough to produce the high-impact 3D content customers really want to buy. I can't stress this last point enough. Too many ideas for 3D content on the Internet fail to serve any meaningful purpose. One of the main reasons for the failure of most VRML work was that few people were ultimately interested in navigating though crude virtual spaces. 3D can only takes its rightful place on the Web when it functions as an interactive tool for commerce, education, and communication generally. It's the quality of the interactivity that makes all the difference in whether a viewer becomes engaged in a Web site. Leave it to the folks at Shout Interactive to understand this.

We'll take a closer look at the Shout3D 1.0 next time.

To Return to Parts 1 and 2, Use Arrow Buttons

Previous Lesson / Table of Contents / Next Lesson

Created: Sept. 14, 1999
Revised: Sept. 14, 1999

URL: http://webreference.com/3d/lesson75/part3.html