Welcome to Core Web3D, a programmer's introduction to 3D for the Internet. As a professional Web developer, you've probably heard about technologies such as VRML97, Java 3D, MPEG-4, and X3D. This book introduces you to each, in detail and from a programmer's perspective, so that you can weave any one (or all four) into your own Web sites.
If you've been waiting for the right opportunity to jump into Web3D, now is the time. For the first time in computer history, the major pieces of the puzzle are in shape to deliver interactive 3D to the average end user. Yesterday Web3D for the average computer user was impractical, if not entirely impossible. Today, for the first time ever, advances in key Web3D technologies, bandwidth, and sheer processing power give us the ability to deploy interactive 3D to our friends, users, and clients.
This book has been a long time in the making. Over six years, actually, as VRML emerged from concept in 1994 and re-emerges as X3D today. Until now, there was no market for Core Web3D simply because the infrastructure wasn't in place to deliver such content to the masses. Things have changed, and today's a different game entirely.
Just as images swept over the Web soon after text-only pages surfaced, followed by audio and video. 3D is now on fire. Major online retailers and entertainment sites have recently embraced Web3D as a strategic mechanism for attracting and holding onto customers, opening the floodgates that we've been battering at for years. By the year 2005 you won't be able to surf the Web without encountering 3D content anymore than you can surf today without bumping into audio and video: 3D is the natural progression of media for the Web. It is inescapable. Learn how to harness it.
The authors of Core Web3D are not passive observers in this revolution; we're on the front lines, every day. With no exception, each author and technical reviewer involved with this book is actively involved in the design, development, and advancement of Web3D technologies and standards. We share an unbridled passion for rich, interactive 3D experience delivered over the Internet and hope that our time in the R&D trenches and rides atop commercial Web3D ventures will be of value and interest to you as you lead the charge for Web3D on your own virtual ground.
Although we would have preferred to provide you with in-depth coverage of every Web3D technology now available, a physical limit to the number of pages we could use in this book puts a practical block on how much we would write about. It's impossible to cover everything. We choose, instead, to focus on four key Web3D technologies: VRML97, Java 3D, MPEG-4, and X3D. And, since it's not possible to cover these four technologies exhaustively in one book, we didn't try. Instead, Core Web3D is the lead book in a forthcoming series of Web3D booksCore Java 3D, Core MPEG-4, and Core X3D are soon to follow.
What you have in Core Web3D is a technical introduction, from a professional programmer's perspective, of each. In this book you'll learn how these four technologies are similar and how they differ. You'll program in each, as you explore the fundamental concepts and major features of each. And, finally, you'll learn how to customize existing Web3D content for your own purposes, so that you can get a jump on developing professional quality 3D for your own Web site. We hope you enjoy the ride as much as we do.How This Book Is Organized
Core Web3D is organized into five major parts, each dedicated to a specific technology. Following is an overview of each part.Part 1: Introduction
Although 3D for the Internet has been with us since 1994, when VRML 1.0 was first conceived, today we're finally seeing Web3D technologies flourish thanks to significant advances in technology, bandwidth, and desktop processing power. Part 1 takes a hard look at why Web3D in general, and VRML in particular, were impractical before today. Here you'll find an explanation of the term "Web3D" as used throughout this book and the key technologies discussed herein (specifically VRML97, Java 3D, MPEG-4/BIFS, and X3D). The chapters in this part also provide an overview of the Web3D Consortium (web3d/) and its role in 3D standards for the Internet, as well as a gentle introduction to the basic concepts and jargon you'll encounter as you enter the 3rd Dimension in the chapters that follow.Part 2: Virtual Reality Modeling Language
Virtual Reality Modeling Language (VRML) is the pioneer Web3D technology that burst onto the scene in 1994 and promised to immerse us in a 3D Internet. That didn't happen for a number of reasons, as Part 1 explains. In
Part 2, you'll learn about VRML in detail as we trace its history from concept to realization and ultimately to international standardization (a.k.a. VRML97). Along the way you'll learn how to program in the VRML language and how to customize existing VRML content for your own purposes. You'll also learn about a new and exciting crop of visual content creation tools that allow you, the professional Web developer, to create exceptionally compelling VRML content using little more than your mouse and your imagination.
In Part 2 you'll learn how to weave VRML worlds into Web pages, how to reprogram existing VRML content to fit your needs, and how to construct virtual worlds and characters using visual authoring tools. The concepts and skills that you gain in this part of the book will serve you well in the remaining parts, as VRML is at the heart of all Web3D technologies discussed in this book.Part 3: Java 3D
Java 3D is Sun's standard Java 2 platform extension ("optional package") for creating interactive 3D applets and applications. As a member of the Java Media family of Application Programming Interfaces (APIs), Java 3D delivers a suite of standard Java classes that programmers can use to construct a wide variety of 3D programs. Although Java 3D programs are written in Java, the Java 3D architecture has a great deal in common with the VRML technology that inspired it. The VRML programmer will find that VRML and Java 3D have a surprising kinship. Java 3D programs can, in fact, utilize VRML content, thus maximizing any investment that you make in VRML as you'll soon learn.
In Part 3 you'll explore in detail how VRML and Java 3D parallel one another, and where they diverge. You'll learn how to write Java 3D applets and applications, use VRML content in your Java 3D programs, and customize pre-made Java 3D content for your purposes. Because Java 3D is rooted in Java, the chapters in Part 3 assume that you're an experienced Java developer. If this is not the case, the first chapter in this part of the book lists a number of resources that you can turn to when learning Java for the first time.Part 4: MPEG-4/BIFS
MPEG-4 is the fourth major version of the Motion Picture Experts Group (MPEG) standard, the previous versions of which (MPEG-1 and MPEG-2, in particular) are largely responsible for the audio and video invasion that we have experienced through our desktop computers and digital televisions. MPEG-4 is a toolkit of multimedia solutions that developers can use to deliver audio, video, 2D graphics, and 3D graphics over a variety of network and broadcast connections.
MPEG-4 Binary Format for Scenes, better known as MPEG-4/BIFS, is (as the name implies) a component of MPEG-4 that supports binary encoding and delivery of scenes. Although not restricted to 3D scenes, this book focuses on MPEG-4/BIFS in the context of Web3D. In Part 4 you'll learn about BIFS in great detail. Here you'll examine how BIFS works, how it was derived from VRML, how you can control and animate 3D scenes with BIFS commands, and how you can integrate existing VRML content with MPEG-4. Part 5: X3D
Extensible 3D (X3D) began life as VRML Next Generation (VRML-NG), and today has grown into a new form of Web3D that promises to address many of the shortcomings of VRML97 while pushing the envelope in terms of real time 3D for the Internet. As a technology tied to the Extensible Markup Language (XML), X3D allows VRML content to be expressed in terms of XML. In addition, X3D is built around a componentized, extensible architecture that supports layering in new features and enhancements far beyond those found in VRML.
Although X3D is extremely exciting, it has one major downside: It's not available yet! Due to ship in the second half of 2000, the X3D development schedule didn't align precisely with the publication date of this book. At the time of this writing X3D was under constant development, meaning the X3D material in Part 5 of this book was under threat of being obsolete from the moment it was written.
To help reduce this potentially frustrating situation, Part 5 gives you an insider's look at the world of X3D rather than a programmer's view (simply because the programmer's view was constantly changing due to the pace at which X3D is being developed). Here you'll find the motivation behind X3D, including a candid look at the technical shortcomings of the VRML technology it was designed to surpass. In addition, you'll get an exclusive look at the various proposals submitted to the Web3D Consortium's X3D Task Group in 1999 for evaluation as potential X3D solutions, as well as an overview of one potential authoring solution known as X3D Markup Language (X3DML).About the CD-ROM
If you've been feverishly looking for the CD-ROM that came with this book you'll be relieved to find that no, you're not going mad: A CD-ROM is not included with Core Web3D. Instead, the source code listings, hyperlinks, and examples found in this book are available online, free of charge, through the Core Web3D web site at CoreWeb3D/. This site was created for you, the Core Web3D reader, and is updated regularly as important Web3D innovations occur (such as the emergence of X3D from the development process, or new versions of the Java 3D API are released by Sun, for example). Here you'll also find links to a wide variety of Web3D resources, including an online discussion group where you can share your thoughts, comments, and suggestions about Core Web3D with your fellow readers.
The technology, tools, and bandwidth are here: Use them now with Core Web3D
! The Web developer's guide to state-of-the-art 3D on the Internet Integrate Web3D into any Web site-without getting buried in code Covers VRML97, Java 3D, and hot new MPEG-4 and X3D technologies
Forewords by Dave Raggett, HTML Architect for the World Wide Web Consortium; Mark Pesce and Tony Parisi, Co-inventors of VRML and past Directors of the Web3D Consortium
The Web developer's guide to 3D on the Internet...
Finally, the technology, tools, bandwidth, and computing power are in place to smoothly deliver compelling 3D content over the Web. And now there's a book that helps Web developers leverage 3Dwithout getting overwhelmed by code!
Core Web3D unveils a suite of technologies that make it possible to deliver remarkable 3D content over the Web: VRML97, Java 3D, MPEG-4, as well as the exciting new X3D (Extensible 3D using XML), which promises to deliver interoperable, lightweight Internet and broadcast 3D.
3D experts Aaron E. Walsh and Mikaël Bourges-Sévenier demonstrate how Web3D delivers key advances over previous technologies, including international standardization, interoperability, browser ubiquity, fourth-generation APIs, and visual authoring tools.
Discover how to integrate Web3D technologies seamlessly into any Web site, by repurposing, modifying, and customizing existing Web3D content-getting great results without reinventing the wheel.
Core Web3D is the perfect guide for every Web developer working with media-rich sites.
EVERY CORE SERIES BOOK:
DEMONSTRATES practical techniques used by professional developers FEATURES robust, thoroughly tested sample code and realistic examples FOCUSES on the cutting-edge technologies you need to master today PROVIDES expert advice that will help you build superior software
Core Web3D delivers:
Comprehensive introduction to VRML97, Java 3D, MPEG-4/BIFS, and X3D Detailed guidance on repurposing existing Web3D code to your specific needs Hands-on coverage of the hot new MPEG-4/BIFS standard and the future X3D standard Straight-from-the-hip comparisons of Web3D technologies