Tip:
Highlight text to annotate it
X
Hi, I'm Daniel Huffman, and I'm going to show you how to do shaded relief using Blender,
a free 3D graphics program. Most of the cartographers I know do their shaded relief in ArcMap or
another GIS package, or sometimes they use Photoshop or Natural Scene Designer. And all
of these programs use basically the same algorithm, and you get a pretty similar result, something
like this: here is sort of a standard GIS hillshade, and a "hillshade" is a term and
I, and a lot of these programs use interchangeably with "shaded relief." This thing is OK. It
gives me a pretty decent sense of what's going on in the terrain. I can see that there's
some rugged areas in the lower right. I can see up here in the center some vertical, some
north-south ridges and I can see a sort of east-west horizontal ridge in the center and
some flat areas in the left. I can get a sense that there's a lot going on here and I can
start to piece through some of it in my mind. But it doesn't look really great. It's got
a very wrinkly, very artificial, very noisy look to it. It's very harsh. There are some
things we can do to Improve it in Photoshop, and a lot of cartographers I know go through
some various Photoshop filters and tools and tricks to make things look a little bit softer,
a little bit more realistic, and if you're interested in improving this kind of hillshade
that you pull out of a GIS, I'd recommend checking out shadedrelief.com, which is Tom
Patterson's website. He does a great job taking these things and making them look much better.
But there is a limit to how far we can go with something like this. And that's why I've
turned to Blender for most of my shaded relief now. If I take this same elevation data set
and feed it in to Blender, this is what I get. This thing to me looks a lot better,
a lot more attractive, a lot more realistic, and a lot easier to understand. So I'm just
going to flip back and forth a couple of times, so you can compare. This is a Blender relief.
And this is a standard, plain GIS hillshade. And then back to the Blender relief. The Blender
relief has a much more realistic-looking lighting to it. It looks more like I anticipate the
scene would look if I were sort of floating in space directly above this area. And it's
also easier to interpret, I think. If I look at, for example, in the center there's this
large east-west running ridge going horizontally in the image. And I can see that this is a
very dominant feature in the landscape, in a way that it doesn't seem to stand out as
much to me when I look at the plain, standard-algorithm GIS hillshade. Or likewise, over here on the
right of the image, you can barely tell there's sort of a circular depression in the center-right
of the image, a circular bowl surrounded by mountains on all sides. That thing really
stands out though in the Blender relief as a major feature of the landscape in a way
that you can't really tell with the plain hillshade. So I think that Blender makes things
not only more attractive, but a little bit more intelligible because it's a little bit
more realistic. The reason Blender is an improvement is because it figures all of this stuff differently
than a plain hillshade. It figures it all based on context. So, if I look at something
like this, this standard shaded relief, this is all calculated in an acontextual way. Every
pixel, it goes through—ArcMap for example does—and looks at the slope and the aspect
of that pixel, and then figures out, okay, is it facing into the sun? Is it close to
facing into the sun? Is the slope such that it's going to catch a lot of the sun's light,
and then it figures out okay we'll light it up this much. The context of that pixel doesn't
really figure in to it. It's not looking at, is it in the shadow of a mountain? Is light
going to bounce off of this thing and hit another mountain? None of that is figured.
It doesn't matter...your pixel is sort of just in a vacuum when it's calculated. Blender
takes a much more realistic approach to lighting. It actually bounces light into the scene and
says, OK, look, this mountain here is going to cast a shadow and darken everything behind
it, and the light is going to bounce off of the mountain nearby and backlight this slope.
And you can get a little bit of this sort of thing in Arc, there's a shadows tool in
Arc's hillshade tool, for example, there's a shadows button. But if you've ever played
around with that you notice it's not very realistic. It produces solid black shadows.
A mountain completely blocks all light behind it and nothing is lit up at all, and that's
not very realistic, right? Real shadows tend to darken things, but there's enough other
ambient light floating around that you can still see what's going on. So Blender has
a much more realistic shadow model, and it also calculates the way light bounces around
the scene. Here, for example, is the same thing rendered in Blender without light bouncing
around; you can see what a difference it makes. See how much darker that is? All the shadows
are a little bit harsher because now light is not bouncing off these mountain slopes
back in to other faces. If I go back to the original with bounce lighting, we can see
this softens a lot of the shadows. A mountain may darken an area, but that area can still
be lit up because light bounces another nearby mountain into that space. So all of this makes
for something that is a little bit more complicated mathematically—Blender is a, you know, a
program that's designed for 3D graphics, 3D lighting, and 3D modeling to produce realistic
effects—and runs a little bit slower than doing a standard, plain sort of shaded relief
in ArcMap, but ends up looking a lot better, a lot more attractive, and a lot easier to
understand. So that's why I tend to turn to Blender for most of my reliefs now and I would
recommend that you all start doing this as well for most circumstances. In order to follow
this tutorial, you're going to need two things. The first is Blender. You can get Blender
by visiting blender.org, and right now, in December 2013, Blender 2.69 is the current
version. It's entirely likely that as time goes on they're going to create more versions,
and those are probably going to work just fine with what I'm going to tell you in the
tutorial. So, if you go to their site, wherever you're watching this in the future, and they
say that, you know, Blender 3.2 is the current version, keep following along; most of what
I tell you is probably going to work just fine. Blender is free, Blender is open source,
and available for all major operating systems. A lot of people use it, and so it's pretty
easy to get help for most basic things online and in the forums. It's a pretty great program
to have. And it's pretty powerful, and we're basically going to use only a tiny tiny fraction
of it. I mean, if you look at, just on their homepage here, for example, look at these
things that people are doing in Blender. Right, it's pretty advanced software that does some
pretty amazing things. We're going to basically just make a very simple terrain model in it,
but if you're every interested in exploring more, there's a lot that Blender can do. So,
the first thing is Blender, that you need. The second thing that you're going to need
is a DEM, a digital elevation model. And, I don't want to get too much into what those
are. That's sort of beyond the scope of the tutorial I want to give. I'm going to assume
that you know what DEMs, how to get them, and the basics of how to process them. As
far as the DEM goes, though there are a couple of requirements. Blender will only take an
elevation model in a few different formats. Blender's actually just looking for raster
graphics...the common raster graphics formats: PNG, JPEG, TIFF. So you're going to need to
output your elevation data in one of those three formats: PNGs, JPEGs, or TIFFs. And
it's also going to need to be only positive integer values. So I usually use 16-bit unsigned
TIFFs. Blender is not going to be looking at the actual elevation data themselves. It's
going to be treating this basically like a photograph or a graphic image. It's going
to be looking, for example, at this thing, and seeing, okay, light pixels represent areas
that are high. Darker pixels represent areas that are low. It's going to treat this like
what we call a heightmap. And it's going to...in the software, we're going to basically create
our terrain, tell it to look at this heightmap and lower the terrain where it sees dark areas,
and raise it where it sees light areas. It doesn't care what the actual numbers are behind
it. So, take your DEM, round it off to integers, make sure they're all positive numbers, add
in something there, you know, if you've got a DEM that goes from -100 to 300, just add
200 in to everything so it goes from 100 to 500 or something like that, and export it
as a TIFF, a PNG, or a JPEG, and you'll be all set. It can handle 16-bit as well as 8-bit
raster formats, so if you want to have a little bit more precision to that you can go out
to 16-bit, which is what I usually do. If you would like to follow along with the specific
one that I am using, I'm going to be using this Blender Demo DEM.tif, and a link to download
this should be available somewhere around where you're watching this video, somewhere
on the page, so look for a link to that. You don't have to use this specific one to follow
along. Everything I say will be pretty general and will allow you to use whatever DEM you
want. So, go get Blender, go get a DEM, either the one I'm going to be using or make your
own, and when you're all set, let's proceed on to the next part of the video.