 |
| |
|
|
| What
is Shockwave3D? |
| Shockwave3D is a
new 3D technology included in Macromedia Director Shockwave Studio
8.5. It was co-developed by Macromedia and Intel. For more information,
please visit the Macromedia Director
Product Page and view the demos available in the Macromedia Director
8.5 Shockwave Studio 3D Feature Tour.
Shockwave3D runs cross-platform on Windows and Macintosh. It uses
available hardware acceleration like OpenGL and DirectX and includes
a software renderer that runs everywhere. |
| |
| What
is the best way to get started with Shockwave3D? |
| Watch the demos in
the Feature Tour. There is also a free downloadable 3D
screensaver (614K) which has examples
of Shockwave3D animation. You can download the Macromedia Director Shockwave Studio 8.5 trial
version for free or buy the product online. |
| |
| What
do I need for Shockwave3D? |
| This answer depends
on what you want to do:
- to simply see 3D content, all you need to do is download and
install the free Shockwave Player from the Macromedia
Shockwave download page.
- to create Shockwave3D content, you need the Macromedia
Director Shockwave 8.5 Studio. Director Shockwave 8.5 can
create simple 3D primitives.
- to create Shockwave3D content with advanced features such as
bones animation, you will need a 3D modeling package. There are
many applications available, including Discreet
3D Studio MAX, Softimage
XSI or Alias|Wavefront
Maya. You can also use the special low-polygon modeller for
Director called Shapeshifter, created
by Tabuleiro. |
| |
| Which
applications create W3D files? |
| W3D files are usually
created by exporting models from a 3D application, such as those
listed above. You can also download the free OBJ converter Xtra
which allows you to convert OBJ files to W3D. Or you can use the
special low-polygon modeller for Director called Shapeshifter.
These tools all create Shockwave3D files, which have a W3D suffix.
Shockwave3D files can then be imported or linked to a Director
movie. See below for more information on linking and streaming. |
| |
| What
exporters are available for the various programs? |
| A list of 3D partners is maintained
on the Macromedia site. |
| |
| Is
there any way to get 3DS files into Director, besides using 3D Studio
MAX? |
| There is a free plug-in
that allows you to convert 3DS files to OBJ files. The plug-in
is available for download from the HABWare
website (German). You can then use Director's OBJ converter
to convert the OBJ files into W3D files. |
| |
| What
are the features of the 3D engine? |
| - cross-platform
3D playback (Windows and Macintosh)
- hardware acceleration (OpenGL, DirectX) with software renderer
fallback
- multi-resolution meshes
- subdivision surfaces
- keyframe and bones animation
- real-world physics simulation, courtesy of Havok
- streaming geometry
- multiple textures and shaders, including reflection maps
For a more technical overview, see the technical whitepaper. |
| |
| What is ... |
the 3DPI?
The 3DPI is a tremendously helpful shareware tool for Shockwave3D
developers. It is a so-called MIAW, a "movie in a window" that
helps you to organize, check and program a Shockwave3D world.
The 3DPI displays all the available information for a 3D member,
including the palettes and their content, all models with their
position, rotation, and scale in 3D space. It also offers extensive
support for all the modifiers. See the 3DPI website for more information.
a modelresource?
A modelresource is the raw geometry information used by a model.
It is the polygon mesh itself.
a model?
A model is a (potentially) visible object in a Shockwave3D world.
It uses a modelresource for its geometry.
a shader?
A shader is analogous to a material in 3D MAX. Models use
shaders for their appearance. Shaders often use textures for
the "skin".
a texture?
A texture is a bitmap used by a shader. Textures can also
be used for overlays or backdrops for cameras.
a camera?
A camera is a viewport in the 3D world. If you drag a 3D
member onto the stage in Director, a default camera will be
created (unless a camera has been predefined). Alternately,
the first available camera in the 3D member will be used for
the view (camera("DefaultView")).
a light?
A light is a light source in a Shockwave3D world. There are
several different light sources available in Shockwave3D:
| ambient light |
light available to all the
scene |
| directional light |
light shining into a specific
direction |
| point light |
light coming from a certain
point in space (like a light bulb) |
| spot light |
spot lights have additional
properties (such as those for the penumbra) |
a group?
A group is a collection of models that are grouped together.
By moving, rotating or scaling the group, you move, rotate or
scale all models of this group.
There is a special group called group("world"),
which is the rootnode of the scenegraph. You create a new group
and then add models as children to it, or assign the new group
as the parent to the models. Either way, you have to create
a parent-child relationship between the models and the group.
a motion object?
A motion object is basically an animation, either keyframed
or bones based. Animations cannot be created at runtime using
Lingo in Director. First, they must be authored in a 3D modeling
package like 3D MAX or Maya. Then they are imported into Director.
A model needs a modifier to play back an animation (#keyframeplayer,
#bonesplayer).
a node in the 3D scenegraph?
The Shockwave3D world consists of a so-called scenegraph, which
is a tree-like structure. At the top of the scenegraph, there
is the group("world"), which
is the root of the 3D world. The so-called Nodes are attached
to the group("world"). Nodes
are either models, groups, cameras or lights.
The default parent for each node is the group("world").
|
| |
| What
are the palettes for a Shockwave 3D member? |
| Elements in a Shockwave3D
member are organized by palettes. Palettes are useful because
they hold elements that can be reused. For example, a model points
to a modelresource in the modelresource palette for its geometry,
and to a shader (or several shaders) in the shader palette for
its material. The shaders in turn point to textures in the texture
palettes.
The main idea behind this palette structure is to avoid duplicate
data in the 3D member in order to reduce file size. For example,
if a scene requires twenty cars, you can simply model it once,
and reuse the same geometry 20 timesby creating 20 models
that all point back to one set of geometry. |
| |
| What
is the process for streaming a Shockwave3D W3D file? |
| In order to stream
W3D files into memory you will need to use linked external 3D
cast members. Once you have a linked external member it is always
streamed into memory with no further effort on your part. |
| |
| What
is the member's state property? |
| The state property
of a 3D cast member indicates the degree to which the cast member
has been loaded into memory. The state property can have the following
values:
| 0 |
The member is completely
unloaded from memory |
| 1 |
Loading of the
Initial Load Segment, or ILS, has begun |
| 2 |
The ILS is loaded
into memory |
| 3 |
Objects not included
in the ILS are being loaded into memory |
| 4 |
The member is fully
loaded into memory |
|
| What
is the ILS? |
| The ILS, (Initial
Load Segment) is composed of a member's motion and shader objects,
its scenegraph hierarchy, all textures with a stream priority
of 0, as well as all model resources whose models have been assigned
a stream priority of 0. |
| |
| What
are stream priorities? |
| Each model and texture
are assigned a stream priority value when exported from a 3D modeling
package. Since a model object is a node within the scenegraph
hierarchy, the model object itself is included in the ILS.
The stream priority assigned to the model is used to determine
the loading order of that model's model resource object. Each
object's stream priority determines the order in which it is streamed
into memory. Low stream priority items are loaded first, before
those with higher priorities.
Models can be assigned stream priorities from 0 to 256 with a
default value of 256. Textures can be assigned stream priority
values of 0 to 1024 with a default of 4 times the stream priority
of models using the texture. When multiple models use the same
texture, the lowest model stream priority is used to calculate
the texture's default stream priority.
For both models and textures, a stream priority value of zero
indicates that the object is to be included in the ILS. |
| |
| How
are stream priorities set? |
| Stream priorities
are assigned as User Defined properties in the external modeling
package used to create the W3D file. In 3D Studio MAX, this is
achieved by selecting a model, then right-clicking in the active
viewport. Select Properties from the menu that appears. In the
Properties dialog box, click the User Defined tab to access a
field into which you can enter text. To set a model's stream priority,
enter the following in the editable field:
sw3d_stream_priority = M;
where M is the integer value you want to assign as the
model's stream priority. All textures that are used by this model
are by default assigned a stream priority value of 4xM.
If a model resource object is used by more than one model, the
lowest stream priority of those models is used to determine the
loading order of the model resource object.
To set the value of a texture's stream priority manually, you
could enter the following into the User Defined properties for
a model using the texture:
sw3d_texture_stream_priority = T;
where T is the integer value you want to assign as the
stream priority for all textures used by that model. However,
there are known issues in the current 3D Studio MAX exporters
that prevent this value from being exported. Instead, textures
are always assigned their default value as described above.
Check the documentation that comes with the exporter you are using
for more information on how to properly assign stream priority
values.
|
| Is
there a comprehensive summary of streaming 3D behavior in Director
and Shockwave? |
| Check out the Shockwave3D
Streaming Overview from the DirectorDev website.
Special thanks to Christophe Leske and the participants from
the 3DDirector-L (a TreviMedia
mailing list) for their contributions. |
|
| About the
author
Tom Higgins has worked at Macromedia for the past four years.
He started out as team lead in Tech Support, then joined Director
Quality Assurance. He is currently a Director Product Specialist
for testing and developer relations. Tom hosts the DirectorDev
website.
|