All language subtitles for 24-Cracks

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,830 --> 00:00:04,390 Another thing that always looks cool is having some cracked bricks! 2 00:00:04,390 --> 00:00:08,450 For that, a good starting point is a Voronoi Texture. 3 00:00:08,450 --> 00:00:12,990 Specifically, we want to use the distance to edge mode. 4 00:00:12,990 --> 00:00:16,610 This works similarly to the distance field that we set up in Chapter 2. 5 00:00:16,610 --> 00:00:20,520 But here, instead of giving the distance to the boundaries of a rectangle, it gives the 6 00:00:20,520 --> 00:00:23,370 distance to the boundaries of a randomized Voronoi tile. 7 00:00:23,370 --> 00:00:28,330 Note that the texture is a bit stretched, and that's because by default it's using Generated 8 00:00:28,330 --> 00:00:31,900 coordinates, which map to the object's bounding box. 9 00:00:31,900 --> 00:00:36,230 But it doesn't matter, we want to use the offset brick coordinates, so that each brick 10 00:00:36,230 --> 00:00:40,930 has a unique disconnected cracking pattern. 11 00:00:40,930 --> 00:00:45,310 Now we can see that some tiles look really dark, and that's because we're using a 3D 12 00:00:45,310 --> 00:00:50,010 Voronoi, which means that the tiles are actually volumes in space, and sometimes a tile can 13 00:00:50,010 --> 00:00:53,180 have a boundary that is very close to our plane. 14 00:00:53,180 --> 00:00:56,430 So let's switch to 2D. 15 00:00:56,430 --> 00:01:02,960 Then we can add a Map Range, and reduce the max input, until we see lines of the desired 16 00:01:02,960 --> 00:01:07,070 width for our cracks. 17 00:01:07,070 --> 00:01:11,010 Since we want to displace the cracks inwards and keep the rest of the brick surface at 18 00:01:11,010 --> 00:01:15,640 the same level, we'll want to invert the output range, so that the surface is zero, and the 19 00:01:15,640 --> 00:01:19,850 cracks are at a higher value, so that when we subtract it from the displacement, only 20 00:01:19,850 --> 00:01:21,700 the cracks get moved. 21 00:01:21,700 --> 00:01:28,270 This pattern seems a bit too dense, so let's make the Voronoi tiles a bit bigger. 22 00:01:28,270 --> 00:01:32,409 Now we can use our handy Distort2D node, to distort this texture, and make the cracks 23 00:01:32,409 --> 00:01:34,950 look more natural. 24 00:01:34,950 --> 00:01:40,960 Let's make the distortion a bit finer, more detailed, and more rough. 25 00:01:40,960 --> 00:01:44,890 Then we can also increase the intensity a bit. 26 00:01:44,890 --> 00:01:51,070 Now, we don't want every brick to be cracked, so we'll need a random value to randomly select 27 00:01:51,070 --> 00:01:53,520 bricks to be cracked. 28 00:01:53,520 --> 00:01:58,049 Currently, from the Random output of the Bricks group, we are using the X channel here for 29 00:01:58,049 --> 00:01:59,049 the rotation. 30 00:01:59,049 --> 00:02:03,230 The Z channel isn't used directly here, as we are just using it as a seed to generate 31 00:02:03,230 --> 00:02:05,480 different random values over here. 32 00:02:05,480 --> 00:02:09,770 But all the way at the color setup, we are actually using the Y and Z channels of the 33 00:02:09,770 --> 00:02:11,620 random brick output directly. 34 00:02:11,620 --> 00:02:15,640 It seems like it's time to generate another set of random values, as we've run out of 35 00:02:15,640 --> 00:02:17,090 channels again. 36 00:02:17,090 --> 00:02:19,810 So let's add a White Noise, and set it to 1D. 37 00:02:19,810 --> 00:02:26,380 Then let's connect it to one of the original random channels. 38 00:02:26,380 --> 00:02:29,980 Keep in mind that we don't want to use the Z channel, as that's already used by another 39 00:02:29,980 --> 00:02:33,220 White Noise node, and we don't want to generate the same values again. 40 00:02:33,220 --> 00:02:36,520 But the Y channel, for example, will work fine. 41 00:02:36,520 --> 00:02:40,840 Then let's make a nice connection here, with a couple of Reroutes. 42 00:02:40,840 --> 00:02:44,810 And now we have some new random channels. 43 00:02:44,810 --> 00:02:48,420 This is a good moment to rework part of our setup. 44 00:02:48,420 --> 00:02:52,810 The thing is that back in Chapter 9, when we randomized the brick colors, we added another 45 00:02:52,810 --> 00:02:57,380 Separate XYZ node, connected to the same random output of the Bricks group, in addition to 46 00:02:57,380 --> 00:03:00,360 the Separate XYZ in the beginning of the tree. 47 00:03:00,360 --> 00:03:05,040 This is pretty bad practice, and becomes very difficult to maintain as the tree grows. 48 00:03:05,040 --> 00:03:09,180 The issue is that with the two Separate XYZ nodes, it becomes very difficult to follow 49 00:03:09,180 --> 00:03:13,590 which channels are in use, as we need to check multiple nodes at completely different parts 50 00:03:13,590 --> 00:03:15,070 of the tree. 51 00:03:15,070 --> 00:03:19,910 So a good rule is to only separate the channels once for each Noise node, and have the Separate 52 00:03:19,910 --> 00:03:24,360 node right next to the Noise, that way we can immediately see which channels are in 53 00:03:24,360 --> 00:03:25,360 use. 54 00:03:25,360 --> 00:03:29,760 Since we are adding a new White Noise now anyway, this gives us the opportunity to rectify 55 00:03:29,760 --> 00:03:31,110 the situation. 56 00:03:31,110 --> 00:03:34,170 So let's bring this Noise node over to the color setup. 57 00:03:34,170 --> 00:03:38,450 And now we can plug its output into the Separate XYZ instead of the Random output from the 58 00:03:38,450 --> 00:03:39,690 Bricks group. 59 00:03:39,690 --> 00:03:42,480 And let's make the path neat. 60 00:03:42,480 --> 00:03:49,540 Then, just for consistency, let's replace this Separate XYZ with a Separate RGB, using 61 00:03:49,540 --> 00:03:52,800 Shift+S, as the White Noise outputs a color. 62 00:03:52,800 --> 00:03:58,330 Though this is not really necessary, as Separate XYZ and Separate RGB do exactly the same thing, 63 00:03:58,330 --> 00:04:01,520 since colors and vectors are almost always interchangeable. 64 00:04:01,520 --> 00:04:06,570 Then let's delete this floating Reroute, as we no longer need to carry this link all the 65 00:04:06,570 --> 00:04:08,620 way to the other side of the tree. 66 00:04:08,620 --> 00:04:12,470 And now we can see all the used channels in a single place here right next to the source 67 00:04:12,470 --> 00:04:14,050 of the random vector. 68 00:04:14,050 --> 00:04:19,120 Now, if we follow this link from the Y channel, making it neater along the way, we see that 69 00:04:19,120 --> 00:04:23,379 it is only connected to the White Noise input, meaning that we are only using it as a seed 70 00:04:23,379 --> 00:04:27,910 for new random values, but are not using it directly anywhere, So it's free to use for 71 00:04:27,910 --> 00:04:31,809 the cracks setup, which is convenient, as the connection is already passing right next 72 00:04:31,809 --> 00:04:33,120 to where we need. 73 00:04:33,120 --> 00:04:37,289 So let's add a Reroute here, so that we can intercept this random value. 74 00:04:37,289 --> 00:04:44,599 And now, with a Math node set to Less Than, we can create a binary mask of random bricks, 75 00:04:44,599 --> 00:04:48,110 where the threshold represents the ratio of bricks that will be selected. 76 00:04:48,110 --> 00:04:52,430 We covered this technique for selecting a random subset of bricks in more detail in 77 00:04:52,430 --> 00:04:55,939 Chapter 5. 78 00:04:55,939 --> 00:05:00,069 Now we can just multiply our crack mask, by the random brick mask, and only the amount 79 00:05:00,069 --> 00:05:08,319 of bricks defined by the threshold will have cracks. 80 00:05:08,319 --> 00:05:12,300 So far, every time we added some displacement component to the bricks, we've combined it 81 00:05:12,300 --> 00:05:17,069 here, before merging with the mortar, so let's try that again, and see what happens. 82 00:05:17,069 --> 00:05:21,210 So duplicating one of these nodes, setting it to subtract, since we want the cracks to 83 00:05:21,210 --> 00:05:26,330 go deeper, and connecting it to our crack texture, as well as to the rest of the setup, 84 00:05:26,330 --> 00:05:29,840 let's see what this does to our texture. 85 00:05:29,840 --> 00:05:34,539 So let's switch to Cycles, and look at the shader output. 86 00:05:34,539 --> 00:05:41,320 Well, it seems to work, as we are seeing some cracks, but let's take a closer look. 87 00:05:41,320 --> 00:05:46,180 We can start seeing that there is a bit of mortar inside some of the cracks, this is 88 00:05:46,180 --> 00:05:49,240 especially evident in Eevee. 89 00:05:49,240 --> 00:05:56,569 And if we increase the depth of the cracks in the Map Range, which we probably want to 90 00:05:56,569 --> 00:06:00,139 do anyway, we see that they get completely filled with mortar. 91 00:06:00,139 --> 00:06:05,000 Actually, that makes sense, since we are computing the cracks before combining the mortar, and 92 00:06:05,000 --> 00:06:08,749 any part of the bricks that is deeper than the mortar, gets filled with mortar when we 93 00:06:08,749 --> 00:06:10,199 combine them. 94 00:06:10,199 --> 00:06:14,080 But we don't really want this, as the bricks would have cracked after being in the wall, 95 00:06:14,080 --> 00:06:17,389 so it wouldn't make sense for the cracks to be filled with mortar. 96 00:06:17,389 --> 00:06:19,009 So let's fix this. 97 00:06:19,009 --> 00:06:22,659 The most straight forward thing to do at this point, is to just move the subtraction to 98 00:06:22,659 --> 00:06:26,009 the height map after we combine the bricks and mortar. 99 00:06:26,009 --> 00:06:30,439 So let's insert it after the Maximum node, and reconnect the cracks. 100 00:06:30,439 --> 00:06:36,930 Now the cracks are no longer filled with mortar, but we have a new issue. 101 00:06:36,930 --> 00:06:40,439 The cracks are extending beyond the edge of the bricks and appearing in the mortar as 102 00:06:40,439 --> 00:06:41,439 well. 103 00:06:41,439 --> 00:06:45,379 This is because we are calculating the cracks within each tile, and the tiles extend beyond 104 00:06:45,379 --> 00:06:50,819 the bricks, while the mortar is used to conveniently cover up the seam between the tiles. 105 00:06:50,819 --> 00:06:54,819 But now this seam can be seen where the cracks sharply end in the middle of the mortar. 106 00:06:54,819 --> 00:06:57,909 Luckily, this has an easy fix as well. 107 00:06:57,909 --> 00:07:02,060 Just above the height map, we have this Greater Than node, which computes a mask of the bricks, 108 00:07:02,060 --> 00:07:04,939 using the exact boundary where they meet the mortar. 109 00:07:04,939 --> 00:07:07,969 So this is perfect for us to mask the cracks. 110 00:07:07,969 --> 00:07:11,719 Let's simply multiply the cracks texture by this mask, which erases the parts outside 111 00:07:11,719 --> 00:07:14,659 the bricks. 112 00:07:14,659 --> 00:07:22,929 And if we look at the output now, we're getting exactly the effect we wanted. 113 00:07:22,929 --> 00:07:27,479 And we can also check it out in Cycles, where the cracks look extra good, especially if 114 00:07:27,479 --> 00:07:32,069 we bump the subdivisions up to seven. 115 00:07:32,069 --> 00:07:37,919 Let's lower the subdivisions again, and switch back to Eevee. 116 00:07:37,919 --> 00:07:48,830 This is a good moment to frame the nodes, and organize them a bit. 117 00:07:48,830 --> 00:07:56,729 Then we can name the Frame Cracks, and give it a distinctive color. 118 00:07:56,729 --> 00:08:08,990 We can actually make the tree a bit more compact, moving this Frame and reorganizing the routes. 119 00:08:08,990 --> 00:08:23,300 These nodes are adding the cracks onto the displacement texture, so let's frame them 120 00:08:23,300 --> 00:08:26,360 as well, and call it Crack Displacement. 121 00:08:26,360 --> 00:08:30,429 Then we can copy the color over from the other Frame. 122 00:08:30,429 --> 00:08:34,390 And finally, do this last bit of untangling the connections. 12645

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