Virtools Dev Service Pack 3 (3.0.0.97)
New Features | Interface | Misc | Building
Blocks | Web Player | SDK/VSL | VR Pack | Server
New features
- Create Web Page now includes the AKAMAI code by default, so that Web Player installation is delivered through AKAMAI server technology worldwide. Please modify your existing web pages to take full advantage of fast, direct Virtools Web Player installations through Akamai's network; please read For Webmasters for more information.
- The current directory for import/export of separate file types (such as cmo, vmo, nmo, nms, bitmaps, imported objects) are now saved for each file type in separate directories and are saved within the project file (.cmo).
- New variables in the Variable Manager in the shader category:
- "When Loading Shader With Same Name"
This variable controls the way that shaders with identical names are kept or replaced. When loading a file containing a shader named identically to an existing one but with different content, three replacement modes can be used:
- Rename New (Default): The newly created shader is renamed.
- Replace Old By New: The existing shader is replaced by the new one.
- Keep Old And Don't Use New: The newly created shader is ignored and destroyed.
- "When Saving a NMO"
When saving a NMO file, this variable tells the Shader Manager what to do with existing shaders. The three modes are:
- Save All Shaders: All the existing shaders in the Shader Manager are saved with the .nmo file.
- Save Only Used Shaders (Default): A shader is considered as being used when used by a material, or referenced by a parameter in a behavior or array.
- Don't Save Any Shader : The nmo file will be saved without any shaders inside.
Note: When saving the composition (CMO) all shaders are saved.
- New Data Type: Float Slider. Shaders that uses parameter annotations such as "UIMin" and "UIMax" will be automatically edited with a slider in the material parameter dialog.
- Shader Parameter Dialog now works in live-update mode (i.e. modifying a parameter applies modifications on-the-fly).
- WARNING: you must have DirectX 9.0C installed; otherwise, there will be no DirectX9 rasterizer!
- Improved compatibility and support with DXSAS.
- One can now use "#include" directives inside shader source code.
- Added better Undo support for BBs whose shape can change (insertion/ removal of inputs, etc.).
- Physics Springs/Motors/Constraints Parameters can now be copied into local parameters or inside arrays.
Interface Bug Fixes
- Bug in script deletion: If the user tried to delete a script and chose "cancel", then nothing inside the script could be deleted - unless the user really deleted the script and undid the deletion.
- Array setup is now limited to display a maximum of 30000 items (note: arrays can still
contain more than 30000 items).
- When the VSL Editor was in Release Compile mode, it was not possible to press
F10 to step in a code that had been compiled in debug mode.
- Invalid message "Out of Memory" when resizing the 3D layout to a zero size.
- A composition was not marked as "modified" when editing an array or creating objects such as place, group or scene.
- Merging a composition could make some scripts to remain hidden.
- In Schematic View, using ctrl + double click shows the list of available Building Blocks, but when different BBs with identical names were found, only one was displayed in the list. Now for each occurrence, the name of the DLL is also specified between "( )".
Misc. Bug Fixes
- A Shader can now be used on 2D Entities as long as the shader uses at least a Vertex Shader. This Vertex Shader can simply copy positions and UV (just as they are initialized correctly for 2D rendering).
- Transformation Matrices (WORLD, VIEW, PROJECTION and all their combinations) are initialized to Identity for 2D Entities.
- When saving a material with a shader in an .NMO/.CMO file, the objects referenced
in the shader parameters are now saved as well.
- Some meshes with invalid face data (degenerated faces) were losing their normal
information when exported.
- When using a data array as input parameter of a shader, the application could crash if the size of the data array was smaller than the size of the parameter inside the shader.
- A secondary animation would not play correctly if there was not an active primary animation being played.
- A mesh vertex buffer format would not be correctly updated after device creation if inactive channels were used.
- Physics Engine no longer crashes when Forcefields and Buoyancy objects get unphysicalized (nor at Reset time).
- Physics Engine no longer crashes when a physics object gets unphysicalized or deleted while inside a Phantom object.
Building Block Bug Fixes
- Controllers/Mouse Waiter BB: A setting has been added to allow the
detection of mouse button swapping.
- Logics/Array/Get Key Row BB : When a pOut is linked to a
shortcut, changing the current target array could crash the application.
- 3D transformation/Look At BB: A bug was introduced in SP2 (regarding the handling
of orientation when reaching limits).
- Shaders/Render In RT View BB : This BB could crash when an invalid camera (NULL or a authoring camera such as the perspective view) was used. Also fixed cubemap rendering.
- Visuals FX/Texture Render BB : This building block is now obsolete and should be replaced by Shaders/Render In RT View BB which offers more control.
- Physics/Physics car BB : The BB could appear as "obsolete" after adding input parameters.
- Physics/Physicalize BB : When dynamically copying a physics object, the pIn Mesh is no longer overridden.
- Physics BBs : Physics building blocks now warn if they are applied to non-physical objects and deactivate their input whatever happens.
- Physics BBs : An object can now be Physicalized twice without confusing the Physics Engine. However, a warning is generated in the Output Console if such a case happens.
Web Player Bug Fixes
- Web Player could display a "Cannot find component" warning message
when a composition used a BB that has moved from one DLL to another.
SDK/VSL
- Plane, Ray, Cone, Sphere, Box and Frustum can now be compared using the ==
operator.
- String::Trim did not remove spaces at the end of a string correctly.
- LoadArray from a text file could remove the last character of text
lines when loading files that are not in "DOS format".
- Added a method (Vx3DInverseMatrix44) to correctly invert 4x4 matrices that
are not "standard" transform matrices (rotation, scale, position, shear) such as projection matrices.
- WMA and MP3 could not be played in a static standalone player.
- VxGetMouseButtonsSwapped added to query if the user has inverted its mouse
buttons in the Windows control panel.
VR Pack
New Features
- The ChateauJoystick.cmo sample has been improved. The user can now navigate with the keyboard when no joystick information is received from the vrpn server.
Bug corrections and optimizations
- The hyperlinks in the VRPack 1.6.4 documentation were missing.
- Minor changes in the VRDistrib.cfg and VRPack.cfg reference samples files.
- The vrpn BBs always activated their outputs even when no information was received from the server. This is now fixed.
Server
NOTE: The actual Virtools Server Patch will be delivered separately since it does not apply to Dev directly.
- Database Server module : Text Column content could be cropped.
- Database Server module : The 4.1.9 MySQL ODBC driver could crash when extra information was required. That information is no longer required.
NOTE:
Download the new Web Player separately from the Virtools website.