| Q&A |
Ultimate XAML,
J Collins
Design
August - 2009
|
| |
 |
“Microsoft
has made significant investments in making 3D XAML available
as a component for designing user interfaces, but we
only rarely see it used partly because of the difficulties
in creating content in that format. This tool is designed
to help solve that problem.”
<
Ultimate XAML in action |
|
| |
|
| Q1 |
Please
give a brief description of Ultimate XAML. |
| A1 |
Ultimate
XAML for Softimage is a plugin for Autodesk Softimage and
Mod Tool that helps with the creation of 3D XAML content.
The primary audience includes user interface developers of
XBAPs (such as web games) and standalone applications. It
is more than just a simple exporter; it includes a real time
shader that mimics how XAML content appears in a Windows Presentation
Foundation (WPF) application so that the final model can be
accurately visualized during creation. The WPF shader settings
correspond exactly to the settings available to the XAML material
settings so there is nothing lost in translation. Other exporters
we’ve looked at impose severe limitations on the types
of materials they can generate or the composition of the scene;
we’ve done our best to minimize these limitations and
make this process as simple as possible. Scenes can have arbitrary
hierarchies, objects can have local transforms, meshes can
have subdivision surfaces and even instances are fully supported
in the final XAML to keep file sizes down.
The plugin also includes the Ultimapper Helper which is designed
to help create the image maps XAML requires, which I’ll
explain more about later.
Another aspect of this plugin is the ability to create C#
code that helps interface programmers use the exported objects
within an application and integrate the resources with the
project in a type safe manner. The main benefit of this is
the compiler will produce errors if an asset that doesn’t
exist is referenced by the code.
While this is the first public release of Ultimate XAML for
Softimage, we initially created this tool in 2006 to solve
our own development needs while creating XBAP games and other
applications and we have been slowly improving it since then.
We would very much like to start seeing Windows applications
incorporate 3D elements more often because we think it can
make for a better user experience. Not too long ago we decided
to make it available to others because clearly, even though
3D XAML has been available to developers for several years
now, it is not used very much. We hope this tool makes it
a little easier for developers to make slick looking and fun
to use applications. |
| |
|
| Q2 |
XAML
is not often used to display 3D contents. What are the benefits
of XAML/WPF? |
| A2 |
XAML
is the standard way to integrate 3D content into the user
interface a Windows Presentation Foundation application. Historically,
applications that needed to present 3D content would use either
pre-rendered bitmaps or Direct 3D. Pre-rendered bitmaps certainly
continues to have its place in UI design but does have some
obvious limitations in that dynamic 3D content isn’t
an option. Integration with Direct 3D poses many implementation
challenges because embedding a Direct 3D rendering system
within a user interface without it becoming the user interface
is very complicated. Certainly possible, but not as convenient
as using XAML which enables the user interface programmer
to simply embed a 3D control into the middle of an existing
user interface. Any Windows PC that has .NET 3.0 or greater
(which is included in all Windows Vista and Windows 7 installations
and can be installed onto XP) can embed 3D XAML content directly
into the user interface of an application. 3D XAML content
coexists with all other user interface systems of the Windows
Presentation Foundation, and 3D XAML appears the same way
across all supporting systems with no special hardware requirements.
Microsoft has made significant investments in making 3D XAML
available as a component for designing user interfaces, but
we only rarely see it used partly because of the difficulties
in creating content in that format. This tool is designed
to help solve that problem. |
| |
|
| Q3 |
Ultimate
XAML export 3D assets from Softimage. What are the main settings
to do on a Softimage scene to be well exported? |
| A3 |
The
basic requirement is to create a collection of meshes which
have render trees configured to use the WPF real time shader
included in the plugin. The render trees can be shared or
unique per mesh. The shader provides precise control of the
settings of the XAML materials that are emitted by the exporter.
Each render tree can have any number of WPF shaders chained
together, and the exporter will produce a XAML Material Group
that corresponds to how these are connected. This allows XAML
objects to be constructed which use any combination of diffuse,
specular and emissive materials. These are distinct material
types in XAML and the WPF shaders can be configured individually
to suit the artists preferences for each material in use.
If the creation of a model requires the use of Mental Ray
shaders, as is often the case, the images need to be baked
into image files for use with the WPF shaders. This is a task
very similar to game developers reducing a high resolution
model into a game-ready model. The Ultimapper Helper can make
that process easier by coordinating the generation of these
images across multiple instances of Ultimapper objects, one
per material channel. |
| |
|
| Q4 |
Ultimate
XAML introduce its own material nodes. Does it also support
advanced shading (such as fragment/vertex shaders)? |
| A4 |
Ultimate
XAML for Softimage introduces two material nodes. The first
is the WPF Shader, which enables the artist to visualize
how the final XAML object will appear directly within Softimage
and allows for tweaking the XAML properties in real time
prior to export. The WPF shader is intentionally limited
to the features available to XAML, so it only supports solid
colors and image map textures used with diffuse, specular
and emissive shaders. It is impossible to configure the
WPF shader in a way that is incompatible with the features
XAML supports. The second node is a simple switch node that
is used by the Ultimapper Helper during the creation of
Ultimapper images to extract the diffuse, specular and emissive
channels from a standard render tree into image files for
use with the WPF shaders. The Ultimapper Helper switch shader
inputs can be connected to any other node output but will
usually be the non-illuminated texture channel data for
the material because the final XAML object will typically
be lit by the application’s scene lights. You don’t
need to use the Ultimapper Helper switch shader to export
XAML objects, but in situations where it makes sense to
use the Ultimapper Helper, it can be a real time saver for
creating the images used by the XAML objects.
|
| |
|
| Q5 |
When
using Ultimate XAML, is it possible to export 3D data to XNA? |
| A5 |
No,
this exporter is specifically designed to create XAML content
and XNA does not support XAML at this time. We would very much
like to see XNA support XAML in the future because currently
the XNA platform has a distinct lack of comprehensive user interface
APIs and XAML would be an obvious choice for Microsoft to add
support for. If the user’s goal is to produce general
purpose 3D content for XNA, Softimage users already have the
option of using the XNA add-on which is more suited for that
task because it is not constrained by the limitations of XAML. |
| |
|
| Q6 |
Ultimate
XAML documentation do not mention animation : does it mean that
Ultimate XAML do not export object animation or bones? |
| A6 |
That
is correct. While XAML supports rigid body hierarchies, it unfortunately
does not support bones or skinning. Ultimate XAML for Softimage
can export object hierarchies with instancing which can be used
by applications to configure animations procedurally but the
plugin does not currently export animation data. Our internal
project which originally drove the development of this plugin
needed to maximize XAML animation performance, and this precluded
us from using the standard XAML animation features because they
are unfortunately much slower than an animation system tuned
for a specific application. There is a lot of overhead that
comes with the standard XAML animation features. Despite this,
we are hoping to provide animation export features in a future
version because clearly it would be a useful thing and many
applications simply don’t require high performance animations
in the UI. You can find out more about this and other limitations
of the software on page 7 of the PDF documentation under “Features
and Limitations”. |
| |
|
| Q7 |
What
are your future development and evolution of Ultimate XAML? |
| A7 |
We
have a pretty good list of features we would like to incorporate
into Ultimate XAML for Softimage. Some of the major items we
would like to support in the future include animation support,
ICE integrated particle export, and code generation for user
interfaces. Whether or not these happen depends partly on our
own internal needs and partly on user feedback. |
| |
|
| Q8 |
XAML
is more than just a 3D format, do you plan to support more features? |
| A8 |
XAML
is certainly much more than just a 3D format! In fact, it’s
probably safe to say most people know XAML for almost everything
except 3D. Our main focus right now is to make it easier for
developers to use XAML 3D within their applications because
clearly, as we learned ourselves when we saw the need for this
tool, it is very difficult to get 3D content into an application
unless you have the right tools. We will continue to focus on
those aspects of XAML content creation which can benefit from
being part of a 3D authoring environment such as Softimage and
Mod Tool. |
| |
|
| |
|
| |
|
| |
|