My favorites | English | Sign in

O3D Release Notes

Release 0.1.42 (5 October 2009)

Bug Fixes / Changes

  • Fixed a bug in the plug-in related to skinning. Skinning should now work when translated.
  • Fixed a bug in the o3dConverter related to skinning. The SkinEval is now correctly bound with the root transform of a skinned mesh.
  • O3D always clears the backbuffer in all cases now, even if you don't put a ClearBuffer object in your render graph. This is to ensure the same results on all platforms.
  • O3D now renders to RGBA backbuffers on all platforms.
  • o3djs primitives cylinder code can now make truncated cones.
  • Fixed a bug where O3D could fail to compile an effect if the last line did not end with a linefeed.

Added

Known Issues

  • Full-screen mode in modes other than DISPLAY_MODE_DEFAULT does not work reliably on Windows Vista.
  • This version of O3D does not support OSX 10.4 (Tiger).
  • In OSX 10.6 (Snow Leopard), O3D does not work with Safari. It works fine in Firefox.

Release 0.1.40 (10 August 2009)

Bug Fixes

  • Added support for XP64 and Windows7.
  • Fixed keys not working in o3dPingPong sample when O3D area had focus.
  • Fixed Tar code to support long filenames.
  • Fixed Mac install issue that caused Firefox to think an old version was installed.
  • Improved performance for dynamic texture setting.
  • Fixed interference between the embedded V8 engine and non-O3D related scripts (like Google Analytics) on a page. o3djs now only pulls scripts marked with id="o3dscript" into V8.
  • Fixed a bug with nested RenderSurfaceSet objects.
  • Fixed beach demo scrollwheel and initialization bugs.

Other Plug-in Changes

Samples Changes

  • New samples:
  • Added a Toon Shader example to shader-test sample.
  • Sample particle library now supports one-shots and trails. Added examples of particle one-shots and trails to particles sample.
  • Picking example now shows normal of the surface.
  • Box2d sample now uses compiled box2d library.
  • Fixed the beach demo to now run in hardware-accelerated mode on additional low-end GPUs by splitting up assets.

Utilities Changes

Tools Changes

  • Fixed issue with multiple embedded shaders in the sample o3dConverter.
  • Added --file_paths option to sample o3dConverter to make it easier to convert existing COLLADA files.
  • Sample o3dConverter and sample deserializer now separate skinned streams (POSITION, NORMAL, ...) from non-skinned streams (COLOR, TEXCOORD).
  • Sample o3dConverter will by default mark any primitive with no normals to request a constant shader. This fixes the issue with SketchUp models getting an error of missing NORMAL stream.

Release 0.1.38 (29 June 2009)

Added

  • Texture2D.setRect(level, destinationX, destinationY, sourceWidth, arrayOfNumbers): Lets you set a rectangular area of a texture from JavaScript.
  • o3djs.math.modClamp: Clamps something using modulo; handles negative values.
    o3djs.math.modClamp(7, 10) = 7
    o3djs.math.modClamp(-3, 10) = 7
    
  • o3djs.math.lerpCircular: Lerps in a circle—for example, if the range is 0 to 100 and you are going from 98 to 2, it will go 98, 99, 0, 1, 2 (around the circle).
  • o3djs.math.lerpRadian: Calls lerpCircular() with Math.PI * 2 for the range.
  • Requirements (o3d_features)
    • LargeGeometry
    • FloatingPointTextures

    You can also specify NotAntiAliased for o3d_features, which forces anti-aliasing off.

  • Support for Intel 950 and other lower-end GPUs.
  • Software renderer support.
  • oncontextmenu support.
  • UByteNField support.

    Also now, by default, vertex color fields in a COLLADA file are converted to UByteNFields, which saves space in our sample converter.

  • Full-screen mode.
  • The sample converter and sample shader builder (o3djs/effect.js) now support a specularFactor setting from 3ds Max.
  • A OneShot particle emitter (good for puffs, explosions, fireworks, etc.): See samples/particles.html.
  • o3djs.effect.createEffectFromFile(): Loads an fx string and creates the effect.
  • o3djs.material.createMaterialFromFile(): Loads an fx string, creates an effect, and creates a material using that effect.
  • o3djs.material.bindParamsOnMaterial(): Given a JavaScript object of O3D params, connects them to the corresponding params on a material.
  • o3djs.material.bindParams(): Given a JavaScript object of O3D params, connects them to the the corresponding params on all materials in a pack.
  • o3djs.material.createParams(): Creates a params from a JavaScript object, where the name of each property of the object is the name of the param to create and the property's value is the type of param to create.
  • o3djs.material.createStandardParams(): Creates the params the shader builder -effect.js- expects for globals, (for example, lightColor, lightWorldPos).
  • o3djs.material.createAndBindStandardParams(): Creates the standard params and binds them to all the materials in a pack. Effectively, this calls o3djs.material.createStandardParams() and then calls o3djs.material.bindParams().
    • Added aliases for most matrix related math functions. For example:
    • o3djs.math.matrix4.mul
    • o3djs.math.matrix4.copy
    • o3djs.math.matrix4.det
    • o3djs.math.matrix4.inverse

Changed

  • Moved to chromium.org and Subversion.
  • o3djs.util.makeClients: The second argument is now the application's requirements, as in
    o3djs.util.makeClients(initStep2, 'LargeGeometry,FloatingPointTextures')

    See Performance Tuning.

Removed

  • GR16F and GR32F texture formats. There is no easy way to make these work across GL/D3D, so we removed them. Sorry if you were using them.

Fixed

  • Render target and textures get cleared so they never have garbage.
  • Fixed o3djs.picking bug that occurred when tree traversal encounters a transform with no shapes below it.
  • Fixed bug in beach demo that occurred when the user attempted to use both mouse and keys at the same time.
  • Fixed viewport settings for rendertargets. The viewport is correctly set and restored across render targets.
  • Fixed bug on Windows where mouseup event was sometimes not received.
  • Fixed o3djs.loader.loadScene() to have opt_options.
  • Shader builder now builds a shader that does not need normals for constant materials.
  • Fixed crash bug with bad gzipped tar files.

Release 0.1.35.2 (6 May 2009)

Bug Fixes

  • Fixed touchpad scrolling for Mac Safari 4.
  • Fixed Mac bug that would crash the plug-in when a tab is dragged out of the browser in Safari.
  • Mouse wheel events now return client-area-relative mouse coordinates.
  • Fixed a problem in the Mac where the O3D window would hover over other HTML elements in certain instances.
  • Fixed a bug that prevented the O3D plug-in from unloading in Internet Explorer.
  • Assorted crash bug fixes.
  • Installer: Display an actual visible error message when O3D fails to install for lack of DirectX 9.0c.
  • Installer: Mac installer now explicitly checks for OSX version 10.5 (Leopard) and refuses to install on earlier versions.

Other Plug-in Changes

  • Added missing sampler addressModeW setting.
  • Upgraded the embedded V8 to the latest version from Chromium. This should provide even better performance and will probably fix some crash bugs too.

Samples/Utilities Changes

  • Samples: Improved performance of Prince IO. The sample was previously hard-coded to run at 20fps.
  • Samples: Several improvements to the Beach demo including:
    • The ocean and the island now display the correct textures and have shaders that mix between two textures based on vertex alpha.
    • There is an animated camera.
    • There is a proxy island that loads quickly before the detailed island loads.
    • 3D-oriented particles are used at the bottom of the waterfalls.
  • Utilities: o3djs/shape.js is now split into two files, shape.js and element.js.
  • Utilities: o3djs/quaternions.js: Changed quaternion representation from[w, x, y, z] to [x, y, z, w]. The scalar part, w, is now the fourth component.
  • Utilities: Added 3D particles to particle.js and the sample particles.html.
  • Utilities: Fixed bugs in effects.js related to making shaders for normal mapped assets.
  • Utilities: o3djs/debug.js: Added createSphere and createCube utilities to let you create those in arbitrary space.
  • Utilities: o3djs/math.js: Added method to create a 4-by-4 perspective transformation given a set of clipping planes.
  • Utilities: o3djs/math.js: Added aliases for inverse, multiply, and the determinant of 4-by-4 matrices.

Tools Changes

  • Added o3dVerifier, a tool that test-compiles the contents of a shader (.fx) file and converts it into the shader format accepted by O3D.
  • Removed performance timer output from the O3D Sample Converter (o3dConverter).
  • Fixed o3dConverter to return all the mesh streams found in the COLLADA file.
  • Fixed od3Converter to better handle local paths to shader files in the archive.
  • Changed the default extension to asset files generated by the o3dConverter from .tgz to .o3dtgz to avoid issues on certain server configurations (blog post with details to follow).

Release 0.1.34 (21 April 2009)

Known Issues

  • Fonts are different on Mac and Windows. There is a handful of fonts that will work across platforms (look at samples/canvas-fonts.html), but even those aren't guaranteed to be pixel equivalent.
  • Text support for the Canvas object isn't available on Linux.
  • Slow performance on some graphics cards, especially with Chrome.
  • Samples Issues
    • Prince IO may sometimes start in an inconsistent state. Reloading and turning introduction pages slowly fixes this issue.
    • Prince IO may cause Firefox on Windows to become unresponsive.
    • The Home Designer sample does not work properly in Google Chrome or Internet Explorer on Windows.
    • The Julia and Juggler examples may display intermittent vertical line artifacts on the Mac.
    • Some samples may be slow using certain combinations of graphics hardware and Google Chrome.
  • Display Issues
    • Navigating to pages with O3D content via the browser history in Firefox for Mac may not initialize the plug-in properly. As a workaround, refresh the page.
    • The O3D content area may not move properly when the user is scrolling in Firefox for the Mac.
    • The O3D content area flickers when the user is scrolling in Internet Explorer or Firefox on Windows Vista.
    • The O3D content area will sometimes get stuck above other content in Firefox on Windows Vista.
    • The O3D content area will flicker when the user is scrolling the page or changing focus on the O3D content area in Firefox on the Mac.
    • O3D doesn't render correctly after a screen resolution change (Windows).
    • O3D rendering can slow the entire system down when running on multiple displays.
    • The O3D content area flashes when receiving focus on the Mac.
  • Crashes and Hanging
    • Chrome 2.0+ (on the Chrome Beta and Developer channels) sometimes hangs when loading O3D content.
    • The O3D plug-in may become unresponsive when running the Animated Scene demo on Google Chrome.
    • IE 8 on Vista may crash running samples on ATI Radeon X1550 and Radeon X1650 cards.
    • Firebug breakpoints in O3D-sensitive code may freeze Firefox on the Mac.
    • Safari 4 for Mac crashes when the user pulls off a tab that is displaying an O3D content area.
    • Resizing a browser window that contains O3D content and spans two monitors may crash the browser on Windows.
    • Debugging an O3D application on Firebug in Firefox on the Mac tends to hang the browser.
  • Asset loading
    • The plug-in will refuse to load JSON .tgz archives from servers that automatically decompress the zip file.
  • Internet Explorer for Windows Vista Troubleshooting

    If you have already installed the O3D plug-in but are still seeing a message that the page requires the O3D plug-in to be installed as you try to load O3D content in Internet Explorer on Windows Vista, we recommend you try the following steps:

    1. Turn User Access Control on from the Windows Vista control panel, restart your machine, and load the O3D content again in Internet Explorer. Due to new security features in Windows Vista, some ActiveX controls won't run with UAC off.
    2. If UAC is already on, test the O3D content in another web browser, such as Mozilla Firefox or Google Chrome. If the O3D content functions normally in these browsers, this may indicate a problem with your install. Try reinstalling the plug-in from an Administrator account.