There is never enough testing!

by abenedik 1. January 2009 14:26

Everyone who has already tried the new version of Viewer3ds knows what I mean. The application just did not start!

During the final testing a wrong version of Viewer3ds "smuggled" into my installer project. Because I have already done extensive Viewer3ds testing, I did not test it again. What a mistake! The installer contained a version of Viewer3ds that required a wrong version of Reader3ds.

Luckily the new Viewer3ds has an error reporting system, so I could act quickly.

The fixed version is already available on https://www.ab4d.com/Viewer3ds.aspx. It was actually already available on 31th December 2008, but because of a New Year celebration I did not have time to write a message about it.

I must admit that the past few releases were not very good. Every release had some problems. I am already using a unit testing, but still there is place for error. I was also quite under pressure, because I have to release new versions for all the products before the previous version expired. With the releases still to come I will have more time for additional testing. So they should be less buggy.

The only thing left to say is:

Happy New Year 2009!

Tags: , , ,

Reader3ds

New version of Viewer3ds and Ab3d.Reader3ds available

by abenedik 27. December 2008 22:40

Finally my firstly published application, Viewer3ds, got a major update. The Ab3d.Reader3ds library was also updated.

The previous version of Viewer3ds was really old. More than 2 years old! The main problem with Viewer3ds was that it was using an embedded Ab3d.Reader3ds library for importing 3ds file. This meant that the updates of Ab3d.Reader3ds and many new features that were introduced did not have any effect on the Viewer3ds.

Viewer3ds

The new version of Viewer3ds does not have an embedded Reader3ds, so the currently available version is used.

The application now also supports many new features. For example:

  • The objects hierarchy is displayed in a tree view. It displays names of the objects that were defined in a 3D modeling applications. So when the exported xaml is used in your application, you can know which names to use to access the objects.
  • All the 3D objects can be renamed (or given a name if a name was not specified).
  • If the 3ds file contains an animation, it can be played with Viewer3ds. A selected frame can be exported to xaml.
  • It is possible to export only selected objects (besides exporting all objects).
  • Camera can be freely rotated around the read objects (select Free Camera in Cameras Panel).
  • Lights can be turned on and off. A camera light that shines in the direction of the camera can be added to the scene (in case the scene does not contain any light).
  • There are many options on how to load the 3ds file. For example it is possible to disable transparencies, control the shading of objects, etc.

As you have probably noticed from the screenshot above, the user interface is completely changed. It is now similar to ViewerSvg and Paste2Xaml. The process of user interface unification will eventually lead to a single application that could be used for all the supported file types. I also plan to include some great new features (but will not let you reveal my plans :)

Some of you will probably miss the 3D buttons that were used in the old Viewer3ds. No need to worry. I am going to prepare a sample with the same 3D buttons. It will be available with full source code so you could add the same functionality to your applications.

The Ab3d.Reader3ds library also had some improvements and bug fixes:

  • Fixed bug when reading spot lights.
  • Fixed Null reference exception when setting Default Material.
  • When applying smoothing groups or smooth shading, the texture coordinates are also remapped (before textures were not applied correctly).
  • Using new licensing model with improved evaluation. The new version has no fixed expiration date - instead library can be installed for a 60 days evaluation.

The new version is available from https://www.ab4d.com/Viewer3ds.aspx.

Tags: , , ,

Reader3ds

Commercial version of Ab3d.Reader3ds available

by abenedik 4. June 2008 17:00

As promised the commercial version of Ab3d.Reader3ds is available.

The purchase can be done on https://www.ab4d.com/Purchase.aspx.

As rss subscriber I give you 10% launch discount. Just enter "Reader3dsRss" as a discount code on the Purchase page.
The discount is valid only until the end of July 2008.

Tags: , , ,

Reader3ds

New version of Ab3d.Reader3ds available

by abenedik 1. June 2008 00:15

I hope you did not notice that the actual version of Reader3ds has expired today. If you did, I would like to apologize for the inconvenience.

So finally the new version 4.3 is available for download.
This is the last freely available version and will expire on 31th December 2008.

The following is the list of changes:

  • Fixed bug where camera name or light name is longer than 8 characters (ArgumentOutOfRangeException: Length cannot be less than zero.).
  • Added public static get ExpirationDate - so it is possible to get expiration date without actually creating an instance of Reader3ds (this can already throw expired exception).
  • Fixed exception when reading 3ds file without any animation keyframe.

    The commercial version is already prepared. The version 4.3 is almost the same as the commercial version – the only difference is that it does not contain licensing system (it has the nasty expiration date).

    The commercial version should be available at the end of the week. I need to move the site to a new and faster server and then it will be possible to purchase the license (automatically on the new site).

    Another great news is that new versions of Ab2d.ReaderSvg and Ab2d.ReaderWmf are also almost prepared and will be published very soon. And until the end of the month commercial versions of both will be available also.

  • Tags: , , ,

    Reader3ds

    Greatly improved version of Reader3ds available

    by abenedik 4. December 2007 22:20

    Programming with 3D objects has never been easier!

    With Ab3d.Reader3ds library the models and animation data can be simply imported into WPF (.Net 3.0) application. The library adjusts the model data so they WPF applications they look as in the modeling application.

    All the imported models can be accessed by their name (with NamedObject property) - as they were defined in 3D modeling application.

    The integrated Transformer3ds class simplifies transformations on the objects - rotation, translation, scale. Creating custom animations can be done really easily.

    Playing animations stored in 3ds file is also very simple. The Reader3ds has integrated Animator3ds helper class. The only thing to do is to set the duration of the animation or the number of frames played in a second and than calling the DoAnimate method in a Timer or Render event..

    Work with 3D content in WPF is now as simple as using gif or jpg images.

    The following image shows sample R2D2 model rendered without using smoothing groups (left) and with using them (right - new in v4.2) - some edges are sharp and some are smooth.
    Improved rendering quality with uning smoothing groups

    New in version 4.2:

    • Support for smoothing groups - also automatically support flat and shaded models. This greatly improves rendering quality.
    • Added Shading property to define None, Flat, Smooth or SmoothingGroups shading. Default value is SmoothingGroups that uses the Smoothing Groups values stored in 3ds file to define which edges are smooth and which are flat. This option produces the results as in the 3d model designer. However if you wish to force the flat or smooth looking objects choose either Flat or Smooth (before reading the 3ds file). Also if performance is much more important than rendering quality choose None.
    • GetFrame can now get a frameNo as double to render the models between frames (for smoother animation)
    • Fixed bug when reading from reasource and 3ds file contains texture files (exception was thrown).
    • Also now it is possible to set TexturesPath property to url of the textures (http://...) or to the application resources ("pack://application:,,,/XAMLBrowserApplication1;component/models")
    • Added GetCameraForFrame method that gets the camera for the desired frame number - this enables creating animated cameras
    • Fixed reading material colors for some older 3ds files (in previous version reading crashed with "Non-negative number required." exception)
    • The previous version has wrongly convert position from 3ds coordinate system to wpf coordinate system. The difference is that the x axis now points to the right instead of the left and the z axis points to the viewer and not away from it. This version by default uses new coordinate system, but if your application depends on the old one, you can simple set this property to true. But note that this can only be a temporary solution. Set UseOldCoordinateAxis property to true to use old coordinate axis.
    • Added Materials property - Dictionary that can be used to access all the materials defined in 3ds by their name.
    • Added support for animated lights (PointLight - positin, color; SpotLights - position, direction, color)
    • Added GetExpirationDate method
    • Added TargetViewport - gets the viewport that was used in ReadFile
    • Added Animator3ds - helper class to simplify playing animations stored in 3ds file

    Changes and fixes in Transformer3ds:

    • Fixed isAditive parameter for Scale and Translate transform
    • ObjectName can be now also Model3DGroup and not only Model3DGeometry
    • RotateObjects can now be called with RotateTransform3D - this enables setting custom center of rotation (instead of center of object)
    • Added methods without object name - to translate, rotate and scale all the objects and lights (as using constant Ab3d.Reader3ds.RootModelGroupName for objectName).
    • Added Transformer property to Reader3ds - this simplifies transforming the read objects

    Reader3ds, four sample applications, help file and Viewer3sd are available from www.ab4d.com/Reader3ds.aspx.

    Tags: , , ,

    Reader3ds

    New version of Reader3ds and new RobotArm Sample 3D application available

    by abenedik 11. May 2007 00:45

    Version Reader3ds 4.1 is finally published.

    The most important new feature is that the new Reader3ds is capable of reading objects hierarchy. That means that for example if in a 3D body objects we rotate the head, the eyes and nose will be rotated accordingly. This really enables great manipulations with 3D objects. To make this even simpler a Transformer3ds class has been added to the Ab3d namespace. This class contains methods that make transforming of 3D objects really very simple. For example the following line of code rotates of object named as "Joint2" in RobotArm 3D scene for 45 degrees:

    robotArmTransformer.RotateObject("Joint2", new AxisAngleRotation3D(new Vector3D(0, 0, 1), 45));

    To demonstrate all those new features a new sample 3D application is available - RobotArm shows how simple is to create complex 3D transformations and animations.

    And this is not all. With Sandbox I managed to create an online and offline help (chm file). The online help can be seen here. The chm help file is included in the package. This way using features in Reader3ds and Transformer3ds should be easier.

    I hope you find this interesting - you are invited to visit the www.ab4d.com - see Reader3ds section.

    Tags: , , ,

    Reader3ds

    New version of Reader3ds support animation

    by abenedik 29. December 2006 20:00

    New version of Reader3ds is published. There are many new features and improvements. The new version more accurately reads complex 3ds files. The positions coordinates are now adjusted for the WPF coordinate system. Using the objects with their names that were defined in the modeling application is also simplified.

    The biggest new feature is animation support. Now it is possible to get Model3DGroup for each frame. To demonstrate the new animation abilities there is also a sample Player3ds application with a sample animation.

    To get more info and to download the new version see my wpf-graphics site.

    Note: The Reader3ds version 3.9 will expire on 18th January 2006 so please update to new version.

    Tags: , , ,

    Reader3ds