All language subtitles for 07-RandomRotation

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified) Download
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:00,640 --> 00:00:04,800 Let's randomize our wall even more, by  adding slight random rotations to the bricks. 2 00:00:05,440 --> 00:00:09,440 Let's create some space just before we  offset the coordinates for the distortion,   3 00:00:09,440 --> 00:00:13,040 and Shift right click and drag to add a  Reroute, so that we can work on this link. 4 00:00:13,600 --> 00:00:17,920 To rotate our bricks, we'll use  the aptly named Vector Rotate node.   5 00:00:17,920 --> 00:00:22,480 This allows us to rotate the coordinates  around any axis of the input coordinate system,   6 00:00:22,480 --> 00:00:27,360 and centered around any given point. As we  are doing this after fractioning the bricks,   7 00:00:27,360 --> 00:00:32,240 each brick effectively has their own coordinate  system, so they will rotate independently, and   8 00:00:32,240 --> 00:00:38,000 as we centered the coordinates by subtracting 0.5,  they have a (0,0) point in the middle, so we can   9 00:00:38,000 --> 00:00:42,960 keep the center vector as zero, and the rotation  pivot will be in the middle of each brick. 10 00:00:42,960 --> 00:00:48,000 With the Axis Angle rotation type, there is an  Axis vector input around which the rotation will   11 00:00:48,000 --> 00:00:53,520 happen. By default it is set to a vector pointing  straight up along the Z axis, as indicated by the   12 00:00:53,520 --> 00:00:58,640 single 1 value in the Z channel of the Axis  input. This might not seem like what we want,   13 00:00:58,640 --> 00:01:03,360 as our rotation axis should be perpendicular  to our wall, like the normal direction.   14 00:01:03,360 --> 00:01:07,440 But it is important to keep in mind which  coordinate system we are working in,   15 00:01:07,440 --> 00:01:10,080 and in this case, we are  working with Object coordinates. 16 00:01:10,640 --> 00:01:15,680 While we did transform our coordinates in various  ways, by fractioning and scaling them, we didn't   17 00:01:15,680 --> 00:01:20,640 perform any operation that rotates them, so they  are still aligned with the Object coordinates. And   18 00:01:20,640 --> 00:01:25,360 as it happens, the Object coordinates are aligned  with the object transformation. So in this case,   19 00:01:25,360 --> 00:01:29,840 it doesn't matter along which world axis we  want to rotate, but rather which object axis. 20 00:01:30,400 --> 00:01:34,640 As we rotated our plane, the coordinates  no longer match the world axes,   21 00:01:34,640 --> 00:01:37,680 and to easily visualize around  which axis we want to rotate,   22 00:01:37,680 --> 00:01:42,320 we can enable the axis viewport display in  the object properties. And we can see that   23 00:01:42,320 --> 00:01:47,680 the default already happens to be correct here,  as we do indeed want to rotate around the Z axis. 24 00:01:48,480 --> 00:01:53,440 And to confirm, we can change the angle and  see that our bricks are rotating as expected. 25 00:01:53,440 --> 00:01:56,720 We can also see that the bricks get  clipped at the tiling boundaries,   26 00:01:56,720 --> 00:02:01,360 as the coordinates are rotated within each  individual tile. This means that we can only   27 00:02:01,360 --> 00:02:06,320 rotate within the space allotted for the mortar.  This is a slight limitation, but we don't need   28 00:02:06,320 --> 00:02:10,800 such an extreme rotation, so in this case,  we can just work within these boundaries. 29 00:02:10,800 --> 00:02:14,560 As we are rotating around a vector  that is perfectly aligned to an axis,   30 00:02:14,560 --> 00:02:18,880 we can actually just set that axis in the  rotation type, to make it more explicit.   31 00:02:18,880 --> 00:02:20,960 And we can see that it still works the same way. 32 00:02:21,520 --> 00:02:24,480 We don't need the axis display  anymore, so let's turn it off. 33 00:02:25,040 --> 00:02:28,080 Now we want to actually randomize  the rotation for each brick,   34 00:02:28,080 --> 00:02:32,560 so let's take a look at the Random  output. We just need a single value   35 00:02:32,560 --> 00:02:36,400 to randomize the angle, so we can  place a Separate XYZ node in here. 36 00:02:40,080 --> 00:02:43,760 If we look at the final output, and  plug the random value into the angle,   37 00:02:43,760 --> 00:02:48,960 we can see that it's being rotated way too much.  This is interesting, because the random value has   38 00:02:48,960 --> 00:02:53,840 a range from zero to one, but if we input one  into the angle field, it only rotates slightly.   39 00:02:54,400 --> 00:02:58,800 The value has such a different effect when input  into the field or connected to another node,   40 00:02:58,800 --> 00:03:02,880 because internally the values are being  processed in radians, while in the UI they   41 00:03:02,880 --> 00:03:07,600 are being displayed in degrees, unless you have  specifically configured it to display radians. 42 00:03:07,600 --> 00:03:12,080 So actually, the values being stored are in  radians, they are converted from degrees when   43 00:03:12,080 --> 00:03:17,200 you input them into a field, and just converted  back for display. But Blender only does this for   44 00:03:17,200 --> 00:03:22,000 fields that are explicitly used for angles, as  it wouldn't make sense to convert generic numeric   45 00:03:22,000 --> 00:03:27,040 fields. So always keep in mind that when values  passing through the tree are used as angles,   46 00:03:27,040 --> 00:03:31,840 they are interpreted as radians. And  remember that a full circle is 2pi radians. 47 00:03:32,640 --> 00:03:37,040 Now, to limit the maximum rotation, we  can simply multiply this random value.   48 00:03:39,360 --> 00:03:43,280 But we also see that it is only rotating  clockwise, because all the values are   49 00:03:43,280 --> 00:03:49,120 positive values between zero and one. So let's  as usual subtract 0.5 to center them around zero.   50 00:03:55,440 --> 00:03:58,240 Now to find the actual  maximum rotation we can use,   51 00:03:58,240 --> 00:04:02,080 it's easier to just plug a Value node  in there, instead of the random values,   52 00:04:02,080 --> 00:04:05,600 so that we can see just one maximum  rotation applied to all the bricks. 53 00:04:06,160 --> 00:04:10,560 Let's also turn off the distortion for now,  by pressing M to mute the vector addition.   54 00:04:10,560 --> 00:04:13,760 This will just make it easier  for us to see what's going on.   55 00:04:13,760 --> 00:04:17,520 Now we can lower the value until the bricks  just clear the boundary of the tiles.   56 00:04:25,120 --> 00:04:28,000 There we go, that's our maximum rotation. 57 00:04:28,000 --> 00:04:32,560 We can now input the value we found into the  multiplication, and plug it back into the angle.   58 00:04:33,360 --> 00:04:37,600 But we are not actually making use of the  full range of rotation. As we subtracted   59 00:04:37,600 --> 00:04:43,440 0.5 from the random value, the maximum we  can get is no longer one, but rather 0.5,   60 00:04:43,440 --> 00:04:47,600 and the same in the negative direction.  So we actually need to double the value   61 00:04:47,600 --> 00:04:51,040 in the multiplication, and then  our bricks are nicely rotated. 62 00:04:51,040 --> 00:04:55,200 Now we can also notice that the rotation  is much less visible in the header bricks,   63 00:04:55,200 --> 00:04:59,200 as their shorter width allows for less  change in height over the width of a brick,   64 00:04:59,200 --> 00:05:02,960 thus reducing the visual contrast  between the differently rotated bricks.   65 00:05:02,960 --> 00:05:07,280 But this also means that we can rotate them  more before they hit the boundary of the tiling.   66 00:05:07,280 --> 00:05:11,520 So let's find their maximum rotation, by  plugging the Value node into the angle again. 67 00:05:16,240 --> 00:05:20,160 Then we can see that we can rotate them  about three times as much as the stretchers.   68 00:05:20,720 --> 00:05:25,360 Now we just need a way to use these different  rotation amounts for the different brick rows.   69 00:05:25,360 --> 00:05:28,000 We have all the information we  need to differentiate the rows,   70 00:05:28,000 --> 00:05:32,320 in the Size output of the Bricks group.  There the X component tells us the width   71 00:05:32,320 --> 00:05:35,840 of the bricks, so we can use that to  set the different rotation amounts. 72 00:05:36,400 --> 00:05:42,000 Let's add a Separate XYZ, so that we can isolate  the X component. Now here we have the inverse   73 00:05:42,000 --> 00:05:46,240 of the scaling factor, which also happens to  be the actual width of the resulting bricks.   74 00:05:46,800 --> 00:05:50,240 We had set our stretchers as  reference, giving them a width of one,   75 00:05:50,240 --> 00:05:54,720 and the headers were set to half  size, giving them a value of 0.5. Now,   76 00:05:54,720 --> 00:05:59,600 we can use a Map Range node, to map these known  values to the rotation factors we found before. 77 00:06:00,240 --> 00:06:06,560 Let's set the inputs to the known widths of the  bricks, 0.5 and one. And then we can map those to   78 00:06:06,560 --> 00:06:12,400 the angles we found before. 0.1 for the full  length bricks, and 0.15 for the half bricks.   79 00:06:14,240 --> 00:06:20,160 Then we can connect it to the multiplication  input, and take a look at the result. Let's   80 00:06:20,160 --> 00:06:23,520 also not forget that we should still  double the angle for the half bricks,   81 00:06:23,520 --> 00:06:26,320 like we did with the other ones,  to get the full rotation range. 82 00:06:29,040 --> 00:06:33,040 Perhaps the maximum possible rotation is  actually a bit too much for the headers,   83 00:06:33,040 --> 00:06:39,440 so let's lower it until it looks  good. 0.2 seems to work alright here. 84 00:06:40,880 --> 00:06:51,600 Then we can organize our nodes. Let's also  add some Reroutes with Shift right click,   85 00:06:52,880 --> 00:06:54,560 and align these links to the grid,   86 00:06:54,560 --> 00:06:58,000 eliminating link crossings at shallow  angles, which are hard to read.   87 00:07:01,520 --> 00:07:06,320 Then we can use Ctrl+J to frame these nodes,  and name it, for that extra bit of readability. 88 00:07:13,120 --> 00:07:15,840 Lastly, let's not forget to  re-enable the distortion.   89 00:07:16,720 --> 00:07:22,160 And there we have it, with the distortion and  rotation, our wall looks that much more dynamic. 11158

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.