the production and visual fx of killzone shadow fall FX.CG2017. 3. 10. 16:22
https://www.slideshare.net/guerrillagames/the-production-and-visual-fx-of-killzone-shadow-fall
Page 73 ~ . Early particle experiments (Motion Vector, flowmap)
We then applied flowmaps to our particles which resulted in a
pretty nice looking smoke...
A flowmap is a texture that contains velocity vectors that can be
used to create the illusion of flowing water, blowing sand or in
this case moving smoke....
still we wanted to get more out of it...
We figured out that the best looking results we got,
when we used an image sequence....
We took a bit of video or rendered footage...
bake this footage out to a single texture with a number of
rows and columns... and play the sequence on your particles...
On previous titles we did experiment and use them... but this
would only be in exceptional cases since these textures would
take up a rather large chunk of memory on PS3....
Luckily... we were developing for the PS4 which has a
plenty of memory available!
At that point we still had some doubts that these might look too
repetitive.... but after some more experimenting we felt confident
that this wasn’t going to be an issue.
Now that we knew the solution for creating good looking FX
we needed to dive into the process of generating them....
For generating most of our smoke FX we used Houdini...
Here you can see an example Pyro-sim running in Houdini viewport...
The cool thing of using Houdini is that we’re able to extract all
sorts of data from these sims...
For this smoke we rendered out a top-view of the simulation..
These are the density values that we use to drive our transparency..
This is the smoke color element with baked in lighting direction....
This is the heat or tempature element that we use for adding fire..
We then combine all these elements to an RGB image..
Note that at this point in time we were still using a texture with rows
and columns....
With the addition of texture arrays later on in the project we switched
to those..
This shows how simple the shader is....
Here is the smoke applied to our particles....
As you can see from this early test... it works pretty well...
By using that heat texture we generated we’re able to layer
in a fire element in our shader.... and thanks to the addition of
HDR rendering in our engine we can increase intensity and
add some nice glows...
For lighting the smoke we didn’t want to pre-bake a single
direction as is done in this example...
besides not matching the real lighting conditions.... this
would also not allow us to rotate the particle to create
more variations...
Here is an old trick we used to fix this issue...
We would light our smoke from different directions and
combine the results into 2 RGB textures and do a difference....
so we would light it from :
<CLICK>
- the right
- top
- front
- combine the results into RGB then repeat with opposite lighting
- left
- bottom
- back
- combine results
- do a difference on the 2
- convert to black and white
And this gives us a fairly nice evenly lit ambient occlusion type of look
This is an overview of all the smoke elements from our library
These gave us enough variation to create the FX...
It’s important to have particles that don’t have a too distinct
recognizable shape..
So this gave us a good starting point but one of the
downsides of using image sequences... is that you get
frame-popping whenever you slow down the playback....
<CLICK>
By the introduction of a new mechanic called adrenaline mode,
which you can see here, the player would be able to temporarily
slow down time this frame-popping would become very noticeable...
so we needed to find a way to fix this issue....
Let’s take a look at some footage that shows the issue....
In this video we’ve increased the particle lifetime to 11 seconds...
so the 25 frames of our texture no longer cover every
rendered frame...
you can see the result looks very choppy....
so the first thing we tried was doing a blend between the
frames over time... this works really well for thin smoke
but for the more dense defined smoke like you see here
it still doesn’t look quite right...
If you look at the center of this smoke the blending looks
reasonably ok.... but if you pay attention to the outlines of
the smoke you can clearly notice the frame-blending....
So this made us revisit a technique we’d used on a cutscene
for Killzone 2... lets take a look at a short making-of clip
where this technique gets explained..
Here you can see the result after we applied the motion vectors
to our smoke effect....
and you can clearly see how well this works.....
Now although the blending still isn’t perfect, it is definitely a
significant improvement..
Here we can see all of the different methods next to
each other for comparison....
The technique that we used back in 2008 for generating
that nuke cutscene....
we were now able to use in our game on a lot of our particle FX.....
<CLICK>
To recap... motion vectors are really nice :
- blending of very distinct shapes works well
<CLICK>
- You’ll need less frames and can increase resolution of your texture
<CLICK>
- The motion vectors are added to memory but these can have a
really low resolution texture as long they’re are uncompressed...
<CLICK>
- The shader complexity will increase quite a bit but the result
is well worth it... As mentioned we only used this on a couple
of our FX, most stuff worked pretty good with just cross-blending....
Let’s take a look at how we can tweak the variables of our
final smoke effects...
........................................
'FX.CG' 카테고리의 다른 글
Game Art Tricks (0) | 2017.05.22 |
---|---|
DML~CG制作 いろはにほへと~ Autodesk Japan (0) | 2017.03.10 |
Forums (0) | 2017.03.10 |
Star Citizen FX (0) | 2017.03.10 |
phoenixFD (0) | 2017.03.10 |