Tip:
Highlight text to annotate it
X
A graphical highlight of Unreal Engine Four is our real-time dynamic global illumination
and glossy specular reflection. So these objects that you see in the statues, as
they change their state from a diffuse material to specular,
they not only change the way light bounces they also change the color of the
light bouncing around in the scene.
Unreal Engine Four also supports fully emissive materials so
materials that you see in your scene can not only receive light and be emissive but
also transmit light.
We have support for full
shadowed and lit
subsurface scattering. This knight, as i move around, you can see the light
through him changing based on the opacity and filter color.
Unreal engine four uses a fully deferred renderer.
One of the applications for this is deferred details, so
this sphere drop wet decals on the ground, which change not only the
diffuse and specular, but also the normals of the surface.
And this is, again, all fully dynamic and real time.
This is our orrery room,
and this solar system that you see moving around
has been placed to demonstrate our indirect lighting. If I change the time
of day
the sunlight will begin to stretch further into the room
and this will begin to show more of the color of the light bouncing off of the
floor and onto the surrounding metal walls.
If i change the color of the carpet,
you can see that the color of the room changes quite dramatically; I can do it
again.
There we go, now if i were to say grab my spotlight planet here,
and
use it to illuminate my room,
as I move it around
it illuminates different elements of the scene which then bounce their colored
light on every aspect of the scene correctly.
You can even see the reflection of the different floor colors on the sphere itself.
This next room, it highlights our
uh... dynamically lit particle system. So I have a number of particle systems here,
all being illuminated by the dynamic elements of the scene. I can turn on my own
flashlight
and illuminate it, or even pick up my
spotlight planet from the previous room
and throw it in. And you'll see this all works together dynamically, in real time.
Out here we're highlighting our direct and indirect lighting on particles, so
I have a volumetric particle system
that is being illuminated from within by chunks of lava being uh... shot up through
the vent
which use the volume of the particles determine the amount of light that transmits
through.
The particles are being illuminated directly by the sun and also picking indirect
illumination from
the sun bouncing off the world.
They are also correctly shadowing the environment around them.
Unreal Engine Four supports GPU particles, which allow us to have
extremely high numbers of particles along with complex simulations.
So, for example,
this room has over a million particles in it alone
in various different
elemental styles.
I have fire and ice, obviously,
with very different effects.
And then i have a final
magic effect, and this effect is
demonstrating our
vector displacement fields, which can be uh... dynamic
and fully interactive; So, I have a
vector field on this object, and as I move it around it displaces the particles as it
travels through them,
and i can even turn it off have it all wisp away.
This room is highlighting our improvements to post process. We now have per
pixel lens flare, so any bright element in the scene will become part of the lens
flare, as well as full eye adaptation. So if the windows were to suddenly close
my scene becomes dark, my eye adaptation will adapt the focus exposure, and then if the
floor were to collapse
I have bright elements in my scene so my lense flares are back,
and it's all, again, fully dynamic and fully real-time.
Heading up the stairs we come to the hallway from our
demonstration.
And this has both
my knight from the the cinematic and also
full time of day, so if i watched the sunset...
you can see the light changes quite dramatically.
When the sun's completely behind the building the sky will go to night,
and i have a very different lighting environment. And then as the sun rises,
again, I change completely.
Now the most impressive thing about this entire demonstration is, that
for the entire thing,
i've been in the editor the entire time. At any point i can come out of our
immersive mode,
and go right back into my tools.
So i can just fly around select objects
and move them around
and interact with them,
because I am in my editor and in in my tools the whole time.
We've dramatically
improved our play, it's now instantaneous,
I can jump in at any time and just run around.
So this gives me extremely fast iteration time.
At any point I can see the changes that I've made, in game,
without leaving my editor.
We've rewritten our user interface,
it's all completely dockable and reskinnable, so i can
put any part of it than any part of my uh...
my lay out.
We now have this details panel that you see on the right, and details allows me to
see not only
the properties of the object,
but also
in depth information about it. For example, what class it is,
where its location in the world,
uh... as well as what materials are applied, and even drill down further and see what
textures are part of that material. I mentioned I can see what class it is, and
that's very important because, this,
is a blueprint.
In Unreal Engine Four we use kismet to script not only our levels but also
individual assets
in what we call blueprints.
A blueprint allows me to have an instanced class placed in my level
that can have custom behavior. So, for example,
when i click on this statue you can see
the kismet graph executing in sequence, so I can see exactly what's going on at any
point. This allows for much for powerful debugging.
At any point I can jump out
and go over and begin making changes,
drag off to create new
connections
with a nicely laid out list of
things that i can call from this point.
I can also
quickly put a breakpoint in, and now when i play,
if I trigger that breakpoint
it will stop the editor
and stop the game, allow me to step through and see the state of any of
these values,
and then resume and see the continuing game.
Turn that breakpoint off again. And
if i wanted to, say, make a change to this it's as easy as dragging off, so I'll add a
delay,
give it a default duration of three seconds and wire it in,
and now when I play, when i click on my statue
I hit my delay, i see the countdown for how long it's got left, and then it executes
the script again.
So this allows us to make changes and iterate on them extremely quickly.
Talking a bit about the indirect lighting,
if I select the post-process for this environment
and filter for the uh...
voxel lighting intensity, if i bring that down
this is what the scene would look like
without any
bounce lighting being
derived, so there's
no complex specular, there's very little uh... secondary lighting in the scene but if I
bring that back up
I begin to get my metallic reflections my complex secondary lighting on all of
my objects
as well as a much more realistic environment.
Over to in the orrery room, if i selected that orrery, I can see there's a number of properties
that are are being set up inside of this blueprint.
So in the construction script
I have all of the parts of it being put together in sequence, and then I reach the
sequence split which
creates each planet individually; each one of these lines represents an individual
planet,
and then i have all of the variables that are used to drive the various
behavior. Now, this is what the variables tab looks like.
If I dock this here you can see there's quite a few of them,
but all of these can be categorized and given custom names, and
what that means is that when i get back to
the placed version of it
I don't have a huge flat list of variables like i have in my editor,
I have nicely categorized,
friendly named
properties that allow me to
make changes
without having to know how the script was made.
Now I showed play in editor, which,
instantaneous, I'm in, my game is running, I can
interact with my planets,
run around.
But now I'm going to use simulate,
and simulate
plays the game, but doesn't put me in it.
So now i'm still in the editor, I have complete control over my tools, I can see
properties for any object, I can select
the various elements of my scene.
But, because i'm not in the game, I can watch everything happen
and that at any point I can click possess and become part of the game, and begin
interacting with my game as a player.
One last thing I'm gonna show off um...
If I hit play and run around in my world, I can hit F10 to eject
and now i see my players representation in the world again. again
If i open up his details panel in this code view
it will populate with the functions for that class, in this case a player.
If i double click on one of those functions it will open the source file
for that
class
and go straight to that function. So, this has leg strength and i'll change that,
minimize this, and I'm going to click compile and possess so I'm back in my
character, playing the game.
I can't jump very high
but when it finishes compiling
I become superhuman. So i can make these kind of changes while i'm playing
the game, while I'm in my editor, while i'm making changes to my environment and my
tools and everything,
all in real time, as you see.