|
Q: Tell us about Mad F/X and how it came about.
A: A while back hardware acceleration was just
starting to be supported by some PC games and
was rarely taken advantage of by most graphics applications on
the market. Most 3D editors relied
solely on wireframe previewing and even when
some 3D editors finally did support 3D acceleration, they did
not exploit the full range of
features supported by current graphic hardware.
That is when I decided to write an application specifically designed
for today’s leading
3D graphics accelerators. Mad F/X is dedicated
on delivering top notch real-time graphics quality without compromising
on speed.
Q: What new ideas / features did you bring to
Mad F/X?
A: One of our biggest features was our Shader Management System (SMS).
This is a mechanism that dynamically creates, manages and caches our
shaders and allows us to do many things and increase performance on
the fly. One of the original problems we faced with Mad F/X supporting
hardware shaders was that Mad F/X was not a simple game or demo and
needed to dynamically create shaders to support usage of undefined
amounts of lights. Every time a user introduces a new light, changes
a light type or property, or even flies through a scene having more
than the maximum amount of lights (dependant on the hardware’s
maximum shader instruction count), new shaders need to be created
dynamically to reflect these changes. This allows end users to not
worry about each material shader having to support a constant lighting
setup.
Another feature related to SMS is our special
material editor. This material editor does not just load a shader
and allow the user to change variables, but automatically creates
new shaders depending on which hardware accelerated wrap types you
choose and even which blend mode or modifiers you choose. These new
shaders are in ASM and can be shown in a preview window within Mad
F/X for more experienced users or software developers. The combinations
are endless.
One feature I should talk about is our “Dynamic Vertex Cache
Optimization” tool. This feature takes the full scene and optimizes
each mesh so that vertices are ordered in such a way that the graphics
card can access this data more efficiently. Using this option on a
mesh with over 500,000 polygons may take a few seconds, but the result
we noticed was over 40% speed increase. And once you optimize the
mesh once, you’re good to go. At the same time we made this
optimization, we implemented a render state management system which
optimized scenes with large amounts of objects (500+ for example)
which also showed increases in these scenarios of up to 40% which
is quite good considering Mad F/X was blazing fast to begin with!
Q: What developer tools were used in developing
Mad F/X?
A: Mad F/X’s engine and interface were developed entirely using
Visual C++ 6.0. Some of the particles, sprites, flares and textures
where made using PhotoShop.
Q: What is ShaderWorks and how is a tool like
this used with Mad F/X?
A: ShaderWorks is a visual (graph-based) shader development tool.
It was originally developed so that Mad F/X users would be able to
quickly and easily create complex and flexible shader materials which
can then be easily used in Mad F/X 2.0 once it is released. This will
allow users of any graphics accelerator to experience Mad F/X and
will also pave the way for Mad F/X to support any upcoming shader
version and take full advantage of upcoming graphics hardware capabilities.
More details on ShaderWorks are covered later in this profile or can
be found at www.ShaderWorks.com.
Q: What is so special about Mad F/X’s real-time rendering
capabilities?
A: Simply outstanding rendering speed and visual quality. Mad F/X
is highly optimized for speed but without compromising its rendering
quality. We do this by supporting all of DirectX’s newest API
features and fully taking advantage of hardware acceleration and today’s
fastest GPUs like ATI’s Radeon 9x00 series.
Q: What is planned for upcoming versions of Mad
F/X and when will this version be released?
A: Upcoming versions of Mad F/X will support fully customizable HLSL
shader materials and will most likely be shipped with a free version
of ShaderWorks. Also Mad F/X will support HDR (High Definition Rendering)
and will introduce many exciting and jaw dropping cinematic effects
like motion blur, depth of field and many blooming effects. In a later
release we would like to introduce real-time physics simulation to
Mad F/X’s animation system using Havok. These are just some
of the major upgrades we have planned and many new tweaks and additions
will also be implemented.
With hardware restrictions being lifted year after year, Mad F/X’s
future will be extremely exciting.
Look for a new version of Mad F/X in Q1 / 2004.
Q: What makes Mad F/X shine above all other real-time
3D editors?
A: It would definitely have to be Mad F/X’s unmatched real-time
rendering speed, outstanding visual quality, streamline interface
and incredible ease of use.
Q: What Hardware 3D features do Mad F/X support?
A: Here is a quick list of some of the technical features that Mad
F/X supports…
- Uses DirectX 9.0 API for real-time rendering.
- Supports hardware programmable shaders through
Vertex Shader 1.1 and Pixel Shader 1.1-1.4
standards.
- Supports 2D EMBM, 3D Blinn and Dot3 bump-mapping.
- Complex shaders (ex: Toon, Chrome, Glass, Rubber,
etc)
- Hardware projected textures (ex: reflection,
refraction, etc)
- Photo realistic lens flares and sprites
- Highly customizable particle systems
- Multi-pass and multi-texturing (up to 8 textures
per pass)
- Cubic textures
- Skyboxes
- Mip-mapping and texture compression
Q: Can you give us some examples of how Mad F/X
takes advantage of those features?
A: Here are some snapshots of Mad F/X using some of the features
mentioned…
Q: What feature of the Radeon 8x00 / 9x00 do
you like the most? And why?
A: On the 8x00 series, I found TruForm to be quite exciting and useful
in our application. Also the fact that these cards supported an updated
Pixel Shader 1.4 standard as apposed to NVidia’s 1.1 limit which
they where stuck at for quite a while. Now one of the MOST exciting
features which ATI supports on it’s 9700 series (and up) is
support for 64 and 128 bit floating point textures. This allows us
to do very exciting cinematic effects such as HDR (High Dynamic Range)
rendering, Motion Blur, Depth of Field, Post Rendering Filters, and
everything you see used in ShaderWorks.
Q: If you could ask for any new 3D feature on
the Radeon, what would that be? And how would you use that in your
engine?
A: As a software developer, eventually I wouldn’t mind seeing
support for larger primitive counts. Most games don’t ever need
to send a 200,000 polygon mesh through the rendering pipeline at once,
but in an application like Mad F/X, it’s not uncommon at all
to see a model consisting of more than 1 million polygons. This would
just allow us to not have to split up meshes which slow down load
times, normal generation algorithms and presents many other problems.
Also I would love to see ATI’s cards support a float-precision
DEPTH render target so that we can do depth of field more efficiently
and not have to alter the user’s final ShaderWorks shader dynamically.
But besides that, I’ve been a VERY happy camper developing our
software titles on ATI hardware.
Q: If you could sum up how much the Radeon 9700
improves Mad F/X in one sentence, what would you say?
A: In our tests, using Mad F/X with a Radeon 9700 is over 2X faster
than a Radeon 8500, and I thought the 8500 was blazing quick with
Mad F/X!
Q: If you could sum up your view on ATI's future
in 3D, what would that be?
A: In the past, negative emphasis was put on ATI concerning poor
driver development. Well as an experienced 3D software developer,
I can proudly state that ATI has certainly taken care of this issue
and now seems to be the leader in one of the roughest graphics sectors
out there. I have no doubt in my mind that ATI will be a leader in
this field for years to come and continue to pave the way for exciting
new technologies that will make our lives as software developers easier
and make the lives of gamers and computer enthusiasts even more exciting.
About ShaderWorks
Q: What exactly is ShaderWorks and who would want to use it?
A: ShaderWorks is a visual (graph-based) shader development tool
based on DirectX and the HLSL (High Level Shader Language) standard.
ShaderWorks was originally developed so that Mad F/X users would be
able to quickly and easily create complex and flexible shader materials
which can then be easily used in Mad F/X 2.0 once it is released.
ShaderWorks will fit perfectly in many game development pipelines.
ShaderWorks is very easy to use and now artists and developers can
interact and create shaders without needing to write a single line
of code.
Q: When will ShaderWorks be released and how
much will it cost?
We plan on releasing ShaderWorks in Q4 / 2003 in the form of a public
beta. ShaderWorks’ initial price is not yet decided. If all
goes well for Mad F/X, ShaderWorks will most likely be shipped free
of charge for Mad F/X users and.
Q: Tell us about ShaderWorks and how it came
about.
A: The idea of a high level visual shader development tool is by
no means “new”. Many tools of this nature were available
for high-end software based renderers like RenderMan and BMRT and
expensive graphics applications. So for over a year, I’ve been
playing around with these development tools and wondered to myself… “Damn
it would be COOL to have this kind of tool specifically designed for
hardware shaders”. But as ASM was the language of choice, and
HLSL was just being introduced, it seems nearly impossible to build
such a concept on an assembly-like language. A few months later, after
throwing the idea around some more, I decided I REALLY wanted to give
our Mad F/X users unlimited control over their materials and so I
quickly began work on ShaderWorks.
After letting ATI know of our plans to develop such a tool, ATI began
to show much interest as it could serve well for any game / software
developer as well as Mad F/X users. So I decided to put the project
in overdrive and decided that ShaderWorks would also be a developer
tool. Progress on ShaderWorks was as smooth as can be and in 3 months
ShaderWorks was ready to start demoing. Since then, there has been
large interest from independent software developers and companies
like EA Sports, NDL, ATI, NVidia and Microsoft to name a few.
Q: What is so special about ShaderWorks and why
does it defer from other shader development tools currently on the
market?
A: Currently there are a few solutions for simple shader creation
including ATI’s RenderMonkey and NVidia’s CgFX which are
somewhat alike and allow a simpler interface to setup shaders to be
coded using ASM, HLSL, or CG (which is not a standard). These tools
along with Microsoft’s EffectEdit are more or less straight
shader editors making it easier for developers to setup registers,
shader versions, textures and render states.
ShaderWorks took a large step forward and is special in the fact
that no other HLSL development tool has a visual graph interface which
allows even non-programmers to load re-usable shader blocks (code)
and easily link them together to form a shader, without any coding
necessary. ShaderWorks takes care of the rest by intuitively creating
the actual shader code internally. More experienced users can tweak
or edit the shader code directly using our HLSL shader function editor
from within ShaderWorks as you can see in the application image.
Also we will be releasing an integration kit along with ShaderWorks
which allows developers to quickly tie ShaderWorks (.SW) material
files into their projects.
Q: What is planned for upcoming versions of ShaderWorks
and when will this version be released?
A: A beta version of ShaderWorks is due to be released in Q4 / 2003.
ShaderWorks IK (Integration Kit) should be released shortly after.
Upcoming versions of ShaderWorks will support newer HLSL standards,
have more shader blocks to experiment with, have many new interface
upgrades to make linking and will make creating shaders even easier
for the end user.
Q: What Hardware 3D and technical features do
ShaderWorks support?
A: Here is a list of some of the key features…
- Uses DirectX 9’s powerful HLSL (High Level Shader
Language) C style shader standard
- Extremely powerful and easy to use graph based
user-interface
- Little or no coding required
- Supports distribution of re-usable HLSL shader
blocks and functions (shader algorithms)
- ShaderWorks materials and integration kit will
be used in upcoming Mad F/X 2.0 software
- Supports all shader models up to 2.0 extended
- Global blocks and constants for use by every
technique or rendering pass in the material
- Exports to DirectX 9 proprietary Effect (.FX)
file format
- Split screen (for previewing regular rendering
along side effect enabled rendering)
- Dynamic DX9 HLSL parser (creates HLSL shaders
on the fly while you edit your material)
- Auto-compile feature dynamically compiles while
coding
- Full HLSL support enables Predication with upcoming
DirectX 9.0a release
- HLSL Post rendering effects (16 or 32 bit floating
point texture support)
- HDR (High dynamic range)
- Glare (Afterimage, Bloom, Streaks, Ghost)
- Motion blur
- Depth-of-field
- HLSL real-time post processing filter stack
- Filters include (projector, emphasize contrast, edge soften,
edge detection, pale coloring)
- Defaults to FFP (Fixed Function Pipeline) rendering
which is supported by older hardware
- Half and Full precision float
- User-defined custom semantics (they can then
be handled by your own custom engine)
- ASM output viewer
- Dual screen switching support
- Artist layout and area for outputting custom
data with exported shaders
- And much more ...
Q: Do you have some early snapshots of ShaderWorks
in action?
A: Sure do! Here is the ShaderWorks UI.
Q: If you could sum up how much the Radeon 9700
improves ShaderWorks in one sentence, what would you say?
A: More instructions = more realistic shaders! The Radeon 9x00 series
supports VS / PS 2.0 which support more shader instructions and registers
which in turn allow ShaderWorks developers to really take advantage
of a high level shader language like HLSL.
About Mad Software:
Q: Gives us a brief history of Mad Software.
A: Mad Software was founded in February of 2000 by me (Scott Bean).
The company is also privately held and funded by myself. We are currently
based in Sudbury, Canada (near Toronto). The primary goal of the company
is developing high performance real-time 3D visualization / animation
software. Our flagship product is Mad F/X™ and our upcoming
product is ShaderWorks™.
Q: How closely have you been working with ATI
and how do you see that continuing going forward?
A: ATI has been providing us with hardware and technical support
for years now and have always made sure we had the latest graphics
cards to develop on. ATI has also been extremely helpful in terms
of forming a business to business relationship with Mad Software.
We can see our upcoming products continuing to be developed on ATI
hardware for years to come and hopefully ATI and Mad Software can
continue to work closely together on future products.
Q: Any exclusive parting hints / comments on
upcoming titles you wish to share?
A: Come check out Mad F/X for yourself at www.Mad-FX.com and you
will be pleased to see how fast your Radeon hardware REALLY performs
in a real world scenario.
Also, feel free to come to our forums at www.ShaderWorks.com and
post questions and comments about ShaderWorks (registration not required).
|