Nvidia OptiX, VisualFX, Global Illumination & Flame Works (Nvidia #TWIMTBP 2013) 3 of 3
Nvidia OptiX, VisualFX, Global Illumination & Flame Works (Nvidia #TWIMTBP 2013) 3 of 3
2013-10-17
all right so um objects some of you may
have heard of optics before it's an SDK
for building primarily rendering engines
that do ray tracing it can be used for a
wide variety of things it can be used
for building ray tracers to do any
inclusion to bake in the light Maps for
games it can be used for real time ray
tracing you might have seen our design
garage down low and there's a bunch of
folks that are building real time great
tracers out of optics the highest
performance rate racers on the planet in
fact are built on optics on NVIDIA GPUs
it can be used to do high quality
rendering of procedural services the
folks at CCP in fact for Yvonne I use
optics to do character portraits for the
game all using optics and something you
might not have known is that optics is
used actually as part of a lot of game
developers core pipeline it can it's it
can interact with and play with and it
can be built used to be a building block
to help produce great games so the folks
at Bungie that you might have heard of
these guys they're working on a little
game called destiny which you might have
heard of they're in fact using objects
to author content for destiny they're
building ambience curious that's kind of
a form of ampule occlusion basically
doing global illumination pre
calculation for destiny using optics on
NVIDIA GPU farms you know you've
probably heard Nvidia say that you know
lots of game developers use NVIDIA GPUs
but you might not know that they use
NVIDIA GPUs in ways you might not have
thought about they don't just use them
to as a game engine development they use
them as actually cool or authoring for
their game itself so there's a GPU farm
at Bungie it's cranking away calculating
a mean experience you can compute a o on
a really complex team in a little bit
over a minute on this GPU farm orders of
magnitude faster than the alternatives
they bake it up for you to run time so
you can have a simulator île time
global illumination in destiny and the
the fact that they can do this on NVIDIA
kind of just as a testament affect the
strength of that core technology that
value that that we're bringing to the
game developer industry they're taking
some more technology they're building
tools themselves Bill Turner technology
could solve really important problems
it's pretty cool stuff so we're really
excited to be working with
the buncha guys my destiny and they by
the way this if you're curious about
this for tips no technique this was
presented at SIGGRAPH Asia by Peter Pike
Sloane and a crew from Bungie it's a
pretty interesting technique on top of
objects pretty cool stuff so one other
pennant technique that we use is a frame
for a min clusion is called Verizon
based I am a loser H Bao
what this is is a technique for doing a
real-time detailed shadows as a form of
ambient occlusion it's been ingrid in a
huge number of games
it's a highly optimized library for
doing a o it scales across a wide range
of GPUs it runs on a PDA around an AMD
and it's kind of a fundamental building
block for doing lighting in games it's
been intimate integrated into a bunch of
games that you can kind of see up here
so let's go ahead and see kind of kind
of a before-and-after here so this is a
traditional kind of scene that you might
see this is kind of a called old school
immune occlusion the challenge here of
course is that particularly in the car
you're not getting a lot of the soft
edges that you might get and real life
with it with a higher quality Hale
solution so with Verizon base and
inclusion you get much more of that soft
effect so if in particular if you look
underneath the car kind of the
old-school effect tends to produce these
hard edges and in fact an occlusion in
real time is a call it an approximation
of of a true kind of full-on path trade
solution and so it's not it's not going
to be as accurate as a fully baked
solution but it's because it's done in
real time it can interact and characters
can have it and that nothing so in this
case it's a car so if you look at the
wheels you get it you get a little
shadow bleeding onto the tire and with
the immune occlusion you get kind of
that soft that soft feel around it which
is you know typically what a diffuse
shadow would have so that's one of our
kind of cool technology so let's take a
look at what this can do in real time
oh you've got no party so Jim if you
want to talk to me here but what we have
here is is a tool we have that basically
allows you to visualize the effects of
the HBO library on a variety of game
scenes from a gift oh this is a scene
actually from Splinter Cell blacklist
and and the mode we've just started this
often is kind of the traditional SSAO
mode which which and basically what
happens when they go is that you you do
a search around the pixel that you're
currently looking at and try to look for
the include errs that are nearby and in
the larger the search area the more
complex the algorithm is and the more
difficult it is to compute real time and
so what you end up getting is Tony
showed in the previous slides you don't
get a lot of the you know the things
that are further away or larger
excluders like the bottom of this car
don't actually produce shadows right so
what we can do and with each video is
you can actually increase what Scovel
were calling the radius multiplier here
or the radius of the search space
patients basically and get a lot of
interesting ayo effects to capture these
larger further away occluders and we
also have a number of tweaks that
artists and designers can play with in
designing the parameters for our AO
library for example the detail AO level
where you can achieve see jacked this up
you get a lot of fine details like the
door handles and things like that
or feeling for a more coarse solution
because say some other shadow technology
inside your game handles the details you
can even dial this down and have it
would just handle the course the course
areas so it's very flexible it's very
fast it's fast on on all GPUs and it
allows you to have really high quality
results as we see here so one of the
other really cool things about not just
the technology but kind of the way we
work with developers we build tools that
let developers play so this particular
tool we can just grab a trace from their
game they don't have to go and integrate
a bunch of one other kind of technique
that we've been working on of course is
contact hardening shadows if you're not
familiar with what this means in the
real world when you have an occluder and
a light source the shadow that gets cast
typically is hard-edged
near the base of the object and as the
shadow gets away from the object it gets
to be more diffused or soft edged that's
typically called
hardik shadow so we have a PCS s
illumination that we've been working
with on a variety of games this is it
provides a lot of that kind a next level
of shadow detail particularly for direct
light sources on you know things like
trees or chairs and so you can kind of
see it here as it's close the edge is
hard as it gets off to kind of push this
out blur is out same thing with the the
chair there you get the the pole and I
don't have a laser pointer but I like
right here it's soft and right there it
gets hard these are these are techniques
that we've developed they're delivered
in a form to a developer that they could
just easily integrate them they can try
them out if it's going to work for their
game and they have the extra benefit as
as Jim mentioned as they are the highest
performance implementation so just a
little example of that if you take P CSS
or HBO not only are they the highest
quality implementations but there are
the fastest implementation so that are
the fastest not only on Nvidia but we
actually improve the performance of the
alternative implementations even on AMD
this is the kind of thing that game
developers love because in the end they
just want their game to be great right
and if you give them a highest quality
solution that improves their frame rate
it means the game can run on a wider
range of hardware which is just good or
they have more time or more CPU or GPU
cycles to put more effects in the game
to make the game look great so these are
just nothing but win-win for everybody
great visuals great performance on
everyone any questions on that ok ok so
the visual effects SDK so I kind of
alluded to this a little bit before this
is our library that kind of embodies a
really complex visit visual effects
these tend to combine simulations and
rendering animation and simulation and
rendering oftentimes they involve
non-traditional rendering techniques
things like voxels or Ray marching or
ray tracing much more complicated
implementations we build these as kind
of turnkey solutions to solve those
problems for developers so they don't
have to do all that research and because
we have the guys who are really the
experts on how to do super fast cheap
you implementations we're able to kind
of extract the absolute best
formitz out of some of these
cutting-edge techniques that really
other people can't afford to invest that
time in I think most game developers
would rather spend their time making a
great looking game and making a great
game they're trying to solve
you know parallelism and register
pressure and capsizes and all the super
low-level needy gritty some dude but I
think most just prefer the the kind of
convenience of taking a great effect and
integrating it right in during these
rural games is directly meeting a light
source that's light on the object and a
lumen that illuminates that object but
the light classically doesn't bounce
the way that developer typically solves
for that is they bake they pre calculate
cool of illumination either using optics
or other techniques and they make it
into the textures or the shaders the
environment so that you have a an
effective global illumination that
disadvantage to a technique like that is
that it isn't dynamic so when the world
changes or when you destroy something or
your nano light source it's often
difficult or impossible to have the
updates to that indirect lighting happen
so we've been working really hard on
developing our super high performance
library that allows real-time global
illumination the other benefit of
real-time GI is that if you build your
game around real time global
illumination your artists don't have to
spend so much time cheating one of the
big panes of game development is
lighting and you have to you know be
quite a sophisticated artist to get
really good looking GI global
illumination effects without actually
really having global illumination so
that plays hundreds or thousands of
Lights in their scene because the lights
don't bounce and so you have to do stuff
like that whereas if you could implement
GI in real time it would just do the
right thing like with balance you get
the indirect light you get the color
bleeding so what we built is a scalable
architecture that enables that and it's
super high performance so let's take a
look at what GI works to do okay so this
what we're starting with here is direct
lighting in this scene only so direct
lighting we have two lights in the scene
there's one up here and one down here
this blue one and and basically every
all the lighting that happens outside of
these two cones is just a flat ambient
right so you can see it's very flat over
here you don't see any detail these
artisans and in these hallways so let's
go into the the direct lighting plus
indirect lighting now which is these
lights were already there in the scene
but you didn't see them because there
was no balance is happening it's coming
explained so now what you have is
there's the let's flip back and forth to
give you a good idea here these arches
are a great example right there's no
light falling on these arches directly
from the light sources so what you need
is indirect lighting which is light that
bounces off of a surface and then lights
another surface to get light to go into
these areas and there's a number of
really interesting effects that are that
are enabled by this one is this is a
completely real-time effect you actually
get real-time specular or glossy
reflections which are entirely
indirectly lit right this is just light
that's falling on this surface from this
emitter that's on these emitters that
are on these little TVs in the hallway
and and as the in specular is
notoriously hard because it's inherently
dynamic right because is dependent on
the viewer it changes based on where how
your viewing angle changed so you see
that the specular is done entirely
correctly other things we can do here is
that we can add area light sources so
these little these boxes that these Dino
these Dino bones are in are actually
area light sources and so looking at
this Triceratops here you can see that
there's a really really high-quality
ambient occlusion type of fact and this
is a notoriously difficult sort of shape
to get real ambient occlusion on using
screen space techniques you can see here
that you have a really great ambient
occlusion all source in real time from
this area light source another thing you
can do we can actually move these lights
around so this is an lower-left what
you're gonna see is basically the view
from the lights perspective you can move
move this light or you can move this
other light as well which is the blue
light here and one thing you'll get as
you as you move around this light you
see the cone of influence basically the
white ass but even things outside of
this cone of influence like look at this
archway back here
get closer so you guys get a good look
here if you look at this archway there's
actually the big sense of light ends
right right at this boundary of the
spotlight right so if I move this light
you can see that the lighting is
changing inside of that arch even though
no direct light is falling on top on
that surface so it's entirely because of
the balance that happens off of the
floor the light bounces off the floor
and hits the arch and and adds light
there so yeah that's that's illumination
even up there first I can kill mine so
GI works is is it is a GI library that
we're working on you'll start to see
this integrated begins I think probably
next year the advantage of this is its
implanting a bunch of incredibly complex
volume based lighting techniques to
simulate all of this bouncing of light
that is necessary for the indirect
lighting effect and it's fast you can be
possible to implement this and on a GPU
it runs cross-platform
the nice thing about is that it's even
possible to author your game entirely
with an indirect lighting approach which
could which could be quite a
breakthrough for the game development
community so they wouldn't necessarily
have to be placing hundreds or thousands
of lights to fake all these indirect
lights he gets really nice effects on it
as Jim mentioned you get the bounces you
get the specularity to get really
accurate reflections you get kind of a
built-in ambient occlusion kind of all
just kind of falls out it's one of the
beautiful things and I think it's not I
don't know if it's a theme but you know
we talked about a unified physics
simulation where the the simulations can
play with each other nicely one of the
nice things about global illumination is
it's it's a more elegant solution and
then it solves a bunch of the
fundamental problems of lighting and
shadow they all just kind of fall out of
it it's computationally really complex
the algorithms are really complex but
the results are visually great and it
solves a bunch of those fundamental
problems and that's what we're really
about you know kind of pushing in the
state of the art visually and if we can
not only make the result more beautiful
make the game developers lives easier
and better that's some so that's GI
works that's one of the other
technologies that we're announcing so
one of the other classically really
difficult problems in gaming has been
really it has been nice fire and smoke
classically this is done usually with
alcohol at texture tricks it can be done
with sprites and billboards it can be
done with a bunch of alpha blended quads
there's lots of ways to do this kinds of
thing but the challenge with pretty much
all of the existing approaches is that
they tend to not really be correct from
a volume perspective and again it's one
of those things they don't really
there's always a side effect those
things either there's you know a lot of
overdraw which is really performance
expensive or there's you got blending
and sorting introduced or things like
that so we've worked on a solution we
call flame works what this is is a
volumetric effect engine that allows for
things like smoke and fire to bits some
say the same way they do it in film
except it's ultra high performance it
can be done in real time
it supports shadowing you can emit light
and it uses a multi grid volume based
solver to read some really stunning
effects so flame works is kind of one of
that third I say I alluded to three
technologies there's flex there's GI
works and there's flame works so let's
go ahead and kind of take a look at what
flame works can do and yet remember this
is all kind of running in real time and
it's kind of one of those volume based
effects that solve some really complex
problems
so what Jeb's showing here is it is
actually a true volume there's no
sprites there's no layered quads there's
no sneaky particle it's a it's a true
volume based solution it's emitting
light as you can see it's human love it
interacts with geometry with imaginative
simulation so the fire we're gonna flows
around the sphere it kind of behaves the
way you think of behaves in the same
technique that they use in the film in
shape we're doing things like smoke and
fire I can't wait
I think you'll see flame works
integrated innoGames starting next year
as well in fact we've already started
integrating this into core engines
that's just I don't know that's cool
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.