WWDC1997 Session 306

Transcript

Kind: captions
Language: en
thank everybody for coming my name is
David Harrington I'm the newest addition
of the quick-draw l3d team on the new
EEGs Angeles working in conjunction with
Shan Hopwood who's the senior product
manager for quick-draw 3d to start off
this morning we'd like to give you a
quick overview of what we've done since
the last Worldwide Developers Conference
in November of this past year really
quick draw 3d 1.5 and with the release
of contacts we actually won best of show
we've really added a lot of the new
additional functionality with quick draw
3d 1.5 including plug in rendering
support plug-in group support and it's
also the first version which is truly
across platform implementation shipping
both the Mac version and the Windows
version is simultaneous release with a
common code base so if you implemented
there have implemented a Macintosh
application it should be very easy to
implement on the Windows PC side we also
use native Windows NT services and we'll
actually talk about those services a
little bit later on in the presentation
as application vendors is really several
different ways that we can implement
quick draw 3d inside of your application
if you have an existing 2d applications
such as Adobe Photoshop or say you can
implement just the viewer view or light
import and manipulate 3d m-f objects
inside of your application so it's a
great way to go and add a new data type
to your existing product for the game
vendors out there who already have
existing graphics libraries we can also
implement it the rave level basically
Ravus or hardware abstraction layer
allowing your games to take benefit of
apples or third parties hardware
acceleration or if you're looking to get
geometries you're looking to get plug-in
rendering support you're looking to get
3d method 3d in that file format support
you can implement our entire core
library so there's really a wide variety
of levels that you can adopt apples
quick-draw 3d technology throughout the
day we'll be showing you demonstrations
of each one of these and the performance
that it can provide one of the newest
additions to quick l3 1.5 is plug in
rendering support we're actually gonna
have several demonstrations a little
later on in the day showing you products
both by Lightworks as well as thank fish
technologies really extending the
capabilities and render and support the
Cottrell 3d provides out-of-the-box
Apple provides both wireframe window
and interactive a render where light
works and thanks this for providing
really a lot of additional options
including ray-tracing high quality
rendering cartoon rendering bead print
rendering once again we'll see several
examples and demonstrations throughout
the presentation we also see a wide
variety of third-party accelerator
vendors stepping on board to really back
quick-draw 3d at the top we have a wide
variety of chip makers including 3d labs
3d FX s Moss API as well as several
finished product boards some of those
boards include boards from ATI 3dfx is
looking at working with third parties
release new products as well as radius
at the high end of the product line with
the Thunderer 3d card with that I'd like
to invite both Debby and Scott from 3dfx
to come up and give a quick
demonstration about the power and
flexibility which their chipset provides
so Debbie and Scott from 3dfx
thank you very much I'm Debbie Chen with
developer relations at 3d effects
interactive and this is Scott Alden
who's with our developer support team
we'd like to thank Apple for letting us
spend a few minutes with you today we
are a graphic semiconductor company that
was founded on the premise that software
not hardware would drive our growth
entertainment software specifically Gein
software is arguably among the most
graphics-intensive of all software
applications and traditionally had to be
written and licensed to closed hardware
systems such as a coin op box that you
see in the arcades or a game console by
providing a scalable graphics
architecture to link the different
entertainment markets such as the arcade
and the home computer markets we enable
our developers to debut games in one
market and in a straightforward manner
redeploy or reexpress that content to
another to another platform because they
have a common common hardware platform
that is PCI bus Bay
and a common graphics target - right -
has this been done before moving from
say the arcade market to the home
computer certainly and we've seen it
over and over again and that's what is
that's what's exciting to gamers it is
that you can go to the arcade and play a
new game and then bring it into the home
later for a different kind of experience
typically but what's different today is
that these developers can now put more
energy and creativity into tailoring the
gameplay and the the levels for the home
say rather than spending their time on
wrestling with hardware and API porting
or moving their rendering engine from
one target hardware to the other and
this results in a number of benefits
including reduced cost to the developer
preserving the quality of the title so
that it looks it looks the same or
similar in the home as it does in the
arcade and we believe results in a
greater volume of content now that it
can flow more freely between the
different segments of the market which
in the end is what the gamer is what the
gamer wants developers in fact helped us
design our first product which is Voodoo
graphics as well as the new Voodoo rush
graphics chipset they told us they
wanted powerful graphics with no
compromise in performance they wanted to
be able to use all of the features that
you would expect in a full high
performance 3d system including features
such as mipmapping z-buffer alpha
blending bilinear or more advanced
filtering and all of this in one system
that would run in a sustained 30 frames
a second which is really what we look
for for an interactive feel in a game or
in other types of software and all of
this of course at prices that are
affordable to consumers have we
succeeded we'll let others speak for us
computer gaming world recently awarded
us their 1997 product of the year if you
serve to next generations game sight one
of the most heavily trafficked game
sites which a lot of you probably know
you'll see that their recent poll showed
that more readers own a 3d effects
baseboard than and all others combined
so there's a lot of data out there but
perhaps what's most important to you as
software developers is of course access
to robust stable api's and drivers
nearest and dearest share hearts we
absolutely support quick-draw 3d are
develop our drivers today are in early
beta and you can contact us to get
access to those and we do support the
other industry API is listed here for
your information for those of you for
whom this was your first introduction to
3d effects Glide happens to be our own
low-level rasterization library it's not
an API by any means but is used often by
coin-op developers and other game
developers who already have written
their own rendering engines this spretz
of drivers and api is what enables
developers in these diverse markets from
scientific visualization to the arcade
to the home computer game developers to
access the power of the hardware and
really enhance the experience that their
customers and your users get a couple
quick points and then we'll kind of get
to the beef which is the demos we are
working together with Apple to bringing
this technology Apple and their
licensees rely heavily on your feedback
and we ask you to based on what you see
today to contact them and be vocal about
how you think this would enhance your
business and enhance your users
experience we are partnering actively
with mac game developers and publishers
such as interplay and GT interactive to
bring more high-quality games to the Mac
as an aside we also would invite
everyone here to stop in to the games
area in the cyber cafe where we have GL
quake running on a 3d sx3 SX board in a
power computing system we are also
actively looking to work with developers
who are doing 3d content of all types 3d
applications of all types such as
Internet
author into 'ls and web browsers
anything that you can think of if it's
3d and pushes the limits of what 3d and
quick-draw can do we are looking to work
with you so please contact us any of the
methods you see here serve to our
website and there's a lot more
information lists of current games are
available there and we know that the
best way to evaluate what you see here
today is to really experience the
experience the technology so I'm happy
to introduce Scott who will show you
what we call the magic of Voodoo okay
what I've got here is one of our
internal technology demos called the
valley of raw the scene consists of
approximately 5,500 polygons texture
maps and right now I've got none of the
special features turned on so as I talk
to it I'm going to just turn them on
first is the bilinear filtering and NIT
mapping and you'll notice that the
aliasing on the nubes character on the
left has a cleaned up dramatically this
is kind of just about the little
fighting game to show some things that
could be done with uh with the hardware
and notice what the frame rates very
high quick response there's another will
feature the reflections in the ground
which is kind of a nice little addition
okay this is what's written using our
internal game developers toolbox called
ATV which stands for arcade toolbox and
you can get it from our developers Mac
release CD from my second demo Oh
someone turned off my virtual memory
the other thing I might mention that I
don't know if you did is that the the we
are live here jacocks a beast the only
thing that I wanted to mention too about
valley of raw which is kind of a
hallmark demo for us and we we debuted
it last year we've been showing it for
the better part of a year so for us it's
a bit dated but it really does show you
that a scene with with the depth
complexity of three or more with high
polygon counts of approaching 5500
polygons in that scene really does run
at 30-plus frames a second each of those
fighting characters was about 2500
polygons each and certainly you can you
can dummy down the count and so on but
what we like to see what we think
enhances the realism of experience is is
high polygon count models and very
complex scenes and as you notice with
all the different special effects turned
on we still have we still have the
playability of the 30 frame per second
experience
[Music]
okay that's just the weight your
appetite GL quake was a version done by
John Carmack that's implemented using
OpenGL and three effects has a mini GL
driver on the PC which I was recently
ported to the Mac and got the source for
lion entertainment or GL quake with all
the sprockets town sprockets and input
sprockets turned on support it pretty
well I just wanted to show you some of
the special effects kinda quickly that
you can use with the OpenGL version
first of all reflections just in case
you're ever in a deathmatch and someone
jump in the water to get away from in
you can kind of see them now kind of up
a new depth to the game there the water
[Music]
and that's what that one thanks thank
you great thank very much as we've heard
throughout the conference we're also
adding more and more 3d acceleration
directly to the logic board the current
ghazal product line including the 5500
and 6500 also have the API raise to
chipset built directly on the logic
board so with Hardware being added such
as we move forward also moving into the
filter media chipset really this gives
us the power we need to really show the
capabilities of our great game
developers with the new port 4 quits
well 3d 2 windows we offer also offer
some new capabilities of being able to
leverage the direct3d hardware
accelerated cards that are already on
the market what we've done is we've
created the d3 d2 r8 engine that
actually allows us to layer rave on top
of d 3d so it's a real good developer
proposition that allows our developers
to get access to the hardware on the
windows side as well but we noticed that
when we love layer sorry rave on top of
quick oil 3d forget about the same
performance as a native
d 3d game but if you write a native rave
driver you get about a 2x performance so
this is really a big incentive to our
hardware vendors on the windows side to
do a native rave implementation but for
those of you who currently do not have
one we can still leverage all of the
existing windows hardware accelerator
cards on the market also with our
windows port we use native file i/o we
use native draw content so a windows
release
uses the power of what Windows is
capable of doing as well as leveraging
the capabilities of the hardware for a
quick demo what we'll do is look we can
light up machine number for ATI is
already written a native wave driver for
the windows hardware accelerator cards
but here's a brief example of native
rave support on Windows we can also
launch existing applications like text
drives which has been very popular on
Macintosh bringing up on Windows turn on
auto rotate so we noticed the power and
the performance of 3d acceleration
Hardware even inside of a Windows
environment so it's really a great
cross-platform API for your 3d
development also throughout the
conference we've already seen that we
ported quick-draw 3d to open step we are
going to guarantee compatibility with
quick draw 3d running on the blue box
environment under Rhapsody as well as a
native ports to the yellow box we've
also seen the implementation on stage
and all these presentation that you can
also access quick-draw 3d through Java
so there's actually an in-depth session
on Friday where they actually get into
exactly how you would implement
quick-draw 3d through Java but we're
going to be a great partner on the
Rhapsody platform as well sort of the
roadmap for quick-draw 3d we did ship
quick-draw 3d one five one that added
some bug fixes some additional native
support life this year we're looking at
implementing 412 3d 1.6 it's mainly
going to be a performance release that
also offers VRML 2.0 rendering
compliance so we're looking at being a
better VRML citizen we're also going to
implement our first draft of the shader
interface the beginning of next year
we're then looking at implementing
quick-draw 3 2.0 and that's where we'll
aptly actually implement the shader
interface as well as roll out a next
generation hardware abstraction layer
that will give you more details as we
get a little bit closer to doing that so
we saw in several presentations and will
also show you again in the demo later in
today's presentation we also have world
plug which is a Netscape and Internet
Explorer plug-in that allows us to
display 3d and 3d m-f models directly
inside of our webpages so I don't know
people just came from Peter Hollies
demonstration but really being able to
deploy QT ml all over the Internet
make it seamless make it as easy as
possible Apple will actually roll out
that plug-in later in the year and once
again we'll hear some more information
on that later on we're also now offering
three DMF file references basically
having one file be able to point out
multiple files decreases the size of the
download really gives us a lot of
additional speed as well as uh making
significantly smaller file sizes we're
also looking at implementing a
walkthrough mode in the quick-draw 3d
viewer actually allowing users to
navigate space instead of really just
being able to manipulate an object and
enable plug-in rendering on tuning
cartoon interactive rendering and BSP
rendering up to this point
Apple is out played a very big part in
VRML we've really been busy implementing
the features that we have in quick dwell
three one five one we're really looking
at changing that and there's several
ways that we're doing that we actually
now have a seat on the VRML board so we
are a voting member we're creating
alliances with a lot of third-party VRML
vendors and we're really looking at
adding and fixing technologies inside of
the current quick draw 3d implementation
to add better VRML support there is a
wide variety of partners that we're
working with apple IDM in paragraph are
working on the VRML 2.0 binary
collaboration looking at making the
files much smaller faster delivery and
offering geometry compression we're also
working with Silicon Graphics to license
their of VRML 2.0 compliance browser
called Cosmo player and we're also
looking to partner with other
third-party vendors so if you are vml
are a VRML vendor we'd love to talk with
you here's some of the other VRML
vendors album the internet are in the
market who are creating Macintosh
products we'd also urge you to go to
their webpages see exactly what they're
doing
enter Vista has a sea-based VRML browser
called world viewer and here's the URL
Dimension X has a java-based VRML
browser called the good reality and of
course paragraph is out there so we urge
you to go to the web pages and look for
their Mac
clients become available very shortly
with that I'd now like to call up philip
snyder and he's going to get into a
little bit more detail on exactly
implementation of 3d plugins as well as
some of the new features of quick fill
3d one five and one five one set of
Philip
[Applause]
good morning can everyone hear me out
there I can't see you so if you raise
your hand to have you speak up I can't
see that okay I'd like to talk to you
today a bit about some of the new
features in quick draw 3d one five and
one five one and a few things that
aren't naturally new features but are
are important that we'd like to say a
few words about them we assume that most
of you are somewhat familiar with quick
draw 3d may be programmed and it looked
at the API for those of you who are new
to it we've got a total of a slide for
you so don't blink you'd like to point
you at the develop articles that are
available at the at the URL that you see
on your screen there they provide a lot
of useful information that I'll talk to
the documentation that you can find I'll
be referring to a few of those as I go
through my discussion and here's the the
beginner slide the basic understanding
that you need to start off with
quick-draw 3d is to understand the
concept of our view which is an opaque
object that brings together the cameras
the lights the draw context which is
what you render to at the renderer to
the view you submit geometries
transforms and styles to get image drawn
and that's about all of six which points
you at a very useful article develop
issue 22 quicker 3d new dimensions for
Macintosh graphics gives you a basic
overview of our architecture and will
help get you started one thing that I'd
like to point out is that on our SDK we
always provide two separate shared
libraries one we call the debugging
version and the other for lack of a more
interesting name a retail version the
debugging version offers you several
things when the most important of which
is we attempt to validate the incoming
parameters for correctness looking for
the aspect ratio on the camera being
correct or that
the thing and to provide you as a
developer with a mechanism for catching
those inadvertent programming errors
early in addition to that we have a tool
called 3d bug which is again available
on the SDK that allows you to look at
your memory usage in your application
this requires you to be using the
debugging version of the library ok
let's launch into the new features
section here one of our new features in
1-5 is the feature of working on windows
that is Windows 95 and NT our porting
philosophy is to allow the developer to
write an application on the platform
using the standard tools and conventions
that are available on that platform and
extended the built-in data types in
their libraries to this end our our
Windows port uses the native file i/o
uses native draw context I'll be getting
that to that in just a moment
we have a windows native viewer that is
exactly analogous to our macintosh
viewer that's provided and probably more
important to a lot of folks is we will
be able to as david mentioned earlier
access hardware acceleration through
this DP d 3d rave engine as I said our
our system is intentionally
cross-platform from the from the get-go
and sort of evidence of our success of
that is the fact that we need only three
windows specific data types or objects
to get full functionality on on windows
the other 99.9% of our API in our system
is including platform-independent these
new these new window specific objects
are two windows specific draw context
and a window specific storage object
the one of the first kind of Windows NT
95 draw context we call a win32 DC draw
context and the DC is there because it
is in fact compatible with existing code
base for Windows where the access to the
Windows system is through the DC and
just a note to the windows programmers
you have to use the cs on BC window
class style whatever that means
normally I'm having anything like that
looks like code on a presentation like
this but I've included the data
structure for our draw context on
windows and you can see that there is
the one field the HDC that gives you the
connection to the Windows system the
other TQ three draw context data is the
common data that controls the draw
context for all platforms so it's very
easy to port by using the existing if
you're going from a Mac for example to
use the existing code that sets up your
draw context data and then just throw in
the HDC for the connections of the
Windows system our second type of draw
context on Windows is what we call a DD
surface draw context this allows you to
take advantage of the 2d hardware
acceleration for bleeding and clearing
that sort of thing Windows programmers
out there know that this is a bit more
complex this can be seen in our own data
structure where we've encapsulated the
the extra setup parameters and values in
this TQ 3dd surface descriptor data
structure my apologies for the long
names but it's kind of a tradition with
this as I said we have a Windows native
viewer available for Windows 95 an
antique analogous what we have in the
Macintosh I think can we can we show
something on that Nick
which is a Windows 95 machine I've got
the viewer up here I'm going to drag a
piece of really earth model from
plastics or Canadian developer we can
work with you'll see similar new
features of the viewer you'll see that
the interactions been changed so that
the virtual spheres being implemented
properly so you'll see the objects only
going to move when we're dragging across
the inside of the virtual sphere we
found this has actually made it an awful
lot easier than the one point overview
of some headlight things other new
features that we've got in the viewer
and we have a pop-up menu so that you
can get a left view or a top view or or
whatever which is pretty cool and we
also have a home button so if you kind
of get lost we can reset the view the
viewer is exactly the same on Windows as
it is on Macintosh and we're planning on
doing a similar implementations of your
own rhapsody and so basically what you
see on the Mac's what you get and this
is a sample app that we've got and I'm
going to be using this for a demo later
on and we'll be putting the source code
for this on the SDK that should ship at
the end of this month another new
feature for our version 1.5 is an
extension to our own extensibility
mechanism for those of you aren't
familiar with this we have a plug-in
architecture that allows the application
to extend the functionality of quick
tour our 3d without having us to put it
into the core API this can allow you to
customize add more features and we'll
see how that works in just a moment in
1.5 we have three types of objects that
are extensible that is elements and
attributes groups and renderers renders
being probably very significant for our
functionality and as David referred to
early support for plug-in shaders will
be forthcoming I suppose means real soon
now there's a bit of commonality to all
the plugins irrespective of what type of
an extension hots you're extending that
is loading an initialization on Mac we
used the CFM
on Windows DLL loader the application
the extension itself provides a
registration function that allows us get
as quick for our 3d to load these these
libraries the second thing they have in
common is what we call a meta handler
which is essentially a method dispatcher
specific for the plug-in class and of
course termination functions allow you
to disconnect the extension though these
are automatically disconnected and
unloaded when you call the exit function
quick-draw 3d if the plug-in renders or
one or more are more significant
advances to the API they're similar as I
said to the other extensibility the one
difference is that because of the
inherent functionality required for a
renderer there are sort of two levels of
meta handlers sort of a meta meta
Handler and the second level Matt
handlers which allow you to plug in your
functions for handling which geometric
primitives are drawn transforms styles
that sort of thing now renderers are are
somewhat complex by their nature so we
provided a couple sample renderers on
the sdk and documentation which you can
find on the sdk as well we encourage
those of you who are intending to either
use or write plug-in renderers to
contact us early on in your development
because we can provide a lot of help and
the motivation for this is obviously
that we can leverage off of existing
functionalities or new functionality
that third parties want to provide to
give new rendering capabilities to our
system now how does how does the plugin
render fit into the into the system well
the two big blocks up it interests our
quick draw 3d self and quick draw 3d
rave quick-draw 3d handles the
geometries the transforms groups the the
API that the programmer seasoned these
sit on top of rave which in turn talks
to acceleration hardware or if none of
them is available it talks to the frame
buffer directly so you're always
guaranteed to have
the rendering happened irrespective of
whether the end user has three 3d
hardware acceleration or not on a
particular machine Apple's own
interactive renderer is an example of
how this works if in fact the plug-in
itself talking to rave and then down to
the hardware acceleration of the frame
buffer our wireframe render on the other
hand does not talk to to rave directly
but instead talks to the frame buffer
directly itself third-party plugins can
be of either type they can either talk
to the acceleration hardware or talk
through rave but theoretically you could
have a plugin that for example wrote
PostScript out to a file okay so what
what does a plugin render give you on
this slide you see on your left the fine
wireframe rendering and all its
obfuscating glory and on the right you
see a fine ray traced image of the same
model provided by Lightworks ray trace
renderer and you can see the nice
specular highlights the anti-aliasing
and that sort of pink a textured area
there and I think we have a little demo
on this oh yeah I'm this machine I've
got a demo that hopefully is a realistic
demo of how people are going to use this
everybody flavor app will definitely
mind photo shops up here and hit some
artwork so it's actually been created in
layers it's just the screen as some
stuff that we were getting together for
quick-draw 3d and the kettle's kind of
in the middle but it's all a bit greyed
out
we might decide that we want something
that's a bit more dynamic so when you
drop that layer out and I can use a
plugin from vertigo called dizzy and I
can alone and come out this is going to
enable me to load a 3d MF object and in
deference to Shona evangelist and you
can position this you'll notice the
default lighting is with the ambient
lights at 100% and
that's probably not where you want so I
can drop the ambient lighting down and
actually bring in some lights myself and
probably want to light it from
underneath for a dramatic effect I can
double-click on these lights and change
the intensity change the color so I'm
going to drop drop them down a little
bit here and maybe make this guy over
here blue or whatever and to do that
might shade of blue there and they've
also implemented some of our user
interface widgets we talked about that
last year for manipulating the object so
I can basically change the orientation
of it and they've also done a lot with
plugin renders so we have some preview
renders here I'm going to bring up the
lifestyles demo and this is a basically
a kind of artistic rendering type thing
you can do some really Larry effects
with actually this neon ones one of my
favorites because I have absolutely no
taste and I just crashed it ok so and
basically they have the render is within
their app and you can do a final quality
renderer into the Photoshop window which
if I hadn't tested their tape so that's
for them Thank You Nick just like to
briefly mention the meta handler if you
want more details on how this works
again the documentation the SDK and we
have another session coming up tomorrow
where we'll be going into a more detail
on this each class has methods
associated with it the plugins are
required to implement certain methods
other methods are optional so
essentially them all the meta handler
does is provide a place for quick try 3d
to call to ask the plug-in for the
methods that implement a particular the
function that pre-implementation czar
called when that method is needed
internally
just like to mention elements and
attributes this is a feature that we had
in quick draw 3d 1.0 0.6 I believe
there's a fine
article in developing 26 again on the
web just briefly why we've lump these
two together well they're very similar
in fact the the difference is that
attributes exhibit inheritance as
whereas elements do not and if that
doesn't mean anything to you I can point
you to the article there is a sample
plugin attribute on the SDK to provide a
sort of boilerplate implementation to
show you how it works
we encourage developers who have custom
information to migrate these attributes
into plugins so they can be shared with
other developers and if you're looking
at either the the published book that we
have or the develop articles should note
that we've had a slight namespace change
for to make things we'll more clear what
functions are intended for plugins and
which are not
plug-in related API calls now have an X
in them as well as data structures you
see a few examples in the bottom of the
screen there are more just be aware that
when you're looking at the article to
keep this in mind in 1:5 we have
introduced a new set of geometric
primitives through our already rich set
of primitives in the area of labeling we
have added a pixmap marker which is
similar to our existing bitmap marker
however it allows you to have full color
pixmap as markers we've added two new
surface modeling primitives in addition
to our try grid and mesh which were
previous release we've added the try
mesh and a polyhedron I'll be going over
those a little bit more for parametric
for free from curves and surfaces we
have an existing nerve curve in there
patch and we've added an entire new
category of primitives that we call
conics and quad ryx and i guess that a
torus is a cortex so from playing me on
my map here and these are the ellipse
the disk torus cylinder cone and
ellipsoid
so with this rich that are primitives
you might be asking yourself well which
one do I use what's the choice
well we've sort of given you a little
chart here that maps out the how we view
the complexity versus the flexibility of
a primitive at the lowest end of sort of
flexibility are things like triangles
and lines but they're very simple going
up the chain we have like the polygons
general polygon and up in the terms of
more flexible with some expensive
complexity are the try mission of
polyhedron and finally we have the nerve
the curve in the surface and the mesh
which are by far the most flexible but
also are we require some work on the
part of the programmer just have a quick
view of some simple versions of our new
primitives like to go into a tiny bit of
detail mechanics and quadric s-- because
we have a unique and powerful
representation if you're familiar with
our previous vox primitive you know that
it was defined by an origin which is
based like a lower left corner and three
axes three vectors that define the axes
of that primitive we've designed the
comics and quadric surround that same
idea you have each has an origin which
is the center if you will of each object
and then three vectors orientation minor
radius and major radius these names are
somewhat arbitrary in addition the torus
has a ratio field in the data structure
that allows you to control the width of
the other tourists tube if you will now
there's a few important things to know
about this that the previous slide we
showed them with defined with equal
length orthogonal that is mutually
perpendicular axes this is not required
by the way though non orthogonal axes
are permitted this results in skewed
objects I'll show you an image of that
in just a moment the relative length of
the vectors can be basically anything
you want these results in elliptical
cross-sections and of course the
combination of both those teach features
is allowed as well you can have skewed
elliptical cross-section objects
the comics and quadratics come with a
parameterization attached to them this
gives you texturing essentially for free
and this is the slide that you see is a
view on the previous two slides back in
the same positions with it the same
texture applied each and you can see how
the texture wraps around of each h
object the positioning was chosen
somewhat arbitrarily with the hope that
the choices that we made are what most
people would expect and I if you look at
the slide that's kind of what you would
think if you put a texture around this
sphere for example this slide shows an
example on your left of a cylinder
that's made with orthogonal but unequal
length axes giving you an elliptical
cross-section right cylinder on the
right side you see non orthogonal axes
with different lengths which gives you
an elliptical so cross-section skewed
cylinder and these can be applied to all
of the conex and quadric s-- liquid
briefly make a note of some future
features for our system if you look in
the data structures for these objects
you'll see that we specify parameter
limits this allows you in both the U and
V directions to make partial objects
such as hemispheres truncated cones and
the like this feature is not yet
released so you should note that in your
code you need to set the the mins and
maxes to zero and respectively
if you don't we'll catch you in the in
the validation on the debugging
libraries that's a good motivation to
use that did an example of how this can
be used you can see a cylinder that has
a u min probably about 0.25 and a u Max
may be 0.75 giving you a pie slice out
of the cylinder on the right you see a
truncated cone which is accomplished by
giving a V min of 0 and a V Max that may
be 0.8 or so another feature that you
have to be careful of is we have this
idea of what's called an endcap if you
have a cylinder for example you can have
it represent a hollow tube or it could
represent more like a child's block a
solid object
these endcaps fields in these data
structures allow you to place an end cap
on these objects to differentiate you
know control whether the thing looks
like it's solid or whether it's simply a
tube in that case here's an image of
what we saw just previously this same
cylinder that's made with the partial on
the left you see the end caps are turned
on giving you the appearance of a solid
object and the right you have the end
caps off giving the appearance of a
hollow cylinder that has a slice cut out
of it
in the current implementation since we
don't have partials we don't allow you
to put the interior caps on the interior
caps are not the interior surface so
it's a bit of a misnomer but it gives
you what you saw in that previous slide
the the walls on the interior cut out
part so currently you you need not you
need to only use the values that you see
on this on the slide and if they went by
too fast the slides are underdeveloped
CD of the content CD like to go on to
the Tri mission of polyhedron are two
new polyhedral multi faceted object
primitives these are intended to
supplement the mesh which was introduced
in version 1.0 the mesh is now basically
repositioned on its strength which is
for freeform geometry and highly
interactive topological editing his new
geometries are intended for general
purpose polyhedral objects and do a bit
of a better job at if that's the
intention both are based on connected
triangular faces vertices and edges so
it allows for faster rendering and a
more compact representation
both the prime mission of polyhedron in
contrast to the mesh but provide both an
immediate mode and retain mode as the
other primitives do for both of these
geometries if you have a higher level
primitive like say a Coons patch or
something like that you need to break
down these phases into the triangular
faces for the polyhedron and the Tri
mesh in your application okay so what's
the difference between these two
primitives the polyhedron makes use of
the same attributes that concept as the
rest of the primitives in quick draw 3d
whereas the Tri mesh has a unique flat
attribute model so which do I use we
have four of these semi competing
similar data structures these objects
without going through this this chart in
a lot of detail you should understand
that the differences between these
different these different objects you
should look at the requirements of your
program your application what the model
is intended to be used for how its
intended to be used and look at these
characteristics and make your own
determination on which would be the best
primitive for your use and again this
chart is on the on the slide and the
developed on the conference CD so or
that you can't memorize it at this point
another new feature that we've added is
what we call UV picking we already have
a very rich picking API it allows you to
get back the the point on the object
that you picked in world space and that
kind of thing with primitives that have
parametric values that is texture
coordinates attached to them for example
the conex and the quadric polyhedral
objects triangle objects that you have
attached these parametric values to the
vertices gives you the ability to return
the texture parameter at the point of
picking this allows you to do things
like painting on object there's a sample
app on the sdk called box paint and I
think that Nick is going to show you an
example of how this works
so trying to another demo that doesn't
press on businessing so this is an app
written by michael bishop in the
quadrille 3d group of books pane
and it uses the UV pecking so I can kind
of reorient a subject it's just intended
as a kind of sample code demo of how you
can use this stuff but he's implemented
a couple of neat things for example the
the pencil is drawn transparent and you
can kind of draw silly pictures draw a
kind of cartoon dummy picture we're
going to talk a little bit about the
picking tomorrow in a more technically
oriented session so we'll talk a little
bit about how you could implement this
and basically because the box is because
the way the box is parameterize it takes
to shed on all four phases so you see on
all four phases um I'm going to die to
have death as well and go back to the
Photoshop thing and you can see here
that our hands being drawn with the
interactive render and I don't know if
you can see there but I can certainly
see here that there's quite a lot of
aliasing around the the border of the
hand we've got a renderer from
lightweight design which is a very
high-quality renderer which supports
shadows anti-aliasing transparency and I
can actually use that to render this
image back into my name Photoshop window
so you see the progress bar at the
bottom of the dizzy dialog and it
appears in our chat window so plug-in
renderer is an app another new and quite
useful feature that we have in 1:5 is
what we call file reference previously
without this feature you are often
required to have very large files and
there was no way to modularize them at
least without doing a lot of work on
your own what this allows you to do is
to reference one file from another and
create essentially hierarchies or
libraries of 3d MS files which allows
the files to be smaller allows you to
organize your own database more more
rationally it can also reduce the
bandwidth and download time because it's
you can reduce the number to the size of
each individual file structurally this
is what it simply looks like one meta
file is on the Left contains a reference
to a second meta file so while the first
file is being read in it hits this
reference goes off reads edit file make
the data structures or the objects and
then returns to reading the first file
and this can be done edit and I can say
recursively but it can done becomes done
hierarchically more than others more
than one level of meta file references
aloud so meta file B could itself have
references and so on this level of
detail is not a new feature in 1/5 per
se rather we're presenting this as a
sample on our SDK and conference CD to
show people how to use plug-in groups
briefly what it does is allows you to
have the same object represented by
several proxies that are different
levels of resolution and the which image
which model is shown depends upon the
extent of the rendered image on the
screen so as you get further further
away you can you can substitute a
simpler course or model to increase your
rendering speed and again the source
code for this is on the conference CD so
I actually have a demo for that guy over
here on windows basically this is this
is a viewer and fact pretty much all of
this demos written by the guy who wrote
the viewer it's your own Mikami
in the quadrille 3d group that's pretty
cool demo doesn't look like much but
I'll explain what's going on here we're
actually using two plugins here the
first one is a plug-in level of detail
group and you'll see that as I move the
object away from the camera we change
the geometry it's kind of difficult to
see what's going on there so another
thing we have here is a plug-in
wireframe renderer for Windows it's
pretty simple renderer and it doesn't
draw amazingly fast but if you're
planning on implementing a plug-in
renderer this would be a good place to
start along with the other sample
plug-in renderer and you'll see how and
the geometry actually changes as as we
change the distance from the camera so
if it's not the wittiest demo in the
world but it's pretty cool and we're
giving you all of this code on the SDK
and Mac versions of this or on the
technology CD that you have and will
have the Windows versions on the final
CD and also on the web as soon as you
can get there another new feature the
tile I guess there should have been a
couple slides back for organizational
purposes but as we call group traversal
control or more informally diving into
groups previously if you encountered a
group object in the meta file we read it
in as an entire group and some
developers have asked us to allow them
to sort of dive into the group and start
reading again object per object in that
so instead of being given one monolithic
group programmatically you can step into
that group and read the contents of that
and with groups thin groups and so on
and my apologies for having code up here
instead of instead of a block diagram or
something easier to read but you can see
the bottom two function calls allow you
to set the state that is tell it to dive
into groups or not and allows you to
retrieve the current state of that state
variable if you will to tell you whether
you're reading entire groups or were
you're reading the objects per object in
the group and also tells you whether
you're currently inside of a group
another feature that we've added is what
we call adaptive tessellation this is
controlled by the subdivision style
object for those of you who are familiar
with our API this is another level of
detail mechanism that allows you to
change the subdivision on smoothly
curved curves and surfaces such as
nerves or the conex and quad ryx that
gives you control over how many
triangles we turn this into in screen
space the units are pixels so for
example you can specify a value of 20
and the triangles that you see are seen
on the screen will be have legs of
length 20 or less irrespective of the
size of the rendered object on the
screen so as you get further away you
get fewer triangles but they're the same
size so you get the same apparent
smoothness and as you get closer you get
many more triangles and I believe we
might have a demo in this yeah on this
machine what we've actually got is
another patch and you can see that it's
not very finely tessellated right now
and I brought up the tessellation
dialogue from a test that we use called
spin you can see that we're tessellating
in screen space to the value of 32 if I
reduce that you'll see that look sorry
learn to use this if I reduce that to 12
and apply it and you'll see that the
object becomes more finely tessellated
the interesting thing is as I move the
camera as I move the camera towards the
object and you'll see that the
tessellation in other words a number of
triangles that this patch is divided
into increases and as I move it away it
decreases so this can be a really
effective method with the conex and quad
rates and the nerds of kind of doing
level of detail and reducing the
complexity stuff that needs to be
rendered as it pulls off into the
distance
another piece of functionality that we
are soon to release should be as we say
real soon now is the Netscape plug-in
now it supports quick draw 3d 1.5 and
151 briefly what the Netscape plugin
allows you to do is embed 3d MF in your
HTML documents and then view these which
happens you the viewer by the way
through Netscape Navigator or Internet
Explorer
heaven forbid and this will be out
sometime within the next month or so I
believe and we have a demo on this Nick
yeah so here we have my keys jet page I
guess we have a young adolescent who
wants to be a jet pilot when he grows up
basically we got a couple of 3d map
objects embedded in here the first is
the spinning quick-draw 3d logo at the
bottom and the other one is this guy and
I can change the orientation it's
basically live 3d data and it uses the
viewer and I can kind of mess around
with this the advantage of doing it this
way is I'm sure you've seen on our home
page we actually have a spinning
quick-draw 3d logo and it gets
downloaded as a bunch of gifts well it
turns out that the size of this model is
actually about the size of one and a
half of those gifts and I think in order
to do a full rotation this twelve gif
files so certainly if you're doing web
pages and you want to get snazzy effects
on them putting 3d data on them makes a
great deal of sense because you're going
to reduce the bandwidth of stuff that
your users are going to need to download
are the things that we're investigating
at the moment but we want to hear from
you about whether you one that is
ActiveX controls so that's one direction
that we could head it and we're
certainly going to do a Windows version
of the Netscape plug-in which will also
work in Internet Explorer Thank You Nick
as David mentioned earlier we've made
some improvements to the viewer and just
to go over them again we've improved the
virtual sphere interaction provided
camera pop-ups that change your view or
get you back if you've managed to scroll
your object off the screen improve
support for drag and drop and as far as
the API goes now we have separate calls
for the control control strip in the
content window for those of you who are
using the viewer within an application
there's a develop issue number twenty
nine can give you more information on on
the viewer its capabilities and how to
use it encourage you to to take full
advantage of that like to step now into
a topic that's not a new feature but we
consider significant enough to mention
for those of you who are not familiar
with it it's quick-draw 3d rave rave is
our low-level hardware abstraction layer
it's basically targeted at games
simulations and other high performance
demand applications rave is our hardware
abstraction layer this allows us to talk
to one API from the standpoint of our
renderers rather than having to put
device specific code within a renderer
either ours or a plug-in renderer and it
allows the hardware vendors to support
one API from the from the undersigned if
you will rather than having to talk to
you talk to do by different different
vendors so it's a benefit for both the
the render itself and for that the
hardware developers it's a very thin
layer this allows us to get as maximal
access maximize the access to the
hardware's capability
what rave does is it accelerates
rasterization in other words it's a it's
a two and a half d mechanism you get
rasterization plus depth that allows you
to do hidden light hidden surface
removal the API is then built around the
idea of providing the features that can
run most efficiently in hardware there's
a few concepts in rave that you need to
understand sort of from the top level
the first is what we call the rave
manager this is part of the quick-draw
3d
Ray's shared library the rig manager is
responsible for handling the different
rave engines which are the individual
interfaces to different hardware devices
or failing that the software rasterizer
it also it also provides the application
with information as to which which rave
engines are available for use in that
application the second idea is we call
drawing engine or rave engine this is a
shared library that the rave manager
called
which implements the interface to the
particular piece of hardware rave also
has a concept of a draw context which is
very similar to the quick-draw 3d draw
context but it's somewhat lower level in
accord with the lower-level nature of
the parade itself a draw context is
simply a rectangular region that you
into which you draw associated with the
draw context of the clipping region this
provides the information as to what
parts of the draw context to not draw to
so for example if you have including
windows and you're running single buffer
then you don't get the occluding window
getting drawn over and this is handled
by by the rave manager for the for the
benefit of the rave engines what is ray
do ray provides currently agro shading
model prospectively correct perspective
perspective correct texture mapping
support for z-buffering or for not
z-buffering if that's what you want the
try mesh is implemented there fairly
directly giving the Primus a good edge
on speed and it provides a number of
texture formats including we call CL 8
and CL 4 which are basically indexed a
bit and four bit texture Maps
this gives you an idea of what the rave
architecture is in the larger sense if
you look on the right ignoring the game
box there for a moment an application
typically would talk to quick-draw 3ds
API which handles cameras lights
transforms that kind of thing the
interactive renderer then take this
information and calls and clips and
computes the vertex shading on the
triangles or whatever primitive heavy
that you have these are then transformed
into raster space and then hand it off
the triangles that is or lines to the
rave manager as two and a half D
primitives in others this sort of screen
space with depth information the rig
manager then selects out of the rave
software engine or a rave compliant
driver which is a rave hardware engine
which then can talk to either software
in the first case or hardware in the
second case typically what we've seen so
far and what we are encouraging is that
applications such as games which have
very particular rendering or performance
needs they can talk to the rave manager
directly which then again talks to the
rave engine as appropriate the advantage
of this is that it allows the game to
write directly to rate without having to
go through quick dry things API if they
so choose there's a few things that we
currently do not support as we mentioned
this is a two and a half D level if you
will we don't support geometry
processing or lighting model or clipping
that is handled by the renderer that is
feeding the rave manager in addition
multiple monitors require intervention
on the part of the rave user be that a
plug-in renderer or as seen in the
previous slide a game in the case of a
multiple monitor you need to have
separate draw context for each window
for each monitor
the future of rape well we have a number
of features that we're considering
introducing to rave you see a partial
list here we encourage those of you who
are rave users or in case of hardware
people rape providers if you will to
come and discuss with us what kind of
features you would like to see as either
a user or a developer of that any
changes that we make will of course be
backwards compatible so you needn't be
concerned about existing code breaking
so I've actually got to demo some right
stuff here which certainly isn't as
impressive as the API demo but we had a
number of developers asked us for some
great sample jokes so Steve Lewis in our
group actually wrote a pretty cool rave
sample which is they up here on the left
hand side as you see it is drawing using
apples kind of aging Hardware cut head
to some of the other stuff we've seen
today and on the right hand side we've
got it using the Apple software renderer
software rasterizer rather basically
what we're doing is supplying this with
sample code if any of you use it or have
comments on it please get back to us
because we'd really like to enhance this
and if you have any other requirements
or a sample code particularly let us
know and Bill can it come to this later
but tomorrow we have a feedback forum
and would be particularly interested in
receiving feedback on what kind of
directions you'd like to see in terms of
where we're going with hard way and by
way of hitting towards a wrap-up here
let us go over a few of the new API
calls for one point five point one these
are mostly in the area of more support
for plugin renderers we've added
features to allow the application to
determine whether a plug-in renderer is
intended to be for interactive use or
not we allow the application to to set
and retrieve custom configuration
information for a plug-in renderer and
also for a renderer to get the
our name of a plug-in this is mostly for
UI purposes I will go into any more
detail on that you can attend the
session 307 will go into Nik will go
into considerably more detail on how
these are used and what the benefits are
in addition to some of these new API
calls we of course have the number of
bug fixes in response to a developer
request to fix them outstanding bugs
pains and masks on Mack and draw context
the pics map draw context now allows for
alphas which is very useful we've
provided more support for the idle
methods and some various and sundry
other bugs that have somehow slipped
through and one-five for more
information you can again please do make
use of the develop magazine articles
that are available on this website we
invite you to participate in our mailing
list and you can simply send a help as
the title of your email to the to the
address you see there there's quite a
bit of activity on there you can get
information from us ask questions of
other developers and just actually
listen in on what's happening the quick
route 3d website at the at the address
you see here also contains a lot of
useful information and pointers there's
a few of the awards we've won though I
maybe not all gratuitous pat on the back
for our team and I waive wrapping this
thing up we invite you to attend we have
two more sessions that are related to
quick draw 3d tomorrow we have Section
307 which was called quick draw 3d Tips
& Tricks that's at 1:50 tomorrow and we
have a feedback form which you very much
encourage interested developers to come
to tomorrow late in the evening where
you can come and ask questions have your
needs address to adjust things on any
topic that you'd like I think that
brings us to the end so it turns out we
weren't quite expecting this but we've
got some time left over to some
questions so if you'd like to come to
the mics there in the aisles and if I
can invite the other members of quick
three DS team her in the front and three
defects goes up we'd be happy to take
your question good so a question is the
is quick to a 3d multi-threaded
currently quit real 3d is not
multi-threaded will it be yes it's our
intention to make it so for both windows
and Rhapsody and obviously for the night
I can't say which timeframe that will be
in we'd like to get it into the next
release but I'm not promising anything
we just but we would anticipate there
being so you know within the next year
are you looking at OpenGL support in any
sort of way the integration with
direct3d that you mentioned for instance
the state interesting yeah currently
we're doing a lot of work investigating
exactly what card vendors need in a
hardware acceleration layer so we we
have a variety of options and we're
actually it's funny you should ask that
question because we're currently
evaluating a whole bunch of options I
don't really want to go into too much
detail about what they are except that
the most likely direction we're going to
be going in is to provide the things
within our hardware acceleration layer
that will allow you to post OpenGL on
top of that it's kind of likely that if
you're familiar with microsoft's NPD
stir and MCD the mini client driver on
windows supports only rasterization
which is where Ray's out right now one
possible direction for us is that we
could extend that to include things like
geometry and lighting calculations the
cards will be coming out in the future
we expect to be much firmer on where
we're going with this in a few months
time but right now with talking to
hardware developers and
and talking to software developers
basically to see what they want and to
see what we can actually do it also
appreciate your feedback that if you
have any recommendations or options or
reasons you know for one platform or
another we've been courteous feedback
please come up and let us know either he
or if the feedback session on Friday and
yeah I would definitely reiterate what
they've just said if if you do have
specific requirements particularly if
you're developing hardware we'd really
like to see you the feedback forum and
if you don't want to ask your questions
in public that's called just send us an
email
hmm okay you talked quite heavily about
the 3d plugin and to your 3d viewer and
you programming directly and quick trial
3d but everywhere else in the conference
we keep talking about the quick-draw 3d
is a subset of the QuickTime multimedia
layer they keep telling us the thing to
do is to use the QuickTime plugins
because then you can do it on the fly as
a session about that later today
what's your suggestions wouldn't the
advantages using three direct and we
would definitely encourage you to use
the QuickTime stuff I mean we see
ourselves as one small component in the
QT I layer and you know for example if
you wanted to provide animation you
could do that today by using quick draw
3d Theo geometries and using the QT I
interpolators to actually interpolate
your your matrices so you know we we
definitely see ourselves as being like
at the bottom of that so I'm sorry if we
didn't address that and there's
certainly in a mission but we are
working very hard to get ourselves very
deeply integrated in QT I and for
example the plug-in which do you
recommend using the 3d plugin or well
you mean the plugin I think is
interesting because for rendering that
that's not really an applicable CGI
plugin because the rendering subsystem
is called by us but then you could have
a plug-in third and the QT I staff that
calls us and we call the plugins to the
angry so our plugins a knock not really
the understood moment at Netscape plugin
sorry I meant at Netscape plug-in or the
Netscape plugin yeah I mean the Netscape
plugin something that we just did
because people were asking for it and
it's something that we did a while back
and it didn't work with 1/5 so we wanted
to upgrade it to everyone fine but yeah
I mean definitely for the web stuff
right now the quick hank ways to to use
the plugin in the future I'm sure that
you'll see a much more integrated
offering so that you would use quick
times method for doing ok you use the
can you call the quick quick draw 3d API
from MP tasks from Chrome apples
multi-processing
yeah that goes thanks to the the
question earlier from a guy at that
microphone good knows that microphone
and which microphone with it and
basically because we're not re-entering
right now would not be safe to call
critical 3d from multiple threads but
what you could do is have one thread
which does put your 3d stuff
the problem that you're going to have is
that we rely on underlying and system
services and for some things like
copying bits around that may not be
re-entering and so you know right now
you can try it and it's going to work in
some cases not in others in the future
we want to have a fully reentrant
library go at this - hell of being short
that's a lot of preparing speed I've got
a number of questions I hope you'll be
just a little bit patient with me ok um
the first thing I saw that fighting demo
I was just wondering what type of
machine that was running on 8500 with
the 3dfx
development card inside so this is 500
is that demo made available to us
call / okay thanks for that
and you mentioned hmm I mentioned about
the Matt Goss and or in the blue box you
showed system seven point X and that
kind of made me wonder because I'm
testing Matt Goss eight right now it's
just wondering under the blue box this
is going to work under Matt Goss a
you're right yeah yeah it does work on
the tempo we've actually got it running
in our lab depends on where you're on
the development cycle in the early
versions of blue boxes based on seven
six the latest versions of blue box that
are being under tested now is Mac OS 8
when you get your first development
release will also be based on Mac OS 8
so 7 6 7 X and 800 compliant so the
structure that different that there
needs to be changes to make which are 3d
rendering there Mac on say no there are
no changes to quick all free David well
that's a plus now quick tour our 3d
walkthroughs who are talking about how
you could have these walkthroughs can
you integrate those in the QuickTime VR
worlds and scenes kind of like and they
were showing a demo in the QuickTime 3
Oh demo QuickTime VR scene and they had
QuickTime running on a TV inside of it
so could I have a QuickTime VR world and
also have I believe that I'm just
reading a lot of the green is you may
want to talk to the quick on VR people
but I believe the QuickTime VR 2.0
development kit actually allows you to
call either QuickTime movies or
quick-draw 3d objects so that would be
better to follow up the quick 12er team
I'm just wondering if you could have
though on a QuickTime 3d object within a
QuickTime VR object yes yes you can the
the thing that you can't do today that
we've kind of been talking about but
it's kind of hard to do is actually
having they are with an acquittal 3d
scene so you can definitely have 3d in a
VR scene and it's relatively
straightforward but going the other ways
not so straightforward
okay um one other thing okay I'm gonna
have to limit you to one more question
because we go
- fine running appreciate your time when
loading the reference files you were
mentioning how we can have references
within the QuickTime 3d or quick draw 3d
piane files can you load more than one
reference at the same time just thread
that off yeah I mean you can have a file
that contains multiple references I
actually had a demo which I didn't bring
which may be a sort of broad which has a
very small meta file which cools
I think that's five other geometries and
you can change those geometries to see
use over files so yeah you can have
multiple references okay great thank you
for writing it okay yes with regard to
your level of detail rendering feature
where the camera is farther away from
the object it'll render it in the
coarser manner can you change the
parameters on that feature and how do
you do it for the adaptive tessellation
approach for the level of detail plug-in
or the adaptive tessellation well I had
the plug-in thing we were selling on
Windows around just know I'm just within
quick draw 3 yeah I think I had an app
that was running and then under-15 one I
saw this come up I thought it was a bug
in my program actually that it was just
that the the object was farther away and
was being rendered course all right yeah
that's basically it that's a
tessellation and within the viewer
there's this interesting feature the
times how long it takes to render a
frame and if it took too long to render
the frame tries to re-render it with a
lot of tessellation that something that
some people would argue is potentially a
bug I haven't so yeah it's there and
we're looking at it can you turn it off
you will be able to in the future I
think yeah and with I mean that I talked
with the chair about this yesterday and
we didn't really come up with a
conclusive fix because one of the demos
they you what I've got uses a hacked
viewer that doesn't do that and it
thinks that the most sensible way to
provide a solution for it would be to
have a viewer flag which turns
the adaptive selection turns it on in
the same way that you can turn on and
off the drag border thanks Eric this is
um you know in the keynote address they
had this picture of a yellow box and
they had the things that they're putting
in the yellow box and then they had one
of them was quick draw 3d went in there
yeah I remember that and then they said
later on they said well everything in
this yellow box was going to have a Java
API yeah so I said does he just say the
quick draw 3d is going to have a Java
API that's what he said right yeah so
you guys had to do that in the demo that
they showed during the keynote was
actually driving the 3d app from Java
under the lead act in the Rhapsody Java
session he showed how he actually
implemented that when do we get it or
how do we get they don't probably be in
the developer release for us to deal
with saying I'm not maybe not the
developer with all this blood for me
release yeah I mean look at us
sorry there's actually a session going
on tomorrow where he's actually going to
pick apart that demo and build it from
scratch and give you all the details on
how that's implemented but so the Qt ml
stuff is going to be implemented inside
of the premiere release and then rolled
together inside of unified yeah I mean
it's an interesting question because one
of the things that again we've been
discussing most is that reg not so much
done great stuff but actually rewrote in
the viewer in Java so that we don't have
to do different implementations on it
for every platform but the universal
viewer you meant the whole da yeah he
meant the whole so if I want to get a
camera I can get it and change it around
from Java or if I want yeah okay my
understanding is the Java bindings will
be provided for very good I I have 50
more questions but I'm gonna go to the
in the line before okay um if we're kind
of running out of time here so if you
don't get your turn on the mic please
come find one of us afterwards and we'll
be happy to answer your question yeah
you mentioned do we have one minute
let's think of a other question you
mentioned VRML browsers have available
and stuff I didn't quite understand how
much integration you were talking about
how with regards VRML I had understood
that moving worlds
was supposed to be using 3d MF file
format or something along those lines
how does it all fit together are we
seeing a lot more integration or what
we're actually working with IBM and
paragraph to define that next generation
binary format so we're actually working
so each part of the three companies are
actually contributing different
standards so I believe IBM is
contributing compression standards I'd a
pollutant the you know parts of our
binary 3d MF file format to create the
next generation standard so it's still
in process of getting everything put
together but that's sort how we're
working together is that thermal that's
not available to because that's pretty
much been decided upon I assume this is
a subsequent version yes hey yeah we'd
be real happy to talk to you about this
offline but we just got a bomb box from
Brubaker if we don't go they'll turn the
power it so thanks a lot for coming and
please out this any questions of Jasper