>> Welcome back everyone.
That was a really great session from Curtis and Roger on OpenXR.
We talked a little bit about OpenXR today and yesterday,
and I know you were amazed as
much of a difference as it makes
now so you can only really code once,
but just like everywhere.
It's really helpful. We have another guest with us.
I did mention earlier that he was joining us.
Cameron Mecca, he leads the graphics tool team in
terms of one of the packages that's now available within MRTK3.
Hello Cameron, how are you?
>> I'm doing great. Thank you for having me.
>> Yes of course.
Given that things are a bit more broken out now in terms
of packages with MRTK3 with graphics tool,
can you tell us a bit more about what that all entails?
>> Yeah. If you're using MRTK3,
you're likely already using
graphics tools and may or may not know it.
Graphics tools is one of the I'd say
core packages within MRTK that has all the shaders, materials,
models, various tooling to make
your mixed reality experiences look beautiful and run
performantely on a mixed reality devices.
>> Then if I'm remembering correctly,
I can use this package,
but I don't need to have the rest of MRTK with me.
Correct? I can just use this by
itself is like it's one standalone.
>> Exactly. Back in
the mixed reality Tool Kit two days which wasn't that long ago,
a lot of our developers wanted to use our standard shader system,
which was the system that made
all the visuals in the tool kit independently.
A few of them actually went to the lengths
to actually separate themselves.
But after getting that feedback and feedback internally,
we were like, this really needs to be its own package.
If you want to just use the shaders that you find in
the mixed reality tool kit or more specifically in graphics tools,
you can ingest that into your unity project by itself.
It's totally standalone and it has its own GitHub repository,
it has its own docs,
own API reference and own samples.
>> Speaking of samples because I know I
love samples and you love sample,
you talked a lot about them yesterday.
What samples are included?
>> Yeah there's probably I think about it
a little more than half a dozen different sample scenes.
Each one can be imported
independently if you only want to take a look at
one portion or you can import them all
and see the whole menu of available features.
One of the favorite ones is one called the Material Gallery.
It's literally just a unity scene
full of what we call a shader ball.
It's a surface that is generic,
but shows off visual effects.
We probably have 50 different shader balls in that scene that show
you how to do metallic effects, normal mapping.
You can do portals,
you can do hover lighting, different lighting techniques.
That's a great one.
If you just want to see what material effects can I make with
graphics tools and everything in that sample uses a single shader.
It's a what's called an Uber shader system.
It's super flexible and you can turn on and off
features and use whatever you need.
At the same time, if you have a feature turned off,
you're not paying for it so it doesn't drag down the performance.
>> Oh that's good.
>> Yeah that's the material gallery sample.
We also have one that does outlines
because something that's important in
mixed reality is you need to highlight an object.
>> Yeah.
>> If you need to draw attention to an object in your scene,
you could make a little red outline around it.
That's not normally a technique that's super easy to
do in mixed reality due to performance constraints.
But we provide tools and samples of how to do that.
Then the big one, this is a huge differentiator between
MRTK2 and MRTK3 is our unity UI support.
Unity UI is the preferred UI system that unity provides.
We had support for it in
previous iterations of the initially toolkit.
But now we've found that tens of developers are using it,
so we have explicit tools to make unity UI
workflows just supernatural and work out of the box.
There's a unity UI sample scene which shows you how to
create volumetric UI layout in Unity UI,
which is traditionally 2D oriented,
but we have components that will populate 3D
meshes in your unity UI layout.
You can also do fun things
like say you have a portion of your UI you want to mask out.
You'll see this all the time when you're
scrolling through lists of items.
We have a custom rounded rectum mask which gives you
little rounded corners which
are I guess all very popular now in average.
>> All the corner radius.
>> [inaudible] about those rounded corners.
We have a component that does that for you.
Then just quality of life tooling that makes laying
out UI systems easier and in 3D.
>> It sounds like it makes it a lot easier to
make a good user experience.
Like these things that are very difficult and hard on performance.
You can use this tool kit to make really impactful and like
usable experiences and be able to highlight and
add really probably things that used to
be really complex quite easily.
>> Exactly. People have always asked for I want to make
UI that looks just like the UI I found in the whole in show.
I want to look just like Microsoft's design language.
We partnered with the mixed reality design language team
to make sure all of the shaders,
all of the materials, all the models they
created and they used are in this package.
Everybody has access to them.
Now they're all open source on GitHub.
>> Oh that's great.
>> You can team your UI to look exactly like we have in our show.
Yeah you already see that in the mixed reality toolkit
in the core UX package
uses all of our shaders so they all look and feel similar.
>> You mentioned unity, but I think also Unreal.
What if I'm using Unreal can also use this as well.
>> That's a good point. Yeah we have
the mixture toolkit for Unreal.
Just like Unity, there's
a graphics tools package in there as well.
I guess it's called a plug in and Unreal. Same idea.
There's graphics tools for Unreal and
I wouldn't say the features are one to one between the Unreal,
but there's a lot of very similar components
such as mesh outlines and
clipping primitives and effects to
make performant metallic surfaces and stuff like that.
>> You can try it out to that.
>> I've been doing way more Unreal.
>> Great.
>> I focus on AI actually and so there is
a neural network inference plug in unreal so
I've been having a lot of fun building things there.
I think I'm off to check out the Unreal package.
>> Yes please do. I'm a big fan of Unreal and Unity.
That's good we have parity there.
>> Totally.
>> Then you're a pretty distributed team.
>> Yeah that's correct. Even though
I'm here representing graphics tools,
I'm just one of the engineers on the team where we have engineers,
designers, artists all working on this package.
We're based obviously here in the Seattle area,
but also in Nigeria and Germany.
We work across different time zones and collaborate remotely.
>> I like that part about being here.
>> Yeah same.
>> There's just like folks everywhere.
>> Like how many conversations you talk
to someone in there from like multiple countries
and you realize it's just really cool
to be able to get together with
all of the people that are excited about
the same thing from like all over the world.
Then like you're now working on
products that are spanning that and it helps to
make sure that you're meeting your customers where they are too
and working with diverse and different communities
to really make better products.
>> Especially since graphics tools for Unity just
went public on GitHub late last week.
Now anybody in the world can clone the repository,
they can create issues, they can create pull requests.
Our global community is expanded even further.
>> Oh that's good. Oh I love that.
>> Is there content and stuff available to learn?
Like you said, there were samples.
Is there documentation where people go to learn more?
>> Yes. We have all of our docs on docs at Microsoft.com.
If you go to the graphics tools repository on GitHub,
there's a link to the documentation
on docs at Microsoft.com as well as the API documentation.
>> That's super helpful.
Then switching gears just a little bit,
you have an interesting background in gaming.
>> Oh yes.
>> Yes. Tell us more about that.
>> Yeah. There's actually a lot of parallels
between mixed reality development and the video game industry.
>> Yeah.
>> I was fortunate enough to join Microsoft in
2016 after being in video games for about a decade.
Before that I used tools like Unity and Unreal to make
video games for companies such as Lucasfilm,
who did Star Wars video games,
as well as smaller studios that work for PlayStation.
A lot of those skills I picked up making
video games translated right over to this work.
>> I've been telling people that and I feel like
people look at me really weird that when
they're not in this field
and they might not be in gaming field either and I'm like,
it's actually there's a lot of similar like
ways of building like you're using the gaming engines,
you're using the same type of
objects and graphics and performance is still important.
They are similar and so that was really helpful to be able
to take all these things already knew and then now
apply it to this new way of doing it.
>> Yeah I totally agree.
That's one of the reasons I fell into
graphics tools development is because in
games you have to work with shaders all the
time to make sure your games run quickly and efficiently.
That might not be something you encounter in
a traditional computer science path.
Especially even here at Microsoft,
we obviously have tons of shader experts,
but as a whole they're far off between. Yeah that's one of.
>> The materials. Like I just went through
the learning phase of like learning how to create
materials and like post-blast processing materials and
that gets really complex really fast.
I think I understand no other experts like
just on that one thing in gaming.
Like once I started getting into it and I had no idea like
how complex and how much time and
how much knowledge it takes to do
these things like really well and really performance.
>> It's an ever changing landscape.
I was speaking with somebody last night,
one of our developers attending Dev days
and I'd say every four years
the landscape just totally changes really in
shader programming and graphics development.
It moves way quicker, I would say,
than traditional like CPU programming.
>> Got you.
>> Is it like the new JavaScript framework
comes out and then you have to.
Because you know there's that's
always changing in like front end development.
It's a similar thing like the graphics world.
>> Oh exactly.
>> Well thank you for joining us in the conversation.
I think we've learned
a great amount with regards to the graphics tools,
gaming, all the parallels that we have as well with there.
Coming up we have I think it's
our is our final two sessions for today maybe.
Yes we have a panel that will be happening
today with folks from the MRITK team,
and in addition to that, we also have
a session from the Babylon JS team.
>> Which isn't streamed.
You're going to have to wait a little bit.
But I'm going to have to go check that one out
because we've been talking about Babylon JS.
>> I 'm excited for that.
Speaking of games, I know there's a game that they recently
came out with in a sample for the five that
over released that I started checking out online.
That seems like it'll be pretty cool.
But I would say I know
the hackathon was mentioned and I'd be really interested
to see what folks are going to create with regards
to the hackathon and how they can
incorporate graphics cool tools as well,
because there's a lot that can be created.
But I know we've spoken so much with
the community about just showing us what you create.
I'd love to see some tools
or some samples that use graphics tools.
Maybe they're not in MRTK projects.
Thanks everyone and we are now I want to get ready for the panel.
[MUSIC]