Cosmo Player 2.0
Release Notes 
for Windows95 and WindowsNT

December 9, 1997

These Release Notes describe the 2.0 release of Cosmo Software's Cosmo Player for Windows95 and WindowsNT. The following sections are included: 

   1.Legal Notices 
   2.Differences Between CosmoPlayer  1.0 and 2.0 
   3.What's Included in This Release 
   4.Recommended Hardware Configuration 
   5.Online Help 
   6.VRML 2.0 Support 
   7.Known Bugs and Limitations 
   8.Reporting Bugs 
   9.Trouble Shooting 
  10.Software Updates 
  11.VRML Developer Information 

For the latest version of the Cosmo Player 2.0 Release Notes, visit the cosmo.sgi.com web site.

1. Legal Notices

Software License Agreement

NOTE: REDISTRIBUTION OF THE SOFTWARE LICENSED HEREUNDER
REQUIRES THE EXECUTION OF A SEPARATE LICENSE AGREEMENT WITH
SILICON GRAPHICS, INC. 

Cosmo(tm) Player 2.0 Release for Win95/WinNT 

Developed by Silicon Graphics, Inc. 2011 N. Shoreline Boulevard, Mountain View, CA 94043
Copyright (c) 1997, Silicon Graphics, Inc. All Rights Reserved 

Silicon Graphics(r), OpenGL(r) and the Silicon Graphics Logo(r) are registered trademarks and the OpenGL logo(tm), Cosmo(tm), the Cosmo logo(tm), Cosmo Worlds(tm) and Cosmo(tm)Player are trademarks of Silicon Graphics, Inc. ActiveMovie and DirectX are trademarks or registered trademarks of Microsoft Corporation. 

COSMO(tm) SOFTWARE LICENSE AGREEMENT* 

SILICON GRAPHICS, INC., BY AND THROUGH COSMO SOFTWARE, A SILICON
GRAPHICS COMPANY ("Cosmo"), IS WILLING TO LICENSE COSMO SOFTWARE
TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS
CONTAINED IN THIS LICENSE AGREEMENT ("Agreement"). READ THE TERMS
AND CONDITIONS OF THIS LICENSE CAREFULLY. YOUR USE OF THE
LICENSED SOFTWARE INDICATES YOUR ASSENT TO BE BOUND BY THE
LICENSE TERMS SET FORTH BELOW. 

1. DEFINITIONS 

The "Cosmo"(tm) software in binary form (hereafter "Licensed Software") is provided to you subject to Cosmo's copyright and other intellectual property rights. 

2. LICENSE GRANT AND NOTICES 

Cosmo and its licensors retain exclusive ownership of the Licensed Software. Cosmo hereby grants to you ("you") a non-exclusive license to use a single copy of the Licensed Software. No license is granted to you for any other purpose. The above license is subject to all terms of this Agreement including, without limitation, the following: 1. You agree not to reverse engineer or
disassemble the Licensed Software.   2. You agree not to remove or obscure proprietary notices of Cosmo ( You agree not to alter the size, color and quality of the logo). 

3. RESTRICTED RIGHTS. 

RESTRICTED RIGHTS: Use, duplication, or disclosure by the U.S. Government is subject to restrictions of FAR 52.227-14(g)(2)(6/87) and FAR 52.227-19(6/87), or DFAR 252.227-7015(b)(6/95) and DFAR 227.7202-3(a). 

4. DISCLAIMER OF WARRANTY 

COSMO PROVIDES THE LICENSED SOFTWARE TO YOU "AS IS". COSMO
MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE LICENSED
SOFTWARE, EITHER EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY
DISCLAIM ALL WARRANTIES (INCLUDING BUT NOT LIMITED TO THE IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
AND NON-INFRINGEMENT). NEITHER COSMO NOR ITS LICENSORS SHALL BE
LIABLE FOR ANY DAMAGES SUFFERED BY YOU AS A RESULT OF USING,
MODIFYING OR DISTRIBUTING THE LICENSED SOFTWARE OR ITS
DERIVATIVES. 

5. LIMITATION OF LIABILITY 

IN NO EVENT SHALL EITHER PARTY BE LIABLE FOR ANY LOST REVENUES OR
PROFITS, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING WITH RESPECT TO THE LICENSED SOFTWARE AND RELATED
MATERIALS OR ARISING OUT OF THIS AGREEMENT, EVEN IF SUCH PARTY
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 

This provision shall survive the expiration or termination of this Agreement. 

6. MISCELLANEOUS 

This Agreement shall automatically terminate if you fail to comply with its terms. 

This Agreement is made under and shall be governed by and construed in accordance with the laws of the State of California, U.S.A., without reference to conflict of laws principles. By using or copying this Licensed Software, You agree to abide by the intellectual property laws and all other applicable laws of the U.S. (including without limitation the export laws of the United States) and the terms of this license. 

Other Copyright Notices

     JPEG Software - Copyright 1991, 1992, 1993, 1994, 1995, Thomas G. Lane. All
     Rights Reserved. Code from the Independent JPEG Group was used in Cosmo Player.  Portions include gzip - Copyright (C) 1992-1993 Jean-loup Gailly. 
     Portions include modified sources from the Group 42 PNG reference library, Copyright
     (C) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. See
     http://www.group42.com/png.htm for more details. 



2. Differences Between Cosmo Player 1.0 and 2.0

New features and bug fixes in Cosmo Player 2.0 include the following: 

- The user interface has been redesigned to be more intuitive and natural. 

- The Cosmo Player console has been introduced to display errors, warnings, information, and developmental print() statements. 

- OpenGL is used as the rendering API in Cosmo Player 2.0. Thus, if you have a graphics accelerator that has OpenGL drivers and/or an MMX enabled machine, then Cosmo Player will use the hardware for OpenGL acceleration. 

- Java is supported in the Script node in CP 2.0. For the latest specification, please see the Revised Java Appendix available via the VRML 97 specification. 
     
- Support for Internet Explorer 4.0. 

- You need only compile your java content once (instead of once for each of Netscape and Internet Explorer). 

3. What's Included in This Release

Cosmo Player 2.0 includes: 

- Cosmo Player Netscape plugin 

- The Cosmo Player plugin, npcosmop.dll, is installed in Netscape's plugins directory.

- Cosmo Player as an ActiveX control. The Cosmo Player ActiveX control, cp_axucp.dll, is installed by default in the Windows system directory, typically \Windows\System under Windows 95 and \Winnt\System32 under Windows NT. Other Cosmo Software products may use Cosmo Player as an ActiveX control to preview VRML work in progress.  Microsoft's Internet Explorer can use the ActiveX control to display VRML data.

- Cosmo Player Supporting DLLs. All other DLLs required by Cosmo Player are installed by default in the Windows system directory, typically \Windows\System under Windows 95 and \Winnt\System32 under Windows NT.

- Cosmo Software Shared DLLs. Cosmo Software has other products that may share dlls with Cosmo Player. These are installed by default in the Windows system directory, typically \Windows\System under Windows 95 and \Winnt\System32 under Windows NT.

- Cosmo Player External Authoring Interface Java classes (EAI) and Java in the
Script Node Authoring Interface classes (JSAI). For use in Netscape, these classes are installed in the npcosmop.zip file in the Netscape plugins directory. For use in Internet Explorer, these classes are installed into
\Program Files\CosmoSoftware\CosmoPlayer 

- Example VRML 2.0 scene. One example VRML 2.0 scene is provided with this release. By default it is installed in \Program Files\CosmoSoftware\CosmoPlayer\examples. For additional examples, see the index of example worlds on the Cosmo VRML web site.

- VRML 1.0 to VRML 2.0 converter. Cosmo Player will automatically convert VRML 1.0 files to 2.0 on read. If you prefer to permanently convert your VRML 1.0 files to 2.0, a standalone converter, vrml1tovrml2.exe, is also provided. By default, the converter is installed where the other DLLs are installed.

- GZIP. All data formats can now be gzip compressed. This could make significant improvements in download time for large data files expected to be transferred over slow modem connections.

- UTF8. Cosmo Player will read and convert utf8 characters in a WRL file into Unicode characters to display. This will work on NT4.0 for the string field of the Text node and also the description field of the Viewpoint node. Windows95 does not support Unicode and so will display '-' dash characters instead of the proper value for most charsets but has limited support for Latin1 characters. Of course, you must have the TrueType fonts installed that support the charset that you want to display.

- These Release Notes. These Release Notes are by default installed in \Program Files\CosmoSoftware\CosmoPlayer\doc\relnotes.html.  For the most up-to-date release information, check the Cosmo Software web site.


4. Recommended Hardware Configuration

This release of Cosmo Player has the following minimal supported configuration: 

     Pentium PC 
     16MB RAM 
     16-bit color depth 


5. Online Help

The online Help for Cosmo Player can be obtained by selecting the Help icon (a question mark) on the Cosmo Player control panel. This will bring up the installed Help page. You may also view the Help pages on the cosmo.sgi.com site.

6. VRML 2.0 Support

Cosmo Player supports all of the VRML 97 specification. It is compliant with the syntax and semantics of the final version of the specification. 

Media (audio, video) functionality is such a big topic that we have created a separate page for media features and information.

7. Known Bugs and Limitations

See also the Trouble Shooting section below. 

Installation Issues

- We do not support Internet Explorer 3.x - however, you may install Cosmo Player as an ActiveX control to enable running within Internet Explorer 3.x. 
- It is strongly recommended that all previous versions of Cosmo Player be removed before installing an updated version. 

NonVRML Issues

- If the control panel (i.e., the dashboard) appears too dark then it is quite likely that your monitor is not set up correctly.  Resetting your monitors brightness and contrast so that the control panel is pleasantly visible should improve the visual quality of Cosmo Player and all other applications. 

VRML 2.0 support

Java related issues 
Examples 
A set of simple examples using the JSAI (Java Script Authoring Interface) and the EAI (External Authoring Interface) can be found at the Player developer web site. 

Java Support in IE 3.x 
If you install Cosmo Player to be used in Internet Explorer 3.x, then you will
need to install the Microsoft Java VM for IE 4.0 to execute JSAI and EAI content. 
  
LiveConnect - EAI - Netscape 4.x : 
If getBrowser() method is returning null even though Cosmo Player is loading properly, make sure your CLASSPATH environment variable doesn't contain references to java40.jar. If this doesn't work, try clearing your CLASSPATH environment variable completely. getBrowser() method might return null when a "reload" is done due to a bug in LiveConnect. Restart the application to make LiveConnect work again. 

CLASSPATH Setting for EAI/JSAI : 
Some EAI applets may require the EAI/JSAI Java classes to be explicitly included in the CLASSPATH variable. If a java.lang.ClassNotFoundException occurs for one of the classes in the vrml package when loading an EAI applet, you will need to add the CosmoPlayer Java classes to the CLASSPATH. The CosmoPlayer Java classes are installed in the Netscape plugins directory, so for Communicator, this can be done by adding "Program Files/Netscape/Communicator/Program/Plugins/npcosmop.jar" to the CLASSPATH. 

Use MField.getSize() instead of array.length 
In the JSAI and/or EAI, please use MField.getSize() to retrieve the length of an array if the array was returned from a JSAI or EAI function (such as              MFColor::getValue()).  This is necessary due to an implementation oversight in Navigator 3.x's Java VM and JRI, where sometimes array.length will return the wrong value. 

Script Nodes 
The JSAI in Internet Explorer or when accessed via the Cosmo Player ActiveX control requires classes derived from Script to be public which is also specified in the JSAI spec. The Microsoft Virtual Machine won't load your Script java classes if they are private, protected or default. They have to be defined explicitly as public. For example : public class Foo extends Script { ... } 
will be loaded in a Script node in Internet Explorer while the following will
not : class Foo extends Script {...}  

Material Properties 
Some hardware graphics accelerators do not properly render color per material with multiple lights.
            
Lights 
Point and spot lights ignore their radius fields. Therefore, these light types
illuminate the entire scene. The intensity fields can be used to limit the effect of the illumination.  Directional lights are scoped properly by their parent group as defined by the spec.
            
Text 
Non-english FontStyles are not supported on Windows95 in this release.
            
Textures 
Some texture properties (clamp/wrap) are not maintained properly when the textured objects are clipped on some graphics accelerators.
            
MovieTexture and GIF89a 
Constant framerate GIF89a formatted images are supported in the MovieTexture
node. However, this release does not support the non-constant framerate GIF89a
format.
            
Interpolators 
The ColorInterpolator interpolates in RGB space. It should be in HSV space. The NormalInterpolator does a linear interpolation of the normals, followed by a          projection to the unit sphere. It should interpolate on the surface of the unit sphere.
            
OpenGL and hardware graphics accelerator 
At present, some graphics accelerator manufacturers supply only an MCD driver
for OpenGL (there are two possible drivers: MCD and ICD, ICD puts much
more of the OpenGL pipeline onto the graphics card and is, therefore, faster). 
MCD drivers may not produce substantial performance gains over a software
implementation (depending on the speed, capabilities, and version of your CPU),
and, therefore, it is quite possible that OpenGL software rendering may be faster. We give no exact guidelines here since the hardware vendors are increasing performance with every driver release.  At present, the Matrox Millenium II MCD driver has some performance oversights and software OpenGL is usually faster. Boards with the S3 Virge chipset are borderline, so you are advised to compare hardware and software rendering performance. 

Check the Cosmo Player website for a utility program, oglPanel.exe, which will
enable you to easily select which rendering path is used.  

8-bit color displays and hardware graphics accelerator cards 
Most hardware graphics accelerator card vendors recommend that 8-bit color not be used.  Due to color palette difficulties with these cards and the Windows
operating system, we do not fully support 8-bit color displays and hardware graphics cards.
            
Audio 
Audio will only be "pseudo-spatialized" on WindowsNT without Service Pack 3 or higher.  To get fully functional audio, install Service Pack 3 or higher, available from Microsoft. We have had reports that audio can cause hangs on exit with on WindowsNT with Internet Explorer 3.x and with Service Pack 1.  We are working to understand and fix this issue. We have had reports that audio can cause Cosmo Player to hang with Service Pack 1 on WindowNT or a version of DirectX less than 3 on Windows95. We are working to understand and resolve this issue. Audio will not be fully functional on Windows95 without DirectX 3 or higher installed.  To get fully functional audio, install DirectX 3 or higher, available from Microsoft. Multiple instances of Cosmo Player may produce sound from only one instance. This is due to the Microsoft provided functionality. If there are no native directSound drivers for the audio device being used to render sound, then windows falls back to an emulation mode which uses the windows WAVE functions. There is a known issue where two applications cannot simultaneously have the WAVE device open at the same time. Thus, if your audio device does not have native directSound drivers, then you can only get sound from one process at a time. Note that under NT4.0, DirectSound *always* uses emulation mode. So, if you're running NT4.0, then you will never be able to have two processes with audio active at the same time. This should be fixed by NT5.0
because the H/w vendors are promising native directsound drivers under NT5.0.
            
GZIP 
When loading a gzip'ed VRML file with a .gx extension, Netscape 3.* may issue
the warning message "Warning: unrecognized encoding: 'x-gzip'" . You can
safely ignore this message, and Cosmo Player will correctly process the file. A
workaround is to rename the gzipped file with a .wrl extension instead of .gz
extension.
            
Navigation Speed 
This release of Cosmo Player interprets the NavigationInfo node's "speed" field
more literally than previous releases. This change makes Cosmo Player more
spec-compliant than before, and allows content authors to confidently specify the proper navigation speed for a world (since the browser will now closely adhere to the specified speed). Specifically, in the WALK viewer, navigation with the keyboard arrow keys now moves the camera at exactly the speed specified in the current NavigationInfo node. Navigation with the mouse allows some flexibility, but by default the user will not be able to move faster than approximately 3 times the specified speed. (Of course the user can always manually adjust the navigation speed via the Preferences panel.)

Authors should especially be aware that the default "speed" value (from the
VRML97 spec) is 1 meter/sec, which is a very slow walking speed in a life-size
world! (In other words, if you're building a VRML world using real-world scaling, you should probably use a NavigationInfo node with "speed" set to somewhere between 3 and 5.)



8. Reporting Bugs

Cosmo Player 2.0 is free, unsupported software. However, if you find bugs, or have other comments about the software, you can report them to the Cosmo Player development team by using the feedback form on the Cosmo Software's Cosmo Player web site or by sending mail to cosmoplayerbugs@sgi.com. 

The newsgroup news://vrml.sgi.com/sgi.cosmoplayer is also available for general questions and discussions on Cosmo Player. Note, this newsgroup is not a general Usenet group. Use Netscape Navigator or the MS newsreader to read and post to this newsgroup. 

9. Trouble Shooting

#1. If you are using Windows NT and have a Matrox Millenium graphics driver installed and Cosmo Player hangs on startup, then this is actually a Java-graphics driver problem.  Netscape will also hang if you try to view the Java console (without viewing a VRML file).   For help, see the URL: 

http://help.netscape.com/kb/client/970805-1.html 

or get the fix directly from the Microsoft site at 

ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/NT40/hotfixes-postSP3/getadmin-fix

-------- 

#2. If JSAI class files are not being loaded in Internet Explorer, you may want to confirm that your SOCKS server on your firewall is compatible with Internet Explorer. Workaround by using an http proxy to access the internet or by upgrading your SOCKS firewall server. 

-------- 

#3. We have had reports of EAI content not working in Internet Explorer.  In some cases this is due to LiveConnect functionality being used.  Please use getBrowser() in your content as that method will work in both Netscape and Internet Explorer. 

-------- 

#4. If Java functionality is not working, please check your CLASSPATH.  If the
CLASSPATH environment variable points to any other (non-Cosmo Player 2.0) vrml.*
classes, then Java functionality will not be available. 

-------- 

#5. If embedded vrml runs in various versions of Netscape and in IE 4.0, but won't run in IE 3.x. Ensure that you are using double quotes (NOT single quotes) in your html. That is, it should look like  SRC="coolVRML.wrl"  not   SRC='coolVRML.wrl'.



10. Software Updates

You can download the latest version of the software from the Cosmo Software's Cosmo Player web site. 



11. VRML Developer Information

We have implemented some additional functionality to enable developers to debug their content.  This functionality includes: 

- At runtime, you may toggle (on/off) an in-scene display of frame rate by pressing the character '='.

- You may force the display of the console at runtime by pressing the '/' key on the numeric keypad.   Pressing '<shift>-/' will hide the console.

- A print() method in Javascript to print information to the Cosmo Player console from a VRML Script node using Javascript.  (See above for how to display the console.)
  
     For example, 

     Script {

        url "javascript: 

                function initialize() {

                        print('Script 2 initialized.'); 

                        vec = new SFVec2f(0,1);

                        print('SFVec2f is ('+vec.x+','+vec.y+')');

                }"

     }

- A print() method is also available in the EAI and JSAI.  The static Browser.print() methods print the passed-in information to the Cosmo Player console. (See above for how to display the console.)  You may pass a String, int, boolean, float, double, long, or char to this method.  For example, in the EAI : 

        import vrml.external.Browser;

        ...

        Browser.print("Your message here");


        or


        vrml.external.Browser.print("Your message here");


    In the JSAI :


        import vrml.Browser;

        ...

        Browser.print("Your message here");


        or


        vrml.Browser.print("Your message here");

- Using EMBED tags, it is possible to turn off visible UI (similar to a None viewer) while still providing built in navigation. This can be useful for ad banners and other stealth VRML content. Example: 

     <EMBED SRC="frob.wrl" WIDTH=120 HEIGHT=90 VRML-DASHBOARD=FALSE>

Note that for full page/frame plugins, you must still use an EMBED tag in HTML to get this effect, Specifying the width and height as "100%".
