<html>

	<head>
		<title>3DeZINE</title>
		<style type="text/css"><!--
			.bold { color: #339900; font-weight: bold; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.boldgrey { color: #cccccc; font-weight: bold; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.content { color: #cccccc; font-style: normal; font-size: 11px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.link { color: #cccccc; font-style: normal; font-size: 10px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }
			.small { color: #cccccc; font-style: normal; font-size: 9px; font-family: Verdana, Helvetica, Arial, sans-serif; margin: 0 }-->
		</style>
	</head>

	<body marginwidth="0" leftmargin="0" bgcolor="#666666" text="white" link="white" alink="black" vlink="black">
		<table border="0" cellpadding="5" cellspacing="0">
			<tr>
				<td valign="top">
					<table border="0" cellpadding="0" cellspacing="0" width="120">
						<tr>
							<td><img height="18" width="120" src="../media/editor.gif"><br>
								<span class="small">by Timothy Martin, CEO and Editor-in-Chief <a href="../editor.html">read it<br>
								<br>
								</a></span></td>
						</tr>
						<tr>
							<td>
								<form name="poll_coverage" action="http://www.virtuworlds.com/cgi-bin/formmail.cgi" method="POST">
								<img height="18" width="120" src="../media/poll.gif"><br>
								<span class="boldgrey">What aspect of the Web 3D Industry needs more coverage?</span><br>
								<span class="small"><input type="radio" value="avatars" name="coverage"> avatars/community<br>
								<input type="radio" value="art" name="coverage"> art<br>
								<input type="radio" value="education" name="coverage"> education<br>
								<input type="radio" value="standards" name="coverage"> standards/practises<br>
								<input type="radio" value="ecommerce" name="coverage"> e-commerce<br>
								<input type="radio" value="interface" name="coverage"> interface design<br>
								<input type="radio" value="games" name="coverage"> games<br>
								<input type="radio" value="tech" name="coverage"> technology</span><input type="hidden" name="recipient" value="npolys@virtuworlds.com"><input type="hidden" name="subject" value="poll"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:coverage"><input type="hidden" name="return_link_url" value="http://www.virtuworlds.com/3DEZine/research.html"><input type="hidden" name="bgcolor" value="#000000"><input type="hidden" name="text_color" value="#cccccc"><input type="hidden" name="link_color" value="#0066cc"><input type="hidden" name="vlink_color" value="#cccccc"><br>
								<input type="image" src="../media/submit.gif" height="21" width="77" border="0">
								</form>
								<form name="VirtuPortal" action="http://www.virtuworlds.com/3DeZine_01/entryform.html" method="GET">
								<input src="../media/url.gif" type="image" border="0" width="120" height="18"></form></td>
						</tr>
						<tr>
							<td><span class="small">Send your url for review in the VirtuPortal!</span><input type="hidden" name="recipient" value="npolys@virtuworlds.com"><input type="hidden" name="subject" value="url"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:url"><input type="hidden" name="required" value="url"><br>
								<input type="text" name="url" size="18"><br>
								<br>
								
								<form name="email" action="http://www.virtuworlds.com/cgi-bin/formmail.cgi" method="POST">
								<img height="18" width="120" src="../media/newsletter.gif"><br>
							</form></td>
						</tr>
						<tr>
							<td><span class="small">Give us your email for regular news &amp; updates</span><input type="hidden" name="recipient" value="subscribe@virtuworlds.com"><input type="hidden" name="subject" value="email"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:email"><input type="hidden" name="required" value="email"><br>
								<span class="content"><input type="text" name="email" size="18"><br>
								<br>
								</span><a href="../about.html"><span class="small">about us
								
								</span></a></td>
						</tr>
					</table>
				</td>
				<td valign="top" width="60" rowspan="2"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="60" height="500">
						<param name="movie" value="../media/rings.swf">
						<param name="quality" value="high">
						<param name="bgcolor" value="#676767">
						<embed src="../media/rings.swf" quality="high" bgcolor="#676767" width="60" height="500" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed> 
					</object></td>
				<td valign="top">
					<table background="../media/bg_475.jpg" border="0" cellpadding="8" cellspacing="0" width="350">
						<tr>
							<td valign="top" colspan="2"><span class="content"><img src="media/res_big.gif"></span></td>
						</tr>
						<tr>
							<td valign="top"><span class="bold">Tutorial: Deploying Shout3D - Delivering the Common Denominator by N. Polys </span><span class="content"><br>
								Web 3D is in the throes of a giddy growth spurt and its reach has just broken the threshold of viability that has been so long in coming.</span></td>
							<td width="90" valign="top"><a href="(Empty Reference!)"><img height="87" width="90" src="media/shout.gif" border="0"></a></td>
						</tr>
						<tr>
							<td colspan="2" valign="top"><font size="3" color="#cccccc"><span class="content">The hot technologies coming out of companies such as Parallel Graphics, DraW Computing, Cycore, Pulse, and Shout has spurred a renewed eyebrow from the corporate internet establishment for delivering compelling 3D content across current bandwidth and platforms. The world tracks fast and the solutions being developed and delivered today are laying strong foundations for a new era in information interaction.</span></font>
								<p><font color="#cccccc"><span class="content">In our tests, we have been happily surprised with the preformance and power of the new <b>Shout3D</b></span><span class="content">. This article deals with technical and conceptual issues involved with deploying one's content with this new technology. </span></font><span class="content">&nbsp;</span></p>
								<ol>
									<li><font color="#a147f3"><span class="content"><b>Introduction: Shout Interactive<br>
									</b></span></font>
									<li><font color="#a147f3"><span class="content"><b>Scene Composition &amp; Functionality Principles<br>
									</b></span></font>
									<li><font color="#a147f3"><span class="content"><b>Geometry &amp; Textures<br>
									</b></span></font>
									<li><font color="#a147f3"><span class="content"><b>Events, Links, &amp; Interactivity<br>
									</b></span></font>
									<li><font color="#a147f3"><span class="content"><b>Publishing Content- Authoring Tips </b></span></font>
									<li><font color="#a147f3"><span class="content"><b>Integrating Applets<br>
									a) Scripting Example<br>
									b) Helpful Links </b></span></font>
								</ol>
								<div align="left">
									<p><font face="Verdana,Arial,Sans-Serif" color="#a147f3"><span class="content"><b>Introduction: Shout Interactive</b></span></font><font face="Verdana,Arial,Sans-Serif" color="#cccccc"><span class="content"> </span></font></p>
								</div>
								<p><a href="http://www.shout3d.com"><font color="#cccccc"><span class="content">Shout Interactive</span></font></a><font color="#cccccc"><span class="content">, a San Francisco based 3D content and technology company, heard the cries of 3D developers caught in the limbo of 3D projects' delivery to a broad, uninitiated market. In response to this need for cross-platform content access, Shout has developed a Java based rendering and interactivity architecture that, in theory, seamlessly reaches web surfers who are even running the legacy generation 3 browsers.<br>
								<br>
								</span></font></p>
								<p><font color="#cccccc"><span class="content">Shout, an atypically creative company with an impressive demo reel, made a strong debut of their technology last holiday season when they partnered with <b>ExcitExtreme</b> and <b>Macy's</b> to create <a href="http://www.excitextreme.com/fashion/"><b>3D Fashion Show</b></a> and <a href="http://www.excitextreme.com/holiday/"><b>Holiday Shop</b></a><b>. </b>These highly successful sites showcased designer clothing and gifts in an attractive, interactive 3D environment. </span></font></p>
								<p><font color="#cccccc"><span class="content">Granted, the end frame-rate performance of Java based renderers is subject to the vagaries of each particular version of the JVM (Java Virtual Machine) and the processor power which the user is running, but with all the upgrades surrounding Y2K, one can be pretty confident that this stuff is going to reach... and run... and it <b>requires no plug-in</b>! </span></font></p>
								<p><font color="#cccccc"><span class="content">Applets, like other media types, are cached, so once a user loads one (the basic navigation types that come with the Shout3D package, Walk and Examine, are 70-80K), the rest of their download from your 3D enabled site is only the scenes or models. These too are typically quite compact as Shout3D supports gzip file compression. The embedded applet renders the 3D scene and mediates events within the scene and outside the scene (to the 2D web page) to drive interactivity. This sort of power (like the VRML EAI 2) I call &quot;Breaking the Banner Barrier&quot; because events can be integrated across dimensional boundaries. </span></font></p>
								<p><font color="#cccccc"><span class="content">Shout Interactive is an active contributor to the <a href="http://www.web3d.org">Web3D Consortium</a>'s new <b>X3D</b> specification which is being developed in conjuntion with the W3C to define an XML compatible 3D scenegraph architecture and encoding. (See our <a href="../features/art_x3d.html">X3D Initiative</a> and <a href="../features/art_state.html">State of the Web3D Industry</a> feature to find out more about this exciting new Web3D technology). Shout3D is an implementation built off of Shout Interactive's X3D proposal. </span></font></p>
								<p><span class="content">&nbsp;</span></p>
								<div align="left">
									<p><font color="#a147f3"><span class="content"><b>Scene Composition &amp; Functionality Principles </b></span></font></p>
								</div>
								<p><font color="#cccccc"><span class="content">Shout's core applets, like the current X3D draft spec, implement a subset of VRML97 nodes, so delivering your content through this channel requires a slightly different design approach from VRML since you do not have the functionality of all the nodes right there: PROTOS, inlines, geometric primitives or extrusions, various lighting sources, and some sensors. However, since the applets are object-oriented Java, the node set can be extended to define and render new types. In Monterey, Shout showed off some NURBS and MultiTexture rendering applets they have been developing and we will look at some basic examples of customizing and extending applets below. </span></font></p>
								<p><font color="#cccccc"><span class="content">If you check out the Shout3D site, their <a href="http://www.shout3d.com/shout3d_doc_dir/docs/user_guide/index.html">User Guide</a> and <a href="http://www.shout3d.com/shout3d_doc_dir/docs/Shout3d_specification/contents.html">Specification</a> is well done and complete and the MessageBoard is a great resource for finding out about specific implementation issues... </span></font></p>
								<p><font color="#cccccc"><span class="content">Briefly, from the Shout site:</span></font></p>
								<p><span class="content">
								<hr width="66%">
								</span><p></p>
								<p><font color="#cccccc"><span class="content"><strong>The following nodes have been removed </strong>from VRML97 in creating Shout3D: </span></font><span class="content">
								<table border="0" bordercolor="#808080" cellpadding="0" cellspacing="3" width="100%">
									<tbody>
										<tr>
											<td><span class="small">AudioClip</span></td>
											<td><span class="small">Fog</span></td>
											<td><span class="small">PlaneSensor</span></td>
											<td><span class="small">Text</span></td>
										</tr>
										<tr>
											<td><span class="small">Box</span></td>
											<td><span class="small">FontStyle</span></td>
											<td><span class="small">PointLight</span></td>
											<td><span class="small">TextureTransform</span></td>
										</tr>
										<tr>
											<td><span class="small">Collision</span></td>
											<td><span class="small">Inline</span></td>
											<td><span class="small">ProximitySensor</span></td>
											<td><span class="small">VisibilitySensor</span></td>
										</tr>
										<tr>
											<td><span class="small">Cone</span></td>
											<td><span class="small">LOD</span></td>
											<td><span class="small">Script</span></td>
											<td><span class="small">WorldInfo&nbsp;</span></td>
										</tr>
										<tr>
											<td><span class="small">Cylinder</span></td>
											<td><span class="small">MovieTexture</span></td>
											<td><span class="small">Sound</span></td>
											<td>&nbsp;</td>
										</tr>
										<tr>
											<td><span class="small">CylinderSensor</span></td>
											<td><span class="small">Normal</span></td>
											<td><span class="small">Sphere</span></td>
											<td>&nbsp;</td>
										</tr>
										<tr>
											<td><span class="small">ElevationGrid</span></td>
											<td><span class="small">NormalInterpolator</span></td>
											<td><span class="small">SphereSensor</span></td>
											<td>&nbsp;</td>
										</tr>
										<tr>
											<td><span class="small">Extrusion</span></td>
											<td><span class="small">PixelTexture</span></td>
											<td><span class="small">SpotLight</span></td>
											<td>&nbsp;</td>
										</tr>
									</tbody>
								</table>
								</span><p></p>
								<p><font color="#cccccc"><span class="content"><strong>Of the nodes that remain, some have had fields removed</strong>, in order to pare them down to the functionality that is relevant to Shout3D. These fields may be added in future releases.</span></font></p>
								<p><font color="#cccccc"><span class="content">Generally speaking, all the <em>set_ </em>and <em>_changed </em>fields have been removed because the EventIn/EventOut concept has been removed. In all cases, except where noted that a field has been removed, these names have simply been mapped to a regular field (e.g., the interpolator's <em>set_fraction </em>is now <em>fraction</em>), or removed if redundant (e.g., Transform's <em>set_translation </em>is removed but <em>translation </em>remains).</span></font></p>
								<p><font color="#cccccc"><span class="content">In addition, the following fields have been removed:</span></font></p>
								<ul>
									<li><font color="#cccccc"><span class="content"><strong>Anchor, Group, Transform </strong>-- <em>bboxCenter </em>and <em>bboxSize</em>. </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Appearance </strong>- <em>textureTransform<br>
									</em>Textures may not be transformed by matrices, the (u,v) coordinates are always taken directly from the textureCoordinate field of the IndexedFaceSet.. </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Background - </strong>see <a href="http://www.shout3d.com/shout3d_doc_dir/docs/Shout3d_specification/htmlFiles/departuresFromVRML97.html#Outright Changes:Background">Outright Changes: Background</a> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Billboard </strong>- <em>axisOfRotation, bboxCenter, bboxSize</em> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>DirectionalLight</strong> - <em>ambientIntensity</em> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>IndexedFaceSet </strong><em>- convex, normal, normalIndex, normalPerVertex</em><br>
									Normals are generated automatically, based on the creaseAngle. They may not be specified via fields. </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Material </strong>- <em>ambientIntensity, shininess, specularColor<br>
									</em>These removals are in keeping with the simplified light model. </span></font>
									<li><font color="#cccccc"><span class="content"><strong>NavigationInfo </strong>- <em>avatarSize, speed, type</em>, <em>visibilityLimit</em> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>TimeSensor </strong>- <em>enabled</em> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>TouchSensor </strong>- <em>hitTexCoord</em> </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Viewpoint </strong><em>- jump, bindTime</em> </span></font>
								</ul>
								<p><span class="content">
								<hr width="66%">
								</span><p></p>
								<p><font color="#cccccc"><span class="content"><b>Whoa!</b> If you are anything like me, you probably threw your hands up and said, <b>&quot;My &lt;insert favorite node here&gt; is gone! What CAN I do with this?!&quot;</b>... Well do not despair; many intelligent people in the VRML community voted on this node set and they insured there was a strong functional core that could be a light implementation...</span></font></p>
								<p><font color="#cccccc"><span class="content">If you want to publish your VRML97 worlds in Shout3D, you will need to recognize that not all of the functionality will be there after you convert it with their wizard. Still, quite a lot can be accomplished with the Core classes alone- plus their JavaSound add-on. It just takes a different approach in the design phase; and, if you get into this Java/X3D technology, you'll find there are some things about their object oriented architecture implementation that are actually quite advantageous.</span></font></p>
								<p><font color="#cccccc"><span class="content">OK so you got directional lights, you got Indexed Face and Line Sets, you got the standard Interpolators, you got Touchsensors, Anchors, Billboards, and more AND the power of Java node and applet customization as well as event compatibility with Javascript in your page! Seems pretty promising...</span></font></p>
								<p><font color="#cccccc"><span class="content">To begin with, when Shout3D is embedded into an HTML page, one specifies the size of the applet's window. This fundamental definition of screen real estate has two important effects:</span></font></p>
								<p><font color="#cccccc"><span class="content"><b>1)</b> it defines a non-resizable window through which the scene is viewed (the folks at Shout also inform us that in the next release, the applet window will be able to be resized) and </span></font></p>
								<p><font color="#cccccc"><span class="content"><b>2)</b> the larger the area to be rendered, the more machine resources are used to keep up frame rate. These two effects (in conjunction with ViewPoint placement) will determine how well your scene integrates into the page and how well it performs there. In the Applet parameters, you will see a couple of variables that are also of interest: the <b>backgroundColor</b> variables which define RGB values for the background of the scene, and the <b>background</b> variable which defines a fixed image against which your scene is rendered. Manipulating these parameters, by hand or in the wizard, you can achieve some very nice aesthetics between your page and the applet window.</span></font></p>
								<p><font color="#cccccc"><span class="content">The basic Navigation types that come with the Shout3D Package are the <b>ExamineApplet.class</b> and the <b>WalkApplet.class</b>. The Examine applet is very similar to the Nav type in VRML by the same name: objects are rotated according to user interaction (click and drag in the applet window).. The Walk applet is again similar to the VRML Nav type by that name: the user moves about the scene in the X and Z planes. The key for this type of navigation is to either build the scene in one level or to enable some kind of supplementary movement like camera panning or viewpoint binding though Java or Javascript. The Walk applet also has collision detection between the user and objects in the scene.</span></font></p>
								<p><span class="content">&nbsp;</span></p>
								<center>
									<p><font color="#a147f3"><span class="content"><b>Geometry and Textures</b></span></font><font color="#cccccc"><span class="content"> </span></font></p>
								</center>
								<p><font color="#cccccc"><span class="content">Without native primitives or extrusions to use in the current release, the issue of geometry becomes a little more onerous in that all shapes must be converted to IndexedFaceSets. In reality, this is not such a big deal since most models of any complexity end up as this node type anyway. To aid in the authoring process, we have constructed a library of the <b>primitive VRML shapes</b> at basic polygon resolutions turned into IFSs and IndexedLineSets. It is our hope that these objects can be distributed here, through the Content Working Group, and the Universal Media Working Group of the Web3D Consortium licence free. Enjoy! </span></font></p>
								<p><font color="#cccccc"><span class="content">A handy feature in Spazz3D version 2.2 is the ability to convert various Shape nodes into IFS for editing and in fact Cosmo Worlds and Studio Max will do this too with their primitives if you start editing points or polygons. </span></font></p>
								<p><font color="#cccccc"><span class="content">Once again the mantra of realtime 3D- and we we know this one- KEEP YOUR POLYGON COUNT AS LOW AS POSSIBLE! The more faces you model, the more the Java software has to work to render it... full VRML browsers have the advantage of tapping into hardware accelleration which Shout3D does not do yet. </span></font></p>
								<p><font color="#cccccc"><span class="content">Shout3D supports JPEG and GIF ImageTextures and there are a few factors to be aware of when using textures. First, if you plan to do any texture swapping or applying textures by hand coding, make sure there are TextureCoordinates included as Shout3D does not have a default mapping- your textures won't render otherwise. Also, if you plan on using alpha channel transparencies (in a GIF image for example), you will need to set the ImageTexture BooleanField of <i>hasAlphaTexture</i> to TRUE and include a separate image file called a 'luminance texture' in the published directory. This luminace texture should be an 8-bit (grayscale) texture of the same size as the url texture and if 'base.gif' is the name of your url texture, the luminance texture should be named 'base_alpha.gif'. </span></font></p>
								<p><font color="#cccccc"><span class="content">Shout3D uses a slightly different object appearance scenario than VRML in that even color textures are modified by the object's <i>diffuseColor</i> and the <i>emmisiveColor</i> field before lights are applied. At any given pixel, the diffuseColor and the ImageTexture are multiplied together, so to get your texture's original appearance, set the diffuseColor to 1 1 1 . Additionally, parts of the texture coloring are modulated by the color-per-vertex. The emmisiveColor is added to the ImageTexture color at a givent pixel and <i>transparency</i> is applied to textures as well.</span></font></p>
								<p><font color="#cccccc"><span class="content">If you are not using textures, there are still some great fields available in the Material node: <i>transparency</i>, <i>diffuseColor</i>, and <i>emissiveColor</i>. As well, the <i>creaseAngle</i> field is supported for IndexedFaceSets. </span></font></p>
								<p><span class="content">&nbsp;</span></p>
								<p><span class="content">&nbsp;</span></p>
								<center>
									<p><font color="#a147f3"><span class="content"><b>Events, Links, &amp; Interactivity </b></span></font></p>
								</center>
								<p><font color="#cccccc"><span class="content">A really cool by-product of Shout's object-oriented Java implementation of the VRML nodes is that the Anchor node is a subclass of the TouchSensor node. This means that an Anchor node in Shout has an isOver field! This is especially handy for accomplishimg things like linkable, rollover objects... or anything where you want to combine the functionality of these crucial nodes... just ROUTE the isOver event for the DEFed Anchor as you would for a VRML TouchSensor. In VRML97, this kind of functionality would require a script or custom node. Nice eh!? </span></font></p>
								<p><font color="#cccccc"><span class="content">You may ask, 'Well isn't Anchor a grouping node in VRML? A TouchSensor in VRML only works on its siblings!&quot; Well you would be right, but interestingly enough, Shout's viewer will work both ways with a TouchSensor: as a leaf node (VRML97 style) or a grouping node giving all its <i>children []</i> the inherited functionality. The Anchor node maintians its important field of <i>parameter</i> where you can specify a frame or window target for the specified file. </span></font></p>
								<p><font color="#cccccc"><span class="content">Another very interesting development in Shout3D is that you can ROUTE any node's field to any other node's field as long as its of the same datatype. So this means that there are no specific EventIns or EventOut fields- a remarkable change from the standard VRML97 field descriptions. This new paradigm can add a lot of new possibilities for nodes to send and pickup events, and we look forward to some creative uses of this capability. </span></font></p>
								<p><font color="#cccccc"><span class="content">But wait, there's more! The folks at Shout noticed that some common functionality was missing from VRML97 spec that required some scripting in order to accomplish, so they added some built-in nodes to thier 1.0.3 release to do it. For example in VRML we have to write a 'Diode' script when we want a node that generates multiple eventOuts to trigger another node only once. These new nodes are the <b>Toggle</b>, the <b>BooleanEventToCurrentTime</b>, and the <b>BooleanEventToInteger</b>. The latest release of Spazz3D uses these 'logic nodes' so that when you have animations trigger other animations, you can export to Shout3D and the resulting file works with no script node. </span></font></p>
								<p><font color="#cccccc"><span class="content">See the Shout3D <a href="http://www.shout3d.com/shout3d_doc_dir/docs/Shout3d_specification/htmlFiles/nodesRef.html">Node Reference</a> and their <a href="http://www.shout3d.com/shout3d_doc_dir/docs/javadocs/index.html">JavaDocs</a> for more details on these powerful additions! Its also illuminating to check their samples to see the implemations in action!</span></font></p>
								<p><span class="content">&nbsp;</span></p>
								<center>
									<p><font color="#a147f3"><span class="content"><b>Publishing Content- Authoring Tips</b></span></font><font color="#cccccc"><span class="content"> </span></font></p>
								</center>
								<p><font color="#cccccc"><span class="content">One of the great things about Shout3D is that they provide a publishing wizard for you to prepare your .wrl files with. The file and all its supporting textures are put together into a single directory under '/published/codebase/models/wrlfilename/' . This wizard also generates an html file which contains all the applet code with the parameters you specified in the wizard. I have been using ParallelGraphic's VRMLPad lately, and its GREAT! You can save off any files as .wrl and .wrz and Shout3D will read the files, rendering the supported nodes. </span></font></p>
								<p><font color="#cccccc"><span class="content">Some applet parameters warrant a little explanation but since they are described in the <a href="http://www.shout3d.com/shout3d_doc_dir/docs/user_guide/index.html">Shout User Guide</a> documentation, we will only mention them briefly here. The following will have an impact on the rendering performance and the aesthetic of the render: <b>antiAliasing</b> when set to true will anti-alias any geometry edges against the scene background, <b>bilnearFiltering</b> will smooth out pixel artifacts from small textures applied to large objects thus improving the rendered image quality,<b> loadResourcesInSeparateThread</b> will load textures in one or more background threads with geometry rendereing first and the images being rendered as they come down. </span></font></p>
								<p><font color="#cccccc"><span class="content">Even though neither X3D nor Shout3D support the <b>AudioClip </b>node, you can still get soundclips into your scenes. Do this by using the JavaSound node. The clip should be encoded as an monoaural, 8-bit ulaw file sampled at 8000 kHz. The sound clip can be controlled through startTime and stopTime event ROUTEs. The instantiation is invokes as follows:<br>
								JavaSound {url somesound.au loop false}</span></font><span class="content"> </span></p>
								<p><font color="#cccccc"><span class="content"><b>Cosmo Worlds</b>: You can build your 3D models and animations in CosmoWorlds as usual (keeping in mind the VRML node subset), but when you have your completed scene, use <i>File =&gt; Publish</i> to change the CosmoWorlds animation Protos into their fundamental interpolators. </span></font></p>
								<p><font color="#cccccc"><span class="content"><b>Spazz3D</b>: Currently the authoring environment that is best integrated with the Shout Wizard. All geometry is exported as IndexedFaceSets and the animation triggers use the new logic nodes (above) producing easy, nice looking results. </span></font></p>
								<p><font color="#cccccc"><span class="content"><b>AOL Browser</b>: Ok so we all have issues with this unfortunately popular browser... developers are always faced with special requirements for delivering to this clunky end platform. The case is no different now. The trick to avoiding AOL's default image compression routine is to rename any images and their url references in the 3D file to files with another MIME type extention. Shout recommends using &quot;image1.xxx&quot; to trick the AOL browser into thinkning that the file is not an image. </span></font></p>
								<p><font color="#cccccc"><span class="content">&nbsp; <b>3D Studio Max</b>: There are 8 points to consider when exporting .wrl files for Shout3D conversion. From the Shout <a href="http://www.shout3d.com/shout3d_doc_dir/docs/user_guide/ug08_authoring3d.html#3DMAX">User Guide</a>: </span></font><span class="content">
								<hr width="66%">
								</span><p></p>
								<ul>
									<li><font color="#cccccc"><span class="content"><strong>Reset Transform</strong> &nbsp; Do a &quot;Modify/EditMesh/Collapse Stack&quot; and &quot;Utilties/Reset X-Form&quot; on all geometry before exporting.&nbsp; This may require you to detach objects/hierarchies before exporting.&nbsp;&nbsp; It is best to do this before you animate anything. &nbsp; </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Mirrored objects</strong> &nbsp; Mirrored objects will have inversed normals after the above operation.&nbsp; Correct this by &quot;Modify/EditMesh/SubObject-Face/Select All/Flip&quot; &nbsp; </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Materials</strong> &nbsp; The following parameters are supported:&nbsp;&nbsp; Diffuse Color, Emissive Color, Self Illumination, Opacity, Wire, and Diffuse Texture.&nbsp; All others are ignored, including shininesss and shininess strenghth. &nbsp; Objects should not have &quot;wasted&quot; multiple materials.&nbsp;&nbsp; i.e. If your object only uses 2 materials of a multi-material with 5 materials, you should create a unique multi-material for this object with only two materials. &nbsp; Offset, Tiling, Angle, Mirror, etc. info in the bitmap parameters are not supported.&nbsp; These must be done under the Modify/Edit Mesh mode. &nbsp; </span></font>
									<li><font color="#cccccc"><span class="content"><strong>VRML export parameters &nbsp;</strong> In general, use the following defaults:&nbsp; Normals unchecked, Polygon Type/Triangles &nbsp; </span></font>
									<li><font color="#cccccc"><span class="content"><strong>Smoothing Groups and creaseAngle </strong>Smoothing groups are not supported, Gouraud shading must be done by editing the &quot;creaseAngle&quot; of the VRML file. &nbsp; (The Max VRML exporter does not produce values for the IndexedFaceSet's creaseAngle field. So if you model a smooth object, you may find that it looks faceted in Shout3D. The solution is to add a creaseAngle field with a value greater than 0 to the offending IndexedFaceSet nodes. A value of 3.14 will yield a fully smooth object.)</span></font>
									<li><font color="#cccccc"><span class="content"><strong>Rotated Coordinate System </strong>Max uses a rotated coordinate system relative to VRML97 and Shout3D. So if you author your content you may find you need to rotate it 90 degrees in order to make the &quot;up&quot; direction match.</span></font>
									<li><font color="#cccccc"><span class="content"><strong>Bipeds are not exported correctly</strong> and will have scaling problems</span></font>
									<li><font color="#cccccc"><span class="content"><strong>Multiple Animations are Stored end-to-end</strong> so users who want to play different animations will need to access sub-sections of the interpolations they produce. The javascript example <a href="http://www.shout3d.com/shout3d_doc_dir/Shout3d_runtime/demos/segmentedAnimationTest.html">segmented AnimationTest.html</a> shows one way to to do this. &nbsp;</span></font>
									<li><font color="#cccccc"><span class="content">There is also a helpful how-to on controlling segmented animations on their messageboard <a href="http://www.shout3d.com/wwwboard/messages/154.html">HERE</a>. </span></font><span class="content">
									<hr width="66%">
									</span>
								</ul>
								<p><font color="#cccccc"><span class="content">If you come across questions or problems while deploying Shout3D, I suggest you post an email to their <a href="http://www.shout3d.com/wwwboard/">Online Message Board</a>, they are friendly, knowledgable, and prompt. </span></font></p>
								<p><span class="content">&nbsp;</span></p>
								<center>
									<p><font color="#a147f3"><span class="content"><b>Integrating Applets </b></span></font></p>
								</center>
								<p><font color="#cccccc"><span class="content">We'll wrap this issue's investigation up by some really fun stuff: some simple examples of ways to connect objects in the scene to html Javascript. If you are planning on a serious project and know Java, it is recommended that you build any user interface buttons into new panel and applet classes and subclass the existing Shout3D applet and panels classes, since processing events within Java will have less latency and no rendering 'flicker'. </span></font></p>
								<p><font color="#cccccc"><span class="content">As with any node you want to have a hook to, you will need to DEF any nodes that will be manipulated by JavaScript events. You will also add an attribute to you applet tag: NAME=&quot;Shout3D&quot; so that to code shown here will find the proper path to the object(s). In your javascript code, you can recover a reference to that node using the document.Shout3D.getNodeByName{&quot;namednode&quot;);<br>
								then you can use that fields'<br>
								.setValue(fieldvalue)<br>
								method to effect your changes. When you are passing arrays such a translation or orientation information, you will need 2 additional JavaScript functions:<br>
								getFloatArrayFromString(astringvar) and getStringFromFloatArray(anarrayvar)</span></font><span class="content"> </span></p>
								<center>
									<p><font color="#cccccc"><span class="content">Check out the HTML source for this example to see what we mean:<br>
                <a href="JSdemo1a.html">JavaScript Example</a></span></font><span class="content"> 
                <font color="#cccccc"><br>
									</font></span></p>
									<p><font color="#cccccc"><span class="content"><img src="media/shout_exam.jpg" width="250" height="137" border="0"> </span></font></p>
								</center>
								<p><font color="#cccccc"><span class="content"><br>
								</span></font></p>
								<p><font color="#cccccc"><span class="content">One thing might not be apparent from the Javascripting in this demo page since it is in the .wrl file: on the box where you can change the texture, we simply DEFed the <b>Appearance</b> node ('eAppear') and then we stuck in a simple <b>Switch</b> node that contained the DEFed <b>ImageTexture</b> nodes: </span></font></p>
								<div align="left">
									<p><font color="#cccccc"><span class="content">Switch { whichChoice -1 choice<br>
									[ DEF TEX_1 ImageTexture { url &quot;42.jpg&quot; }<br>
									DEF TEX_2 ImageTexture { url &quot;44.jpg&quot; }<br>
									] } </span></font></p>
									<p><font color="#cccccc"><span class="content">You may notice that our Pan function interpolates a Def'ed Transform above the ViewPoint. In the current version of the Walk Applet, putting a Transform over a ViewPoint can interfere with Object Collision causing unique scenarios.. As well, in the Walk and Examine Applets, after binding to another ViewPoint, you will find your navigation becomes disabled. Such ViewPoint issues will likely be improved in the next versions of the applets. </span></font><span class="content">
									<hr width="66%">
									</span><p></p>
								</div>
								<p><font color="#cccccc"><span class="content">We'll check out the extensibility of the Shout3D Java classes next issue! </span></font></p>
								<p><font color="#cccccc"><span class="content"><b>This powerful architecture and technology brings a new level of portability and extensibility to 3D interacvtive content- you gotta check this stuff out! </b></span></font></p>
								<p><font color="#cccccc"><span class="content"><br>
								For now, these links could help you get started:<br>
								' <a href="http://www.shout3d.com/wwwboard/messages/353.html">2D buttons to control the Viewpoint</a>'<br>
								'<a href="http://www.shout3d.com/wwwboard/messages/265.html">Calling Javascript functions from a Shout3D Applet</a>' </span></font></p>
								<center>
									<p><font color="#cccccc"><span class="content"><b>Stay tuned and have fun! The Shout3D package is available for </b></span></font><a href="http://www.shout3d.com/download.html"><font color="#a147f3"><span class="content"><b>download</b></span></font></a><font color="#cccccc"><span class="content"><b> at $200 per domain name for a developers license, $ 80 for an educational edition, and free for a branded trial version. </b></span></font></p>
									<p><font color="#cccccc"><span class="content"><b>Definitely check out their </b></span></font><a href="http://www.shout3d.com/portfolio.html"><font color="#a147f3"><span class="content"><b>portfolio</b></span></font></a><font color="#cccccc"><span class="content"><b> for some great demos of this new and exciting technology! </b></span></font></center>
							</td>
						</tr>
						<tr>
							<td colspan="2"><a href="http://www.3dup.com"><span class="bold"><img height="37" width="163" src="media/3duplogo.gif" border="0" align="right"></span></a><span class="bold">Search the 3D &amp; Multimedia Industry with</span></td>
						</tr>
						<tr>
							<td colspan="2">
								<form action="http://3dup.com/cgi-bin/index.cgi" target="new">
								<div align="left">
									<p><input type="hidden" name="search" value="3dup"><input type="hidden" name="sort" value="col4numrev"><input type="hidden" name="link3" value="6"><select name="col5" size="1">
										<option value="">Search by Keywords or Select ...
										<option value="zz">** All Latest Software News **
										<option value="zz4dvision">- 4DVision ...
										<option value="zzadobe">- Adobe ...
										<option value="zzalias">- Alias|Wavefront ...
										<option value="zzautodesk">- Autodesk ...
										<option value="zzbentley">- Bentley ...
										<option value="zzcorel">- Corel ...
										<option value="zzgeomagic">- Geomagic ...
										<option value="zzkinetix">- Kinetix ...
										<option value="zzmacromedia">- Macromedia ...
										<option value="zzmetac">- MetaCreations ...
										<option value="zznewtek">- Newtek ...
										<option value="zzsofti">- Softimage ...
										<option value="zzunigraphics">- Unigraphics ...
										<option value="zzmisc">* Software Miscellaneus ...
										<option value="">-----------------------
										<option value="yy">** All Latest Hardware News **
										<option value="yy3dfx">- 3Dfx ...
										<option value="yy3dlabs">- 3Dlabs | Dinamic Pictures ...
										<option value="yyaccel">- AccelGraphics ...
										<option value="yyaccom">- Accom ...
										<option value="yyati">- ATI Technologies ...
										<option value="yyavid">- Avid Technology ...
										<option value="yycreative">- Creative Labs ...
										<option value="yydiamond">- Diamond Multimedia ...
										<option value="yydps">- DPS ...
										<option value="yyelsa">- Elsa | Hercules ...
										<option value="yyes">- Evans &amp; Sutherland ...
										<option value="yyintergr">- Intergraph ...
										<option value="yymatrox">- Matrox ...
										<option value="yymatroxvideo">- Matrox Video ...
										<option value="yynvidia">- Nvidia ...
										<option value="yyomnicomp">- Omnicomp ...
										<option value="yymiro">- Pinnacle | Miro ...
										<option value="yyquantel">- Quantel ...
										<option value="yyreal3d">- Real 3D ...
										<option value="yys3">- S3 Incorporated...
										<option value="yysgi">- Silicon Graphics ...
										<option value="yystb">- STB | Symmetric ...
										<option value="yyvirtex">- Virtex ...
										<option value="yyzoran">- Zoran ...
										<option value="yymisc">* Hardware Miscellaneus ...
									</select><br>
									<br>
									<input name="all" size="30" type="text"> <input type="submit" value="Search" name="submit">
									</form>
								</div>
							</td>
						</tr>
					</table>
				</td>
				<td valign="top"><span class="bold">
					<table border="0" cellpadding="0" cellspacing="0" width="175">
						<tr>
							<td width="175"><span class="bold">Current tutorials<br>
								</span><span class="content">* Deploying Shout3D<br>
								</span>
								<p><span class="bold">Previous tutorials</span><span class="link"><br>
								* <a href="Tutorial1.html">Shading VRML Objects</a><br>
								* <a href="../features/gamestory.html">Game Programming in VRML</a></span></p>
								<div align="left">
									<p><span class="bold">3D Links </span><span class="link"><br>
									Indexed by our Linkmaster. Chances are, what you need is <a href="links.html">here</a>!</span></p>
									<p><span class="bold">FAQs</span><br>
									<span class="link">* <a href="http://www.web3d.org/faq/v_faq.htm">Web 3D Consortium's FAQs</a><br>
									* <a href="http://fly.hiwaay.net/~crispen/vrmlworks/faq.html">Comp.Lang VRML</a><br>
									* <a href="http://www.web3d.org/TaskGroups/x3d/faq/index.html">X3D FAQs</a></span></p>
									<p><span class="link">Some of the best 3D resources are available online! </span></p>
								</div>
								<p>
								<form name="art_feedback" action="http://www.virtuworlds.com/cgi-bin/formmail.cgi" method="POST">
								<input type="hidden" name="recipient" value="npolys@virtuworlds.com"><input type="hidden" name="subject" value="art_shout3d Feedback"><input type="hidden" name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT"><input type="hidden" name="sort" value="order:rating,additions,env_report"><input type="hidden" name="return_link_url" value="http://www.virtuworlds.com/3DEZine/feat.html"><input type="hidden" name="return_link_title" value="Return to 3DEZine Features"><input type="hidden" name="bgcolor" value="#000000"><input type="hidden" name="text_color" value="#cccccc"><input type="hidden" name="link_color" value="#0066cc"><input type="hidden" name="vlink_color" value="#cccccc"><span class="bold">What do you think of this tutorial?</span><br>
								<input type="radio" name="rating" value="excellent"> <span class="content">Excellent!&nbsp;<br>
								<input type="radio" name="rating" value="informative"> Informative&nbsp;<br>
								<input type="radio" name="rating" value="OK"> O.K.&nbsp;<br>
								<input type="radio" name="rating" value="crummy"> Not so hot&nbsp;<br>
								<input type="radio" name="rating" value="drivel"> Drivel </span><p></p>
								<p><span class="boldgrey">What did we miss?</span></p>
								<p><textarea name="additions" rows="7" cols="22"></textarea><br>
								</p>
								<p><input type="submit" value="submit" name="submitButtonName"></p>
								<p>
								</form>
							</td>
						</tr>
					</table>
					</span></td>
			</tr>
			<tr>
				<td></td>
				<td colspan="2"><img height="60" width="468" src="../media/shout3dbanner.gif"></td>
			</tr>
			<tr>
				<td colspan="4">
					<center>
						<span class="small">Questions, Comments, and Suggestions about this site can be emailed to: [<a href="mailto:npolys@virtuworlds.com">webmaster</a>]<br>
						VirtuWorlds, VirtuWorld, VirtuPortal, and 3DEZine are Trademarks of VIRTUWORLDS LLC.<br>
						No unauthorized uses are permitted.<br>
						&copy; VirtuWorlds 1999, 2000</span></center>
				</td>
			</tr>
		</table>
	</body>

</html>
