Nvidia Gameworks, PhysX and FLEX showcase (Nvidia #TWIMTBP 2013) 2 of 3
Nvidia Gameworks, PhysX and FLEX showcase (Nvidia #TWIMTBP 2013) 2 of 3
2013-10-17
all right so game works game works is
Nvidia's developer platform it's our way
to push the limits of gaming on all the
platforms that gamers care about Windows
Android cloud you name it and there's
three main pillars of the game works
program three core pieces upon which
this platform is built the first of
course is the people we are lucky to
have the world's best team focused on
games and game technology the game works
research team is about 300 people they
are many of them PhDs world-class
experts in their domain digital effects
and artists engineers visual engineers
and artists that are at the intersection
of art and science these people have to
develop algorithms and libraries and
technology that produce amazing visuals
and amazing gameplay at the same time
having to solve four incredibly complex
technical challenges and what all of
that needs to have an artistic feel to
it
graphics is an incredibly difficult
field and that it's science and
engineering and art and people who have
that skill set are really really rare
and we have 300 of the world's best and
we use those people to help game
developers create those next various
experiences we take a lot of that
learning and we embody it in the game
words library it is our collection of
tools SDKs technologies outlook there's
a large engines source code technology
that we provide to game developers that
they can use in the end right on to
bring things in the next level and we're
going to walk you through that in quite
a bit of detail and you're going to hear
about three new technologies that are
part of the game works library and then
of course in developer tools with the
n-side IDE and standalone debuggers
profilers and utilities we've got the
world's best tool platform for doing
graphics and native
you're gonna see some demos so that's
today including some new things there as
well so you know we got we've got a lot
of a lot of stuff to show you I don't
wanna spend too much time talking cuz
there's a whole bunch of great demos
let's kind of get into it so what's in
the game works libraries are six major
components in the game where's library
these are kind of the major sections
that we deposit our knowledge into so
that the industry can leverage that to
advance it state of the art the visual
effects SDK
these are turnkey solutions to solve
complex visual problems they are
typically delivered as with an API the
developers program - and these would be
tools and technologies that are
producing complex visual effects for you
know as an example and we'll get to this
wave works maybe an example of a visual
effects SDK piece the graphics library
is kind of some foundational material
these are things like tutorials
libraries samples documentation sample
code things that are the fundamental
building blocks of building a great game
and graphics are repository kay you guys
are familiar with we've been building
that for quite a number of years that
was originally part of idea we've
integrated an idiom we continue to
invest in that it's cross-platform it's
the most popular physics engine on the
planet more than 500 games have
integrated it and it's little exists on
any platform that game developer cares
about from phones to consoles to pcs to
cloud it's everywhere our core SDK
includes a bunch of foundation
technologies for using GeForce and other
platforms I may have heard of things
called like env si and things like that
these live in our core SDK and these are
things that can take specific advantage
of NVIDIA platform features I mean let
developers get kind of a the full
benefit out of Nvidia in compute library
is kind of analogous to the graphics
library everything that the graphics
library is for graphics the compute
libraries for compute source code
documentation tutorials you know the
fundamental building blocks of
understanding how
computing and then optics optics is an
sdk for building ray tracing engines
it's a framework upon which developers
can use to build their own renderers and
create amazing visuals with them so
let's kind of dive into one of these and
this would be developer tools we have an
enormous investment in developer tools
you probably have heard of insight
that's our IDE that's actually a
screenshot that you see up there
that's insight really the way to think
about it is we cover all the major
functions that a developer needs for
graphics now and on other platforms even
including CPU and graphics simultaneous
debugging and profiling so we have an
IDE and a standalone environment so you
can build and say Visual Studio a common
environment for builders to work in you
can debug your code to make sure that
the issues that you've written in you
can figure out it right out profiling so
you can get the most performance out of
the game so this would be things like
you know find vertex shader bound or
fragment shader has you know extra
cycles you can tune it down to the to
the ends degree and this exists across
all the major API platforms DirectX
OpenGL ES CUDA Android Windows you name
it we've got tools that cover all the
major platforms and all the major api's
both integrated and standalone tools so
what you're going to see in fact is a
demo that shows kind of the breadth of
this so let's go ahead and go to the
demo and what Sebastian's got running
here is one of our visual effects SDK
examples this is space works you guys
have probably seen this before so this
is our digital eye right here now what
he's running here is face works running
on a PC
and he's going to be attaching inside to
it to do some debugging and profiling so
let's go ahead and hand it over to
Sebastian here thank you
so here I'm going to demonstrate to you
basically how to peel a frame worth of
rendering in the
face works which is a technology
dimmable for official rendering and
animation so here basically by scrubbing
through the frame using the head-up
display I can essentially debug is you
spray one vocal at a time and understand
you know where things are happening and
how they're happening so if I were to
have a perk for example in my mind
subsurface scattering shader here I can
easily focus on it go into visual studio
this is Visual Studio 2012 and easily
basically dissect the retro space and
the resources that are found to this
particular local in order to to
understand what's going on here as an
example I can quickly focus on the frame
buffer here bring basically the data for
the front buffer and I can inspect the
pixel value here by hovering my mouse
over the various pixels and you will see
basically the RGB value being updated in
this section here where those are
actually floating point values because
it is HDR rendering for for the the
subsurface scattering now what is
interesting is that this particular
solution is available on our next
generation check out that form which is
called Logan and we're going to switch
to haven't seen it this is face works
which is one of those core visual
effects SDK libraries running on project
Logan if you're not to newest project
Logan that's one of our next-generation
Tegra SOC s
project Logan implements the full Kepler
GPU architecture as well as a full
support for OpenGL so this is face works
running on a Logan dev kit which is in a
break you can come check it out here
it's a little tech or based SOC run to
the single-digit lots and if space works
running on Logan that's pretty cool
Mogens pretty exciting cause it's really
gonna share in kinda the next level so
to speak for mobile technology has
really it brings Kepler our core GeForce
architecture to mobile and we can bring
things like face works to mobile as well
but this is not just a face works
running on Logan demo if you want to
develop next-generation graphics from
old platform you actually need to have
tools that work with them so how are we
gonna deal with that Sebastian will
propriety of solutions on Windows Linux
and OS X to be able to a lot of
developers to get connected to their
Android device and do basically
debugging all right so next piece is X
so you guys are probably familiar with
is X it's our physics SDK it's the most
popular physics SDK on the planet it's
used by hundreds of games more than 500
games ship with it simulation driven
affects things like turbulence or rigid
bodies some of the core mechanics that
affect the gameplay it's integrated into
pretty much all the major engines so
unity and unreal engine for example some
of the probably the two most successful
or widely adopted engines their physics
system the core physics system that
drives Unreal Engine and unity is
physics and you're gonna see some of
that integration here in a second it's
on pretty much every platform you've
ever heard of every major console all
the mobile platforms all the PC
platforms it's on Linux it's on Mac it's
it's everywhere we have physics
everywhere and we have probably the best
authoring tools for physics in fact I've
actually had some some partners of ours
want to switch to physics if for nothing
else because our tools for doing
authoring are really that great so it
covers a wide variety of simulation
domains things like destruction and fur
clothing for rigid bodies GPU
accelerated particles turbulence for
simulation of fluid like effects of
actual fluid simulations for things like
waves and water or a wide range of
effects we're going to show you you know
a little example of that which is some
of the physics effects that you're gonna
see later today with Batman we're
actually show you
some of those are authored so what we're
going to show you in fact is doing some
turbulence authoring right inside of
Unreal Engine right inside of the editor
and this shows you how integrated
physics is in the authoring pipeline for
game developers so let's go ahead and
switch over to gems demo here yes
so as Tony said we're we have deep
integration inside all the major engines
including of course the Unreal Engine
and what we're gonna show you here is
that there's a simple level we've
designed just to show off the effect
when we have a little physics particle
emitter on the ground here inside of
this and we're gonna start with this
simple scene where you've got these kind
of boring particles they are actually
there is a bit of physics going on here
and that there's interactions but as you
can see the actual what's happening in
terms of actual physical effects here is
just moving up at some constant velocity
so it's kind of boring one of the things
that we've integrated into a number of
games including Batman is this thing we
call turbulence which is a real fluid
simulation there's a much richer and
more interactive and interesting
simulation that you can you can apply to
its particles so what we have inside of
the Unreal Engine and actually before I
get in said I want to show that this
particle system that I just talked about
is actually inside of the it can
actually be edited directly inside of
the Unreal Engine so you can you can go
in here for example you can open up
these different parameters that we have
and you can play with it say you want to
change the colors of this of this of
this physical simulation you can go in
there and it let's make it really red
you know do that and it actually changed
some real time see you've added a red
tint to it all right let's undo that and
and show you some awesome circles
effects
I'm really doing this indigent Elsa okay
so so so as we said let's make a
conciliation a little richer so we can
do is we can actually move this see this
large great we have here it's actually a
turbulence actor that you can place
inside the scene and and and what you
what that does is it actually applies an
actual turbulence fluid simulation
learning grid fluid simulation to the
particles that enter it right so we have
an emitter now emitting particles
they're no forces in the scenes what we
can do is that we can then had a jet to
actually inject horses and then you can
run it and as simple as that all of a
sudden you've got a richer richer
interaction now one thing that's missing
though the rendering there's no shadows
and there's no shadows within the smoke
so so wouldn't that be cool so what we
can do that this is also directly
integrated inside of inside the Unreal
Engine you can open up the perimeter the
framers for the for the actual emitter
say Casa pasady shadows which is this
new technique we called PSM which is
part of the the game works library which
is a deep shadow mapping particle shadow
mapping effect you can adjust some of
these parameters because actually it
turns out that this is this this grid is
a little bit larger than the default
parameters allow for so we can change
these the parameters of the shadow map
go right back into that in the into the
engine level and now you've got real
shadows and you can actually play with
and get really interesting to reveal
into facts just automatic and so all
these things are built directly into the
Unreal Engine and it's part of what we
provide in physics SDK inside the gamers
library that's pretty cool stuff so that
the nice thing about that of course is
that because they're integrated right
into the core authoring pipeline of the
engines those are GPU physics tools and
capabilities that are just inherent in
the way key builders can develop and
you're starting to see that in that
there's more and more games that are
taking advantage of GPU physics we had
quite a few games this year ship both
here and
that used GP of physics turbulence is
one of my particular favorites because
when we first envisioned turbulence we
cut and vision it for these kinds of
things smoke right you know kind of
smoke effects and fog we've had
developed or Cisco crazy do an amazing
things with turbulence
you know they they've invented
disintegration rays and explosions and
all sorts of really cool effects returns
which we did and vision and that's
that's really the best thing is when
you've built some technology that allows
the developers to kind of go crazy and
get creative with it and do things that
you never even thought of that's pretty
cool now one of the challenges of course
with with pretty much all physics
simulation and really the history of
physical simulation is that while you
can build really cool simulation
infrastructure for a wide variety of
things you can do SPH for fluid you can
do 3d volumes simulations for the things
like smoke and turbulence you can do
GRPs for rigid bodies a lot of times a
lot of those core algorithms aren't as
elegantly integrated as you might like
and so combining some of those things
can be sometimes complicated we've been
you know working on that for quite a
while
and so one of the things we're now
seeing today one of the new pieces of
technology that is going to be
integrated into physics next year it's
called flex we're really excited about
this because it's a unified GPU physics
system really for the first time ever is
going to provide a way for a wide
variety of simulations effects to
interact with each other
unified solvers supports two-way
coupling so that different simulations
can influence each other a fluid
simulation can influence rigid bodies
and vice versa
share collision detection between all of
those that infrastructure and the great
thing about this it turns out that this
is unified architecture happens to also
be incredibly great for parallel
implementation for GPUs so it gets
incredible benefit across parallel GPU
architectures it's going to provide a
really great building block to enable a
huge new class of GPU accelerant
physical effects and really complex
cross simulation interaction so let's
take a look at some of the things that
flex can do it's pretty pretty crazy
stuff so the first thing I'll say is you
know this is technology it's gonna be
integrated in physics
sometimes next year so this is the
we've shown it it's research and because
it's research it's a little programmer
RT but I think you'll agree that it
doesn't pretty cool stuff so these are
you know semi rigid bodies so you get
kind of a bouncy balls and they interact
with each other and they kind of squish
and compress typical rigid bodies don't
tend to do that so you get this kind of
you know bouncy ball kind of effect so
one of the nice properties about this is
you can build shapes and objects that
classically couldn't build with some of
the other primitives you can build a
flexible squishy things so I mentioned
that we have the ability to combine in
simulation infrastructure and they have
to weigh coupling so what we're gonna do
now is combine a rigid body simulation
with a fluid simulation so you can see
the rigid bodies they interact with each
other they bounce into each other and
collide now we're throwing of water in
fluids the water displaces the rigid
bodies the rigid bodies float around and
splash around they continue to glide
into each other and you can see this is
super high performance is run super fast
the water's fast the rigid bodies are
fast and all the rigid bodies kind of do
the right thing you know they collide
they stack they move around they float
they splash so this is this is kind of
showing a couple of those effects right
two different classes of classic
physical simulation rigid bodies and
fluids interact with each other in a
truly seamless way these kinds of things
are plastic ly hard to do but in the new
flex system they're just it just all
kind of work so if you can do rigid
bodies and you can do fluid well let's
see maybe you can do cloth so of course
you can you cloth and you can fluid
again just taking a lot of these
classically separate simulation
methodologies and allowing them to
interact with each other and you kind of
you get the right effect this is it just
kind of works one of the really cool
things about a lot of this stuff is
because it's this unified system we were
able to build all these things and like
little just play an experiment we just
try things out and you know it's just it
just works the the interaction works out
the way you think of well on the visual
effects and the interplay between the
simulations all playing nicely and they
all play great on the GPU so this one's
kind of fun
this is uh we just kind of call the
squishy frog this is a deformable
classically doing rubber or deformable
kinds of objects in geometry it's been
pretty hard so this is a deformable
object this is a you know a little frog
guy you can you know move around he
squishes he deforms he bends and it kind
of all does the right thing so uh yeah
that first sphere demo that you saw we
first did that we thought that was
pretty cool then we started playing out
of water and then you know as usual what
happens is you know we'll show it around
and this time I was the guy to blame
like you know what that's pretty cool
but you know the first thing I think of
when I think of spheres and then sea
water actually is hey could we make
water balloons
anybody ever seen a real time water
balloon simulation and like let's try so
literally you know they whipped it up
and it turns out that you can make our
balloons it all just kind of works right
so you've got blooms they're filled with
water there's pressure they react you
know they pop holes they leak they
squirt you can just have the simulations
work how you think they should work they
bounce around each other depending on
the hole that you pop sometimes they rip
open sometimes it's quick it hurts your
brain a lot it's hard that these are
really complex problems and having a
some core fundamental technology that
can allow this level of cross simulation
interplay and this level of realism is
just it's pretty cool stuff pretty
exciting stuff so I can't wait to see
what folks are going to do with this
next year pretty awesome so this is flex
this is one of the first technologies
we're announcing again come into physics
next year
We are a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.