Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,500 --> 00:00:04,310
We made the wall look much more interesting
in the last chapter, by randomizing the depth
2
00:00:04,310 --> 00:00:05,310
of the bricks.
3
00:00:05,310 --> 00:00:09,820
But we can also randomize their rotation,
so that they are not all parallel to the plane.
4
00:00:09,820 --> 00:00:14,130
This is especially nice, because it will change
the shading on the bricks as they will get
5
00:00:14,130 --> 00:00:16,580
lit from different angles.
6
00:00:16,580 --> 00:00:20,940
In Chapter 7, we already randomized the 2D
rotation of the bricks, so that they are not
7
00:00:20,940 --> 00:00:26,369
completely horizontal, but let's now randomize
the rotation in the two remaining axes.
8
00:00:26,369 --> 00:00:30,820
There are many ways to approach this, but
probably the easiest, is to just think of
9
00:00:30,820 --> 00:00:34,350
what effect a brick rotation would have on
the surface.
10
00:00:34,350 --> 00:00:38,829
If we just consider a rotation around the
vertical axis, the result would be that one
11
00:00:38,829 --> 00:00:41,420
end of the brick sticks out of the wall more
than the other.
12
00:00:41,420 --> 00:00:46,250
Looking at the height map, that's basically
just a linear gradient along the brick.
13
00:00:46,250 --> 00:00:50,620
And the same goes for a rotation around the
horizontal axis, it is just a gradient along
14
00:00:50,620 --> 00:00:52,309
the height of the brick.
15
00:00:52,309 --> 00:00:57,149
So to randomize the rotation, we would need
to generate random linear gradients.
16
00:00:57,149 --> 00:01:00,750
One way to achieve that, would be with an
actual vector rotation.
17
00:01:00,750 --> 00:01:04,861
If we take a look at the centered brick coordinates
that we computed early on in the course, we
18
00:01:04,861 --> 00:01:10,000
have an X value that changes horizontally,
and a Y value that changes vertically, but
19
00:01:10,000 --> 00:01:14,210
actually, we also have a Z value, which indicates
depth, we just don't see it here, because
20
00:01:14,210 --> 00:01:16,100
it is zero everywhere.
21
00:01:16,100 --> 00:01:20,250
Now this becomes useful when we add a vector
rotation.
22
00:01:20,250 --> 00:01:27,020
Rotating around the plane's Z axis just rotates
the 2D coordinates like we saw before, but
23
00:01:27,020 --> 00:01:29,360
there is no change in the Z channel.
24
00:01:29,360 --> 00:01:33,369
But it gets more interesting when we set the
rotation to something like the Y axis.
25
00:01:33,369 --> 00:01:37,840
Now, changing the angle, we start seeing a
blue gradient, which is the Z channel being
26
00:01:37,840 --> 00:01:39,860
rotated as well.
27
00:01:39,860 --> 00:01:46,630
This is more clear if we look at a three dimensional
object and see how all the coordinates are
28
00:01:46,630 --> 00:01:47,630
rotating.
29
00:01:47,630 --> 00:01:58,360
Our plane is just a cross section of those
coordinates.
30
00:01:58,360 --> 00:02:03,430
Now if we isolate the Z channel with a Separate
XYZ node, we can see that we have a gradient
31
00:02:03,430 --> 00:02:05,330
that varies with the rotation amount.
32
00:02:05,330 --> 00:02:10,509
Note that the side that is black is not actually
constant, it's the same as the other side,
33
00:02:10,509 --> 00:02:12,430
but in the negative direction.
34
00:02:12,430 --> 00:02:16,640
And if we now set the rotation to the X axis,
we get the same thing happening in the other
35
00:02:16,640 --> 00:02:18,090
direction.
36
00:02:18,090 --> 00:02:22,450
But to generate the random rotation, we don't
want to rotate around a specific axis.
37
00:02:22,450 --> 00:02:27,420
Instead, we can set it to do an Euler rotation,
which allows us to input the angle of rotation
38
00:02:27,420 --> 00:02:29,819
for each axis as a vector.
39
00:02:29,819 --> 00:02:35,670
Then we see that the gradient can go in all
sorts of directions.
40
00:02:35,670 --> 00:02:39,620
Let's bring this setup close to where we randomized
the depth, as we can make use of the same
41
00:02:39,620 --> 00:02:42,610
White Noise node for our random input.
42
00:02:42,610 --> 00:02:50,610
Then let's neaten this node connection a bit,
so that it's not overlapping everything.
43
00:02:50,610 --> 00:03:04,159
To access all the random channels, we'll need
a Separate RGB again.
44
00:03:04,159 --> 00:03:08,610
Then let's also make some extra space here,
and while we're at it, we can join these two
45
00:03:08,610 --> 00:03:11,710
connections with a Reroute.
46
00:03:11,710 --> 00:03:16,531
Then let's move these nodes over, and carry
their input over from the Value output, to
47
00:03:16,531 --> 00:03:20,560
the equivalent R channel, just to keep everything
consistent.
48
00:03:20,560 --> 00:03:25,290
Then we can drag our new nodes into the Frame,
and finish straightening the connection.
49
00:03:25,290 --> 00:03:31,040
Now, to feed the random values into the X
and Y rotation channels of the Vector Rotate
50
00:03:31,040 --> 00:03:33,930
node, we'll need a Combine XYZ node.
51
00:03:33,930 --> 00:03:38,620
And then we can plug the two remaining random
channels into X and Y, and plug the output
52
00:03:38,620 --> 00:03:40,760
into the Vector Rotate.
53
00:03:40,760 --> 00:03:45,310
Now our gradients are randomized, but the
top left corner is always at a higher value
54
00:03:45,310 --> 00:03:49,680
than the bottom right corner, and that's because
with the random values between zero and one,
55
00:03:49,680 --> 00:03:55,560
we are always rotating in the positive direction,
so let's add a Vector Math node here, to subtract
56
00:03:55,560 --> 00:03:59,610
0.5 from X and Y, so that they are centered
around zero.
57
00:03:59,610 --> 00:04:03,340
And now we have truly random gradients.
58
00:04:03,340 --> 00:04:07,519
The specific amount of rotation isn't that
important, as we can scale how much we want
59
00:04:07,519 --> 00:04:11,659
to displace the height of the bricks by adding
a Math node to the gradients themselves and
60
00:04:11,659 --> 00:04:14,830
multiplying the intensity of the effect.
61
00:04:14,830 --> 00:04:19,880
Finally, let's move these nodes over, so that
we can add our rotation gradient onto the
62
00:04:19,880 --> 00:04:24,780
brick height map.
63
00:04:24,780 --> 00:04:28,890
Now if we look at the output, and increase
the rotation intensity, we see the gradients
64
00:04:28,890 --> 00:04:31,440
show up on some of the bricks.
65
00:04:31,440 --> 00:04:38,470
Now, if we switch to Cycles, and look at the
final output, setting the rotation intensity
66
00:04:38,470 --> 00:04:43,250
to a high value, like ten, really shows the
effect.
67
00:04:43,250 --> 00:04:47,880
But let's set it to a more sensible value,
like five.
68
00:04:47,880 --> 00:04:52,431
Note that because we are doing this before
we combine the bricks with the mortar, the
69
00:04:52,431 --> 00:04:56,680
mortar respects the brick rotation, and the
ends of the bricks that are rotated into the
70
00:04:56,680 --> 00:05:00,530
wall, get buried in the mortar, which is a
pretty nice effect.
71
00:05:00,530 --> 00:05:04,870
But maybe we're seeing a bit to much of this
happening all over the place, so let's compensate
72
00:05:04,870 --> 00:05:08,800
by reducing the subtraction that we added
in the last chapter, so that our bricks move
73
00:05:08,800 --> 00:05:11,050
back out of the wall a bit.
74
00:05:11,050 --> 00:05:15,180
Now we still have the mortar over the bricks,
but it's a bit more balanced.
75
00:05:15,180 --> 00:05:19,120
Now the only thing left to do, is renaming
the Frame, as it's not just about the depth
76
00:05:19,120 --> 00:05:20,780
anymore, but also the rotation.
8051
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.