Houdini + Arnold Workflow: Automatic UVs, Displacement Extraction, Shading & OCIO

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
we're going to cover a lot of various topics and we're going to start by learning how to create low res geometry using various method and then we're going to look at ways to create uvs in houdini start learning about texture baking using mantra and then learning how to displace the geometry back in arnold at render time and then we're going to start looking at shading in arnold learning about luts and how to install the asus workflow and then start shading some of the elements that we've previously created and try to push that to the limit so hopefully you guys will like this and let's get started in this video i wanted to talk about the uv unwrapping in houdini and the various tools and options that we have available for us by default and i have a sphere here and i'm gonna go over the the three basic tools that i use most of the time three or four and the first one is called uv projector if you hit tab you can see there's a whole section for that for the uv tools and uh the first one is the uv project and this is very simple way of projecting dv coordinate and you can hit space 5 to switch to the uv view you can do that also by going under the clicking here set view and then uv viewport and you can see we have a orthographic projection applied to the sphere now the cool thing about this node is there is this initialize feature and that will try to fit the object into zero to one space so if i hit initialize you can see now we're doing a orthographic projection and there is other options as well there is a uv a polar coordinate and this basically creates a polar coordinate it's a it's a spherical mapping and you can view the uvs using a uv quick shade this is an opengl drawer that to just show you the uv it doesn't it doesn't store anything on the texture it itself and it adds this shop material path uh to tell the viewport what texture to use there is one that comes with houdini that i like to use most of the time and if you go under the houdini saw hips there's this uv grid color and i prefer to use this so now we've created a uvs we can also what else is there there's cylindrical turret oil torii dell and plastic wrap i'm not so sure what's the difference in all of these i the the main one that i use this one looks interesting but i've honestly have never used it it looks like it has a lot of distortion in the in this sphere the other one to use is the uv texture node and this one has more options and it can create uv coordinate for nerd surfaces as well using the rosen column and that will give you a perfect zero to one space uv and warp of whatever surface you have whatever nervous service you have it's very similar and i use this most of the time to create a projection along a specific axis when when you have a grid or something that's the one i use and then what else and then we have the more advanced tools which is the let's leave this on which is the n-warp and this basically does a um six four four five six eight planner projections so you can see it created a six squares uh six sides project projection for the spheres and you can control the spacing between them now you can see it's not making good use of the the space it's not going to get a lot better you can change it to a stretch to fit that but there is also a uv layout node which will try which will try to place these in a way that fits better the space so let's see and i believe yeah you can scale them so you can choose the distance uh this generally helps a bit when you have a lot of object but in this case it's not helping a huge deal and then the next one is the uv pelt which there's the uv flatten and the uv belt they're both different and both of them requires an edge selection so i'm going to go back to the sphere and create a group node and this is just a brief entry we're going to go back and use them to so to actually and more meshes properly and that will uh in those example we'll dive in more and and and understand how to use these nodes better so let's select just selecting a ring here let's do it continuous cool and then i'm going to hit enter and let's call this edges and let's see let's use the uv pelt first and this is very useful i ended up using this node a lot i will try to flatten the node the the uv coordinate and i prefer to uh prefer to use the turtle turtle toot very centric and with 200 or more iterations you should be able to get a very a very uniform unmark of that surface so this is a very handy node and then there's the uv flatten as well which requires a uv sim and this is the typical and warping and let's connect this here and you will unflatten the object but because we have a continuous ring it's going to generate two uh two surfaces so let's let's change the selection let's do something like this with just one one side yep and let's hit enter let's use this and it should unflatten the surface without without separating the blocks and there is not so many there is no options for this it is either going to give you the result or not and then you can add additional seams uh if you want to by selecting them in the viewport so we could add we could add this sorry we can add this as the second selection yeah it's not helping either in this example but basically you give it a a specific edge and it will try to flatten the geometry based on that it's it's different than the uv belt for sure you can see this one produced a single object versus this one and in the next video this is a brief intro again we're going to uh look at in the next video we're going to learn about displacement extraction maps extraction and then we're going to start creating um uvs for the geometry and learn how to use these nodes in a concrete examples so in this video we're going to learn a little bit about the texture baking or maps extraction and i wanted to explain the idea behind it and i have two spheres here one is a very high-res sphere with 144 000 points that i displace i add a little bit of noise so it's this and just recomputed the normals again and then i have a lower sphere which is this guy doesn't have a lot of points and the idea of the maps extraction is that i templated this is that we want to use we want to compute the difference between these two surfaces the low res mesh and the high res mesh and then store that difference in the map and we can we can do this even here we can do the the extraction the difference even itself but the diff the problem is we don't have a lot of points in the low res so if we're going to compute the distance between this point and this surface and store that as a displacement which is what's going to happen when we do the actual extraction we don't have a lot of points we're not going to be able to accurately represent how the surface is and that's where the render that's where mantra comes in we have to use the renderer to extract a very accurate information about the the difference between the two surfaces and when we render this it's going to subdivide it into a subpixel level and it's going to mantras is going to use this low res geometry and start shooting rays it's it's going to shoot rays in a hemisphere and then the first point the first point that hits that ray from the high res mesh it's going to get the distance how far that array traveled and then store that in a in an image and in this case it's going to store a negative value that pushed this point to be here and then a positive value for anything that is underneath so for example you can see the surface is underneath the high res detail so it's going to store positive displacement and that's the idea basically we need a low res mesh and we need a high res mesh and the more difference the higher the difference between the two surfaces the the higher the chance of losing some details because uh it there's um there's a chance of error that gets higher and higher the more difference there is in between the surfaces so for example if we pushed this surface the high res one too far and let me copy this one more time so let's do it one more time so if we started pushing the surface too much and start getting cavities it's really hard to for the low res surface to understand where it uh where what details to use because there is two of them when we get cavities like this and we have a low res mesh it's going to shoot array and that will hit the internal part of that high-res geometry and that's where we start losing details so we have to be very careful about how much we push how much difference there is between the low-res and the high-res and in general we don't this is a an illustration example but we don't do this we don't do this in production generally we take the high-res mesh and then we generate the low-res version of that that is closer in terms of silhouette that tries to matches the high-res version something like this for example just using a remesh you can see we still have the majority of the silhouette of the hi-res version but we're missing the fine details and this will be a much easier case to use the displacement extraction but i wanted to use a more extreme example to show you guys now i want to use the uv project node was that it the uv texture node sorry uv protect yes so let's put down a uv project and i'll explain why in a second and i want to unwork this color cool and i'm not so sure if we're seeing okay yeah i wasn't sure if we're getting overlapping faces or not and it looks like we're not so the reason we need a uv coordinate on the low res mesh it's because mantra is going to use that to start shooting rays and then whenever it finds a difference it's going to use that uv coordinate to store the information as a texture to disk and that will contain for example the displacement we can also extract a variety of other things but we'll leave that in in the in a more for a more advanced section to that we're going to use for uh games in general in this video we're going to just focus on the displacement extraction and i have the low res mesh and i have the high res mesh and there is various method for extracting the displacement we're going to use the default one it's called uv to surface and there is another one that's called trace displacement and uv match the uv surface starts by analyzing the the uv coordinate and shooting rays based on the uv information the trace it's going to do a similar render basically similar to how mantra starts rendering an image and then every shading point is just going to shoot rays so the uv there is not so much difference between uv to surface and the the trace displacement the only difference is the uv2 match compared to all the other method and the way the uv match works is by it requires a uv coordinate on the high-res high-res mesh as well and the reason for that is because to it's going to use this point for example it's going to get its uv coordinate and it's going to try to relocate that same point and using that the uv coordinate it's going to try to relocate it on the high res mesh and compute the difference this provides a much more accurate capture but we can do it at the moment it requires a uv on the high res mesh which we're not going to be able to generate easily so we're going to use the uv to surface method and what i've done is i have the low res mesh i have the high res mesh i simply imported them into these two guys so low-res high-res okay and then let's actually let's have them on and if we go back to here let's create sorry if we we're going to go to the out context and it's actually a render so if we hit tab and type in baked texture and we're going to use mantra because uh arnold doesn't have a great way of baking textures and mantra is great at doing that so we're going to use it for the time being i'm going to change the format to tiff and tick on displacement and what it's going to do is it's going to save the file as a rat file which is the houdini native format and then from there extract a dis the tiff version and then if we go under the baking tab let's see under the and warping tab these are the three methods i was talking about so we're going to keep it to uv to surface and maybe later we'll try the trace closest and there is also this diffuse fill option uh when we separate let's say let me go back here and explain what that's going to do so we create a uv and warp and let's take a look so here you can see there is edges on each of these sides and sometimes we get errors on these boundaries and it's nice to expand the uv coordinate the bake texture just couple of pixels to add padding for these areas and that's where the the fill comes in so you can say diffuse fill it's gonna give it a specific color or you can say border expansion which i prefer to use and this is how much pixels you need i'm gonna leave it at two at the moment and we need to the only thing we need to add is the uv object and this is the low res mesh and it has to have a uv and then the high-res version which is the high-res version and then this is the resolution that's all we need and we hit render and it's rendering now so we'll be done in a second because it's a it's not that complex extraction and the more options here the more uh the slower the render is going to be and we're going to talk a bit more about this as we progress through the workshop in this week so let's take a look at what we have not this one sorry cool so i have um this is the image and you can see we have the extraction uh we have the displacement map now all these values are negative that's why we don't see them here you can see their negative values and basically this is the result that mantra gave us now i'm going to leave this here i'm gonna make a copy of and call this uv to surface that's the method we used and i want to run another test with the using the trace closest surface and it should be done soon and the way the expansion works first mantra does the render saves it as a red file then does a first extraction to give you the tiff format and then another post process to take that tiff file and expand its boundaries let's take a look at what we have here cool so this is the trace and you can see it's it's working much better and this is you can see the result is much better already and the the uv2 surface method the reason we're getting the clamp the let me go back hopefully you can explain this one second so this is done using the trace closest and this is done using the uv to surface okay now see how it is clamping here see that issue it's because it's not knowing how to look up for the other surface it's not able to capture the details it doesn't have a good understanding of how the surface works and i'm not sure how we get the best result out of the uv2 surface honestly it didn't work for me but i wanted to illustrate it and then the only method i'm using currently is the trace and then the uv match i'm going to explain the difference so when we have uh the two surfaces the way the trace works is it's going to for each point it's going to open two cones one cone of 180 degree looking along the normals facing this this direction here and then another one uh facing the inverse normal so it's gonna shoot downward and then from those two it's basically going to create a hemisphere or a complete sphere a 360 degree sphere where it should raise in all direction and then the closest point to that surface it's going to use it as the the target and then it shoots rays and then when it hits the high res surface it's going to capture the information it's going to capture the distance in this case and that's what the trace is but it's not a great method when you have very intricate cavities it it doesn't give you it's not going to look up or find the correct value and then that's where the um the uv match comes in the uv match allows us to capture a lot more information between surfaces that have very complex deformation but it's really hard to create the high-res the uv on the high-res mesh and i'm going to show a solution for that it's a two ways workflow a two steps workflow that requires two baking but i'm going to explain it here and the uv the uv method sorry the trace method is also able to capture a lot of details so we have the result here and what i want to do is i want to do something bizarre it's actually very simple but for it's very simple in houdini but in other apps this is very complex so okay so what i'm going to do is let's say let's forget about this okay and let's say we have this low res mesh and i think i'm gonna pause here and we'll continue in the next video because it's getting long so um we'll continue the second step of this workflow to have uh the to have a full workflow of how we can capture any um any maps or extract any maps that we need between complex meshes in this example i'm just using sphere to illustrate the the method and then hopefully we're going to apply it on a much more complex mesh so we're going to try and uh create the workflow to fully utilize the uv match method that will allow us to create extract very high res maps between a low-res version and a high-res mesh so we've extracted this meth this map a displacement map using the uv uh sorry the trace closest method and what i want to do is i want to take this low res mesh and i want to subdivide it okay i'm going to subdivide it four times and again we're going to forget about the low res version and then i'm going to create a point vap and the idea is i want to apply this displacement map back onto the low res mesh after subdivision and i want to displace this using that map and see how how far we are from this surface and i'm going to dive inside and we need a color map we need to import the uv so i'm going to vector to float that connect these two guys and let's expose the map and then we need a displacement a displace along normal and the amount is going to be this let's actually use just one vector because it's it's a gray scale and then let's connect this to the displacement now the uv coordinate here if we look at the uv coordinate is a vertex and we need to promote that so actually promote from vertex to point cool and it's it's displacing the surface now using the mandrel image we don't want that so let's use our map you can see we have two of them we have the the this one this is the original one and then it extracted the tiff file and then that tiff file got expanded boundaries so this is the one we need to use and if i connect that boom we have perfect uv uh perfect displaced sphere and this is the low res again this is the low res with the uv we've used it to extract the difference between this and this and this is what we have now now look at this edge here and this is where that border comes in you can see there's a little bit of issue there because of the uv and the distortion and i'm going to change the attribute promote from average to first match hopefully that will get rid of that attribute the reason that's happening is because the vertex attribute is a sorry the uv coordinate is a vertex attribute and that point is shared between two two areas so see for example this point this point here it has one uv coordinate sorry this point here is the same as this one they're both uh the same point but they don't share the same uv coordinate so setting this the first match solves the uh solves the promote the uv coordinate accordingly now let's increase this a bit more maybe five this is too much fine so i'm gonna do another bake with um with a higher resolution i want to capture more resolution before i start subdividing this but you can see already we're getting a lot of details now how far are we it's fine yeah let's set it back to four and let me pause for a quick second and do another extraction at 4k so i'm going to set this 496 and i'm gonna hit render and i'll pause and come back when it's done okay so now the bake is done and i have the 4k map i'm gonna load that i saved it to a different folder v2 and i'm going to load the uh the this version here and i've subdivided the mesh five times cool so it is displaced it doesn't look like it changed that much maybe the map didn't refresh sometimes changing the viewport helps refreshing it cool so now we have we have the two surfaces and this is the result that we would get from the render if we were to take this mesh exactly as it is using any render any any tool to do render time displacement and use this texture we will be getting this result because this is exactly what's going to happen and let me recompute the normals just to make sure and i want to compare this with the original just do a side-by-side comparison okay let's transform this so we can view them both at the same time and let's move this 10 units that's too much and let's complete this okay so this is the uh original mesh and this is the displaced and you can see we're going we're getting a very close match now see how these uh curvatures are not being captured that's because of the that's because of the cavity that we talked about see here it's not knowing how to capture that and this is very normal because it's really hard to to capture anything that has basically a concavity which is which is happening here so we need to be very careful whenever we bake and remember we started off with a very different topology which is not the case most of the time you would have something that still has some of this uh details in there so probably capture a bit more and you can see we're getting uh the push in as well anything that is in the other direction we're getting that as well so the method that i have i'm actually going to let's leave it at that so the method that i have is when we need to capture more accurate details we need to use the uv match and now that we've we are very close to the high res mesh right we're not too far from that and maybe i can let me make a copy of this and i want to increase the resolution of this let's say 250. okay you can see now we're getting even more details let's go even higher let's try 300. okay so the last thing that i want to do is i want to do a ray between this the high res version with the displacement and this one so i'm gonna move this here i'm gonna put down an array and let's ray the two together and let's turn this off we want them to be on top of each other and let's put down a null okay so now we're we're writing this version here this version with this mesh which is again this is the original mesh with the noise on it the high-res version this is the low res version with the displacement applied it's the lower as subdivided and then we added the displacement back and the last bit i'm doing is trying to capture any extra difference using array and what the ray is going to do it's going to just project to the nearest and i'm going to make sure that it uses that so uh i'm going to change it instead of project ray using the normal direction i don't care what direction it's going to use i just need the minimum the minimum distance you can see now it's bringing back a little bit of details now this example may not illustrate all this but in some other example with more extreme uh cavities we're going to be able to bring some of that back now the main the main thing that we have here is that we have a mesh that is high-res super high-res and it has the uvs so this is the main thing that i was uh going after and now i'm going to create a null here and call this hi-res with uvs okay and then i'm going to copy this and call this we have the low res i'm not going to do anything about that so let's create an object merge we need the lower actually we don't need the low res we have it already so i need this and i'm gonna preview it so that's our high res mesh with uh from the low res it has the uvs i'm going to go up and create a new geometry node and call this hi-res with uvs okay i'm going to dive inside and let's paste that node in there so this is our low res make sure we're getting the correct stuff and this is the high res with the uv let's go back up here and copy this i'm going to call this big using uv match and let's uh let's go under the and warping method and wrapping method and change this to uv match now we need to change the hi-res to have the uvs as well so high-res with uvs and then the low res i'm going to leave this at 4k and i want to extract something else i want to extract the vector displacement and the difference between the vector displacement and the displacement is that when we when mantra computes the difference between the low res it's going to use that hemisphere to find the closest point but when we use the uv match it's going to actually try and locate the points exactly so if we have a point that starts here but then is shifted all the way here we're going to get a vector pointing in that direction but with the displacement we cannot capture that we cannot have anything that moves in a different direction other than along the normal so the vector displacement tells us it knows how it can push points in the different directions that's the main this is a 3d uh a vector displacement it has x y and z and then the displacement just along the normal so we want to extract that as well and we need to make sure that we either use a tiff because it's a 32-bit file so tiff xr and or pick or rat file i'm going to stick to tiff file for now i'm going to hit render and then we'll continue we'll continue looking this in the next video so now the bake is done i want to apply the new displacement extracted back into the mesh and compare the result with the original one so i'm going to browse to the new file and it is this one here and this is our new result and let's compare this with the original mesh and you can see already it's it's much closer than the one we had before see let me merge them one to one let me merge them and then let's compare them and um the vector displacement is for some reason it's not b it's not working in the viewport here and we're going to get back to it when we start doing the rendering and that's what we're going to look into it deeper because that's basically when where we need it and overall the most of the baking techniques is going to be for the end games with arnold we're going to be primarily using the high-res meshes but i wanted to explain some of the displacement extraction techniques and how we can get the most out of it by building two pro two-step processes let's set it to one cool so you can see it's it's very close i mean if if we don't see this and just look at this original mesh we're very close we're doing a great job with the baking at the moment so this is basically it the in the next video we're going to look at how to create uvs for one of the meshes and run it through the baking process and try to reproduce the same thing now but we'll go much much quicker than that i've done a small change here if you guys remember there was a promote node that promotes the vertex attribute from primitive from uh sorry the uv attribute from a vertex to point i changed that now and inside the point valve i'm using the input import vertex attribute here and basically i'm setting the first input and then typing uv here and this will automatically import the vertex attribute and we don't have to promote it i needed to do that because the in order to bake this correctly it needs to be a vertex attribute and to restore the point to promote the point back into vertex is much trickier so i resorted to this which is much cleaner way of doing it so i think that's pretty much it i hope you guys understand the two-step process again this is only required when we when the first bake does not give us what we want and there is a case where we're going to run into into that it's more for week eight we're not going to cover it this week and hopefully sorry week let's see probably week nine for the in-game stuff when we start uh doing more advanced baking that we need for the real-time rendering in this video i wanted to talk about the proxy geometry generation and how to create low-res geometry from high-res data and i have this mesh here it's three million points and if you guys remember we started uh the creation of all these using volumes and i wanted i don't i want to treat this geometry as if we don't have any inputs we we've never had the original scenes so that this process it can be applied to any other uh meshes that you guys may may receive or have to work with in houdini and i'm not going to rely on having anything previously done because we've we are the owner and we've created this i want to treat this as a a fresh start so i can show you all the methods and what's available in houdini there is a poly reduced node there is a remesh node and there is a vdb from polygon so these are the three options available for us and each one of them has different advantages and different disadvantages and the the the main thing that i'm actually not so sure about this the main thing that we need to uh know about all these workflows is that we're going to be losing attributes when we remesh the data and let's say we have a uv coordinate here it's going to be really hard to maintain that to the low res mesh and luckily with the projection with the with the extraction workflow we're going to be only needing the the low res to be uv'd and with the vfx workflow with arnold we're not going to be really using the uvs to create textures we're going to rely on the tri planner so even though i'm going to explain how to create various uvs we're not going to be using them a hundred percent in this workflow and whenever you you're going to optimize the mesh again imagine you're going to be losing attributes so you have to find ways to transfer that back and again other than the uv coordinate we don't have anything to worry about and the uv coordinate is always generated on the low res which is the result of this process so let's take a look at this this is very useful for when you have uh when you work on uh in games and you have a specific poly count that you need to reach this this guy has a very useful feature i just disabled this so you can say i want to keep 100 primitives or a thousand primitives or something like that you can also use a distance from an object if you have a scene and you want to low res everything based on a specific location you can use that to generate lods basically and then you can also give it a specific set of edges that you want to maintain if you have a box for example you can select that box and give the the edges here and i personally don't have i've not i didn't have to change these guys a lot i generally use let's say start with 10 percent and take a look at the result and see how how what kind of polygons i'm getting will that mesh be enough for in-games or to be subdivided and used and when the the primary use for this is going to be arnold proxy preview and later we're going to try and reuse the same thing for the in games as well but i'm not gonna i'm not gonna go into details uh for that yet so the uh the use for us is going to be a low res that we can uv easily so it doesn't have a lot of polygons in it and then we're going to extract the maps and um see how we can uh displace the low res of this complexity back into the high res and we're also going to learn how to uh create automatically create uvs for complex meshes like this and so it's cooking right now and it's gonna take some time because this is a three million polygons and you can see already now it's done you can see already it's done a great job by trying to keep the meshes as close as possible and this is very good result now it's going to be really high for in-games and what i generally tend to do is i keep this because the process is heavy i don't wanna i don't want to change that value i do when i copy that and then run another poly reduce on top of that and this way it's going to be much faster and the result is not going to be far different than doing changing this back to one let's say i do another 10 percent here it's as if i've done one here and you can see it's much faster now and this is something that we can use for end games directly cool so this is one way and then let's take a look at the uh at this guy it's going to be this guy is going to be a little bit heavier so what i'm going to do is i'm going to delete some points and delete certain parts of the mesh and just work on that cool so i've increased the primary setting for this is the edge length and that's what i prefer to use uh whenever i use this node that's the method i use the other one tends to not there's two method there is fixed length and adaptive adaptive will try to be uh smart and analyze the mesh and place the polygons only when it think it's necessary but the result is it i'm never satisfied with the result of the adaptive so i if i use this node it's most likely with the target length and i personally use this to just create a low res mesh that i'm not going to use in production just for preview this is very useful for that and you can get a very low res version and it's much faster than pretty much all the other workflows so let's try 10. the higher the number the less polygons you're gonna get again it's not the same as poly reduce where you can tell it percentages or specific numbers this is going to be based on the mesh density and so far it's not going further i think that's the minimum can go to so we'll do we'll do another remesh on top of this as well yeah so iteration helped but let's do another process and again this method i only use to create a low res mesh so with when you go through when you guys go through the assets and to export the low res for previewing uh try to use this node you can see now this is very very cheap way of generating a low res is trying to keep details for sure and i think that's going to be very useful and this is not what we're going to use for the uv we're going to use the vdb which is the best so with the vdb there's a few more things a few requirements and the first one is the mesh needs to be enclosed you cannot have any open surfaces and i'm actually going to change okay that's fine so let's take a look and luckily with the stuff we're doing because everything is done through volumes it means there is no cavity there is no opening in this mesh uh it could there could be something but it's not it's not going to be a huge gap and whenever you have a mesh you have to that you receive you may have to do extra processing on that to to basically cap all the openings and the easiest way to do this let me show you a quick way so let's say this is the grid and we have an opening there what i generally do is i would group i would group the open edges like this and then change this to edges you can see now group the exterior and the interior now obviously this would be a volume so let me make that a volume actually let's extrude this and let's delete some polygons and let's show the wireframe cool so now we have that opening and we can use the group feature to find that and then the polycap in houdini 16 is is really good so it's much it knows how to generate the surface much better than the previous one and i would try and light them so this is the easiest way to find the openings and poly cap them okay so let's go back and we know that our mesh is perfectly fine so i'm going to just pull use a vdb from polygon pardon me i'm going to lower this to 0.02 the lower the lower this value the more details you get and then all i'm going to do is put down a vdb convert and convert this back into a mesh and the great thing about this is that it's going to it's going to generate only quad surfaces which is great for everything for games for vfx it's a it's a well-balanced mesh it's uniform and it has only clouds and this is what we're going to be using for uving so we're going to uv this mesh and then we're going to um bake the texture and apply it back to get the high-res surface with the uv on it so now we're going to learn how to create uvs for this and the easiest way that we can use is to find a good edge that travels through the mesh and then use that with a uv pelt or a uv and warp to flatten to unwarp the mesh and i'm going to use the edge selection and there is a very handy feature here if i select an edge and hit shift a and keep holding that it's going to use the find closest path to the next point so i'm going to keep following this until i get the edge that i like that travels through the entire mesh and this is a very quick process i'm going to keep doing that continue all the way and i want to select this guy and now i'm going to type in group and then should be able to group the edges cool so let's call this edge selection and let's use a uv pelt and with the uv pulse i'm gonna give it that selection and let's take a look at the uvs cool so now we have that something at the center i'm going to change it to the benefit barycentric mode which gives the best results so far i'm going to increase this to 250 let's try 1000 and let's increase the boundary springiness cool so we're done that's it that's all we have to do to create the uvs for a mesh like this so let's take a look at the uv quick shape perfectly fine and this is going to be very easy to work with because you can see there is not so much distortion there is a little bit here but should be fine and uh what we can do is we can also run a smooth uv smooth on top of it to relax it a little bit more so let's uh let's change it to 100 change the quality yeah and that just helps a bit and you can see how easy it is and now the trick is to transfer this to the hi-res okay and that's going to basically require the baking process which we're going to be doing start doing in the next video but before pardon me before i move on i wanted to show a different approach for creating this creating the path selection i want to make it dynamic and what i'm going to do is i'm going to create a group with all the points first okay so i'm gonna select not that this guy so i want the low res mesh and i want to group all the points i'm gonna call this uh group three that's fine and one i need to create a um an attribute and i need to store the m from the id and i'll explain why when we get to it so the id is going to be the point number basically cool and the next thing i'm going to do is i'm going to select a couple of points at the top and a couple more points at the bottom so i'm gonna select one here one here one here and i'm gonna group this and call it top i'm going to select few more and call it bottom and now what we're going to do is we're going to use a a node called find short test path that's going to require two groups the starting end so the start point is going to be the top and the bottom is going to the end point is going to be the bottom and i'm going to see the result and boom we have selection now but look at how it's merging it's merging in this path which is totally fine from each so let me change this you can you can decide how the points will behave i'm gonna set it to from any start to any end point and it depends on the path that you have it will try and find the most suited one and keep that sometimes it will result in in import in providing four different paths and you have to just select the one that you need and then delete everything else and this is a little bit more dynamic all we have to do is select couple of points at the top so that couple points at the bottom like four uh on each section and then use that and this will automatically give us a path between the those two target instead of having to auto select that and we need a way to we need a way to uh know what this path where this path came from and the original the point number attribute that we need to specify is the id instead of or pt and we've already created the id and what we can do is we can create a color here so we can give this guy a color and we can give the original mesh a different color so i'm going to copy this okay and i want to copy that information back to the mesh so attribute copy and want to copy see from this into this i want to copy cd and match my id okay and now we should see let's see yep it should work let's see why it's not doing okay it looks like yeah so the i need to use this mesh because the id attribute doesn't exist here so let's use this guy and now we should be able to see that group boom there it is now how do we select that well it's very easy we're going to use the group expression and in this group we're going to tell it if the color the red color for example is higher than 0.1 select the points i just need the the points there and we need to change this to an edge an edge group and the easiest way to do that is using a group promote so promote let's take a look so group promote we want to promote let's give it a name edge as points and we want to promote that let's keep let's rename it edges edges and in the promotion we're going to convert it from point to edges and see now it's it's selecting everything else and we need to take on keep only keep only elements in there the sorry include only elements contained in original group that's very long so it give us the the selection that we need and then we simply use that with a oh it's called with the uv pelt let's connect that and let's select the group let's take a look at the result that we have and there we have a perfect uv that we can use to generate the displacement map and we're going to be doing that in the next video so this is one of the easiest way in houdini we're going to talk about more setups when we needed them again for this section we're going to be using primarily the tri planner and using high-res meshes in arnold but i wanted to cover this and explain the uv creation process so we'll start extracting displacement in the next video uh on this we have the low res mesh i'm going to create a null and call this out low rise and let's create another one for the high-res mesh which is this guy here so out hi-res and let's object merge this and by the way we're supposed to be doing this in the actual original file of the asset but i didn't want to over complicate things and but you guys should when you whenever you do processing on the asset you should use the pipeline tools and open the correct team files for this so let's import the hi-res and low-res and i think yeah this feels a little bit too heavy but let's see let's copy this guy i'm gonna turn off uh cooking i'm gonna change the viewport so it doesn't compute anything and i'm gonna drag this here and let's copy these guys and call this uh let's let's leave it that's fine i'm gonna call this lowrise and it's good and let's create another one high res let's paste it in there cool so we have the two geos let's create a camera let's turn on cooking it's loading okay cool and let's uh go to the out context create a big big texture i'm gonna set the resolution to 4k this time and the low res version is this high res is this and i need displacement targa i'm gonna change it to tiff actually let's change it to rat because that's what this is what houdini likes i'm going to change it to trace closest and under rendering i'm just going to increase the pixel samples because this is a very a complex mesh and i'm going to increase the bake samples to 32 i'm gonna hit render and come back when it's done okay so now that the bake is done i have the displacement map and what i'm going to do is i'm going to subdivide the low res twice or three times as much as i can and and then we're going to displace it and again doing this we're going to um keep the uvs and all the attributes that we have on the low res mesh so how much let's try one more time it's it's computing it's coming it's coming cool so how much do we have now almost 2 million let's create a point drop and here i want to create this from scratch just to make sure that you guys understand the process uh we need to import the uv coordinate which is a vertex so i created a vertex import vertex attribute and then let's see and then we need to vector to float that and color map and let's connect uh let's add another vector to float i just need the one channel from this because it's a displacement map and it displays a long vector this place along normal p this is the amount and this is the original mesh and let's connect the map that we have cool so let's take a look we should see some displacement going cool and let's expose the map and let's use the one we just rendered so it's going to be this and i did not add the padding option and this is the displaced mesh now you can see we have one error one issue here and that's called nan and the nun is basically an infinite value or a spike that we get on the edges of the boundaries of the sim now let me open the file i want i want to see if i can locate that and we should see here we should be able to see it it's probably this you see there's a change there if there is a negative value we're not going to be able to see it unless we invert the image which i don't think we can do here yeah we cannot invert it here you know what i'm curious now i want to see the value i'm gonna switch to image create image network and let's import that file okay let's gain it up what's happening sorry i'm in the render view yeah cool set this to one one and let's gain the image cool and let's invert it back let's invert it sir take a look let's gain it down yeah and i'm seeing something so that could be that could be the spikes the spike uh it's hard it's hard to tell exactly but you can see there was one um one issue there with the map it may not necessarily be that though let's try yeah we can spend time trying to figure figure it out here but i know how to fix it so let's not make a problem out of this and let's go back let's dive inside so the the reason is we're getting that nun which is basically a spike in the pixel of the displacement and the easiest way to fix it is by clamping the values yep so let's clamp that and you can see now we're clamping to zero and we're just leaving the stuff that's being pushed out we can do the inverse we can set this to zero and then set this to minus one and this is anything that is pushing in the surface you can see that that's where the spike is it's in the negative range and let's just tune this so that we can actually let's set this back to one so let's tune this value it was minus one till we get rid of that because it's different than anything else so even if we trim it here we should be we should be safe so let's try 0.5 and we have to be very careful see nothing is changing and that's good so 0.2 cool so we killed something but nothing else changed 0.1 we still have something here so let's try even going lower i think we're gonna we're gonna start a hitting the range of the image yeah so at that range we're starting to lose details see here and unfortunately that's all that's the best we can do let's try point one here yeah that's the best this area is is probably has a lot of curvature and this is the best we can get out of the out of this result cool so this is uh this is the lorez displaced and now we have this awesome uv that we can use let's uh let's browse the map cool so now we have the high-res version texture textured and perfectly ready to use now you can send this to any package you want and you shouldn't have any issues working with this now what else now we can still take this further and and try to capture some more details from that low res into the high res but you can see let me uh let me transform this and put them side by side let's do one just one okay so that's the original and this is the lorez subdivided and displaced and let's put them side by side and see okay so that let me untemplate this guy hide everything okay cool so you can see side by side we're not seeing any difference we're not seeing any major difference let's say maybe a little bit here but again it's if we look at where we started this from it's i think it's great to be able to get this and this is exactly how the renderer is going to behave it's going to subdivide the mesh and push the polygons so whatever we've done this incident in the sub level we have to do that in the render and i'm not going to start looking into that yet because we have a lot to cover already with the arnold i think uh this is pretty much it for the uv creation and baking part and now we're going to start looking at rendering and shading these assets and how to use arnold in this video we're going to learn about luts and how what's the advantage of having a lot in general and how to use them in houdini and and how to set up the asus workflow now i have a render here i have a scene here with a skylight i only have a skyla sky dome with an hdr and i have a sunlight and i just turned it off so it's just the skylight right now and i'm going to increase try to tweak it so that we see a little bit more information from this from this hdr okay so uh i've increased it to 40 and let's see what we get and look you can see now we're getting a lot more information from the hdr but everything is blown out everything is super white and look at how uh how these falloffs are you basically we're getting very clamped images and the the result if if this is what if this was correct the elimination result from this should be much higher we should be getting a lot more information back a lot more indirect elimination from that but we're not getting this and if we tune down you can see as soon as we we hit white as soon as we hit white it becomes white it becomes super washed out and this is a big problem let's uh let's put the let's introduce the sunlight it's probably too high so let's set it to six now i'm trying to add this uh a sunlight back to try to get some more information into the scene but so far everything is is getting clamped at one we're not we're not able to see anything above which is basically what everyone is doing uh when they use the render by default or they don't have a lot workflow and the main reason movies look much more realistic by default is because they have these luts workflow they have a lot for every movie and every render you do generally render in the same color space as the movie was shot so for example there is a very uh common format they use in in cinema it's the s-log and this the the actual camera capture the image ranges goes from 0 to 54. and when you look at the raw image you it's it doesn't have it's not interesting it's super flat there is no contrast there is nothing but once you apply the lut to it it looks way way more better than anything you've probably seen and that's why movie they they look much more realistic either the render or the camera itself because they capture a lot more information that than just a range of zero to one they're not limited to that and with this rgb workflow srgb workflow we're rendering in linear space and then looking at the result using a 2.2 gamma but we're limited to white this is this is the as high as we can get that's it if we if we surpass this level we're not going to get anything interesting and this is not enough for us this is this range is very very limiting it doesn't help with the physical physically based render because if i expose this if we were to shoot an environment a real photo if this area looks like this this environment will look much brighter because of because of that intensity but it does not here so there is something wrong there is something broken and and this what we're going to be doing is what will take your render to the next level there is nothing else if this doesn't make your render better then there is something else that you need to revisit and by just having this workflow once you get used to it there is no way you can render without it at all your render will once you get used to it your render looks much much better by default and everything you saw in the work everything you saw in the workshop every single image here let me let me pull up the link every one of these guys is raw render every one of them including this which in this kind of stuff is basically impossible to get uh if if you were in a normal workflow all these images are done our raw renders this one too everything you see here there is no compositing involved at all and it was done using the asus workflow which is the lut now let me continue tweaking this let's let's go back i'm gonna snapshot this actually i'm not gonna snapshot i'm gonna take a picture because if we take a snapshot it's taking into account the the lut so i'm going to call this no lut and i'm going to turn on the lut and retweet this and i'm going we can load a lot uh using this so load the lut and this is what we're going to be using and i will explain why where these came from and how to install the workflow and you can see by just doing that something changed already see this is the original one and this is with the lut applied but now we don't need this stupid 2.2 gamma correction we don't want that we're going to set this back to one and this is what the render looks like with the lut now look at how much information we have now this is without the lut look at how much uh information we're we're getting clamped in there and then once i turn on the lut look at how nice these shadows are and these highlights and this is much more realistic now look at the the difference the illumination coming from this wall it feels much more realistic because now if i look at this value see it's one let's gain this image okay let's go to it's not very high so let me let me change few values in the lights i'm going to leave these guys here i'm going to load this for lut both of them and for lut and let's hit render again cool so the these lights are much brighter and let me tune them down so let me set this to 100 and 40. and you will notice quickly that we need to uh once you set up once you start using this workflow you will see that you need to increase the the luminance much higher now i'm i'm just using the skydome and let's increase this to to a stronger value you can see now we have much better information here let me crop it to this region nice now look at how awesome this transition is we're not getting any clamps anymore and look at the value it's 80. and look at the indirect bounce from this it's much more realistic let's let's go higher let's go 80. now this is a lot more higher and we're still not getting white yet look at the values a 24 here and we have 24 here and we're seeing information look at this we're seeing information there and this is this is basically the key to getting realistic renders we need to render between zero to one zero let's say zero to twenty and above and i set this to 200 probably too high and let's introduce the sun back i want to introduce this guy back in and look at this look at how awesome the highlights are we're not clamping anymore oh man i can't i can believe the srgb workflow look at this now with this we're gonna get a lot more information in the highlights because it's not gonna clamp it's gonna look way more realistic we can push the values and we're going to get much nicer fall offs in general and this is this is not color correction this is very different than color correction you will not get this if you take the image in srgb and try to do it try to color correct it you will never get the same information we're rendering in a different space that is not a srgb right now and it's the asus workflow and what this asus attempt is there is many different luts you can uh find you can find them online the asus workflow is the attempt to create a standardized color space where everything will look the same using the same monitor and they have different simulators for different camera and the default one asus cg is is great already you don't have to do any further tweaking you can see we're getting also a lot more contrast in the shadows okay in the in the in the mid tone and the black tone we're getting nicer saturation it looks much nicer here and now the colors will have to be tweaked accordingly because there is also a shift where the blue will not look exactly the same the blue that you will see here will not be exactly the same so you have to tweak the values to give you what you want in the viewer and let me turn this off again and let's take a look and this is this is without the lut and this is how it would look like if we were using srgb let me gain it down and this is these are the value let me set this to 2.2 this is the result okay and you can see how how flat it is actually let me capture this and let me open the image okay so this is the capture and let's put back the lut and let's set this to one and look at the difference and there is nothing i i cannot stress enough how important this is now let me show you a cleaner version with just high-res settings and this is the raw image you can see here how how nice these glows are you're getting a lot of interesting illumination it feels much more realistic because the light is behaving much more uh it's behaving in a more realistic manner because the value that we're seeing now is actually what's being used in the render and we're gonna get a lot more highlights you can see there's just tons of information and this is one quick example and let me put them side by side this is the srgb and this is the lut workflow okay now in the next video we're going to look at how to install the asus workflow i was using it through the lut here but there is actually a open ocio profile which if i turn on it it gives me this asus workflow and you can view the image under a different format i'm still not sure what this is for but you can simulate different different cameras and different color spaces i use the srgb which so far gives me the the best result and you can look at the raw image as well if you'd like to and see now we're we're rendering between 0 to 20 or something like that and we're able to see it nicely so we can squeeze way more information out of the render actually let me do one last test i'm going to increase this to 600 i want to see the cap so it's we're still seeing there is a little bit of falloff there and see the values and let me gain it down just a bit see we can see a lot more information and this is you got this is what you need to use this is the secret to photorealistic render even if you're not uh i mean i didn't do anything with with this render it's just a just a skylight and a sun and i turned off gi basically and i have some water surface here to capture more highlights and more reflection there is nothing there is no secret to it i hope this makes sense i'm sure once you guys get used to it you will start to understand what's happening i'll try to find some more resources about it but it's basically the way to go so in this video i wanted to talk about the asus workflow and the open caller io pipeline so if you go under the github.com imageworks this is a sony open source project where they they are hoping to create a unified uh color correction pipeline and for vfx and basically any any cg related uh rendering so if you go under uh sorry not open io open caller io dash config and under here you will see that there is this asus workflow and the latest version is 1.0.3 and this is the one we need now you can clone and download the whole package and we'll include everything and then all you have to do is extract these folders so in this case i've extracted them here this is the package and then once you extract it you'll see it has all these folders which is basically this except i deleted these guys so the one we're interested in is the 1.0.3 and inside this folder there is a config.ocio file and this is an amazing thing for vfx in general this oc this config file defines a variety of things that solves a lot of issues and by just exporting one environment variable all the other packages all the packages in play houdini arnold i'm not so sure how much mantra has this i don't think they do but employ supports it renderview supports it arnold supports it and then nuke supports it and natron and various other packages supports it as well so all you have to do is uh take copy the path to this file not the path where it lives and then export an environment variable called ocio that points to that file and you're done now once you open once you do that and restart houdini under the render view you should see this asus workflow you should see this option here and the default is fine we're going to be primarily using this we're not going to change anything and then the other thing that you will notice is when you open and play uh with houdini 16 uh the latest version not the previous one you have to have houdini 16. and come on yeah here i have this already so you see here i have the open color i o option and i can turn it off and or i can enable it and save raw and this will show me the image in linear space the original render in linear space if i want to turn this off i have to disable the open color i o option and then change it to gamma and now we're back to default this is how the render looks like in an srgb space the same render and look at this these guys now to turn it back on right click and say open color io profile and then make sure enable open color io profile is turned on and this is set to srgb look how beautiful that is now uh the these are the primary options and if we go under uh arnold i have made couple of changes to the ui because i it's too much dark gray for me and so if we go here i'm gonna hit tab and type in arnold now arnold has great support for open images and they still they're still working in it the reason i'm calling it open image io because that's what the project is and then part of it is the asus workflow and then here if we go under property system there is this option for rendering and what this is going to do is when you have values let's say a shading value for example a refraction or absorption the values that you need to put in especially with hair the the melanin value for the hair for example the value that you're going to put in in the shader needs to go through a asus workflow multiplication to give you the right value so that what you see is what you get in the render and to get that working properly if you click here you'll see all the options available because of that ocio workflow that we exported and the one we're interested in is asus cg i generally set this to both of them and then that will also be used uh no it won't be used yeah it will be used in the texture conversion as well so when we create a shader now create an image see it says auto color space here it will use the settings for from open image io to do the texture conversion from linear into the oc i o sorry into the asus cg workspace and that will give you the correct texture so everything is set up you don't have to worry about anything and then uh when we start doing some renders we'll get to the uh we'll learn how to view view them in nuke and then how to save them out as well because i think that you guys will need this at some point and then what else i think that's pretty much it the only the only option needed is you download this and then export the ocio environment variable that points to this file now when we go to the render view there is also this option here but if we turn it off and um and say load bake we can actually load the the bake file which is basically getting loaded but the the the system takes care of that so if you go under the isis 103 under baked under houdini and this is all the lots that we need so we can load one from there directly and that should give us the same result and the one we're interested in is srgb for asus cg houdini and that will be the same as the one we were just loading in this video i wanted to explain the new features of our node 5 and what has changed since the previous version so i have i have a scene here with a grid and a sphere and i just created a new arnold node and let's go over the menu and show you what changed so there is a new thing here called transmission and previously there was two options reflection on refraction and there is this indirect specular blur which i'm not so sure what its advantage is but it's i believe it it can be used to reduce the caustic noise but i haven't haven't seen any difference or any documentation about it it could be a new feature that it's not in the docs yet so we're going to ignore that for the time being and then these are the same the main change is the transmission and then under depth under ray depth there's also transmission and previously there is reflection and refraction and now everything is treated the same everything else is the same i mean there is a lot that changed but the ui and the option looks the same there is this new option here called indirect sample clamp it's set to 10 i'm going to change that to 100 because we're going to be using a much bigger range than 0 to 10 so make sure it doesn't clamp and then there is a new thing with the auv and this is something they started with with the volumes where they added light avs for the volume and now you can basically declare any give any light a name or group and then say rgba light light group the name of the group of course let's say we call the environment emv and then rgba sun we'll do that and we're going to get two separate beauty passes for these guys there is a new options as well to create a specific uh auv let's say you want the indirect illumination of a specific light you can get that as well let's say you want the indirect spec the direct specular the direct hit of the light into a separate av you can get that as well uh same for the subsurface and and all of them uh that that's supported now but we'll cover that when we get there and let's see now the other main changes is um some some are in the light and the majority is in the shader so let's talk about the lights uh pretty much the same except this new option here which was there already uh when for the volumes but it was not supported for the surfaces and now it's supported on both the light brick that i have uses that has the uh has the av named actually remember to change the location of the hdr texture cool and so we have our lights there is a new option for portal lights in the in the sky dome to to help with solving the noise problems for anterior scenes we don't have we're not going to be using that but it is there there is this option here to change the result of the environment lighting right now it's considered as a direct ray and that's where i will keep it you can decide to keep the to put that result in the indirect lighting if you want to so you have the first bounce is just the lights and then the indirect you will get the the skydome which i'm not going to do i'm going to leave it in here because i prefer to use the av and then let me remember let me try to remember yeah i think that's pretty much it for the lights and then in the shader is where the the majority of the stuff so they have this new uh shader called standard surface and let me create the old one did they delete it no it's called standard so this is the the old one and i don't recommend using it because it doesn't have it's not up to date with arnold 500 doesn't support avs and still uses reflection and refraction and that's deprecated now so the new one is basically similar to what if you guys are familiar with the all shaders by anders langlen it's very simple there is diffuse component there is specular and you have transmission and so these are the primary three and then on top of that you can add subsurface and you also have a secondary uh coat by default there's also a option for iridescence for to create the oily specular and then the bump is all now is is plugged through the shader previously it was connected to the final shading group or the final out so there's there used to be a bump here and by doing this by having it in the brdf or bsdf we can layer multiple ones each have a different bump so you can have a layer with a superfine bump and then another specular or a coat on top of it that doesn't have the bump to create the more complex layering effect and so that's that's basically here and then what else this sss is a single layer scatter and it's different than the skin skin shader and then there is also the transmission now has a depth option and this basically simulates a single scatter shader and what else i think this is primarily the majority there's also a metalness component but we're not going to be using that at the moment and that's pretty much it for for everything let me assign this shader to these guys and let's see and let's do some render cool switch this to arnold one and now we have to make sure that our lut is set up it's working cool you can see already it's looks really nice and without the light we won't be getting this this contrast in in the in the image so everything looks cool and let's try and change few things within the shader let's try the secondary coat and it has a different roughness so you can have the primary one be very rough and then the secondary one have less less roughness so you can layer them up and it has a different fresnel so you can control that i think that covers the the majority of the changes i mean there's a lot of changes but they're all under the hood it's it's much faster and much easier to get cleaner image so you don't need to uh put super high res samples in most of the cases and then we're going to start shading our our first element so now we're going to start shading our assets and the first one we're going to start with is the standing cliff so let me go and delete this guy and we have the setup ready for us to use so let me switch back and i'm going to delete delete these two guys and we need this geometry here now because we've uh we've exported this we can easily use the arnold procedural and let's see so the asset is called standing cliff and version one and now we should have the procedural ready for us to use and we call this standing cliff proc and let's assign the shader and the reason i wanted this is because i don't want to export the geometry every time and let's assign the shader and let's change the camera i like to change it so that it fits better this pro the proportion of this asset and let's not use cam one let's use the render cam and let's change it to 900 by 800 by 900 okay cool and the i wanted to talk about the the light ray now so with this asus workflow we uh we're going to be rendering in a much wider range instead of zero to one and the light intensity needs to go way way higher and if we do the look dev under this uh open under this asus workflow we're not going to be able to use these assets on a different work on a different color space if you put them in in srgb space and use dim lights relatively to that workspace uh the colors are are going to look much much dimmer and uh we're going to be tweaking everything to look correct in this workflow we're not going to care about anything else and there is a whole process for creating a balanced light rig where you go shoot some hdr and then take references for what the diffuse ball and uh and the reflection ball looks like and then try to match those as close as possible we're not going to do that we have a full cg environment and we want to go with that and as long as we do the the look david shading under a neutral light rig it's not really neutral it has to be we need to test it under a white light but as long as we make it look good in this light rig which pretty much has some white in it it's not fully desaturated we're going to be fine but again whatever we're going to be doing here is not going to work in a different it's not going to look uh correct in a different workspace so keep that in mind and in terms of uh in terms of lightweight it doesn't matter if our light rig is scientifically or physically correct as long as it gives us the visual that we need and use it on all the assets we're going to have something that works and then later when we change the light the the lightweight to a nighttime we're going to have to tweak the lights to make the assets look good we can go further and create a second light rake with multiple point lights trying to replicate what a and a nighttime scene would look like with candles and things like that but we're not gonna go into that level yet we're gonna use this light rig and hopefully get everything to look as good as possible we may have to make a few tweaks to it actually probably have to change this to a lower number let me check the latest version i have yeah so i need to change this to four and five and then the sky dome to 1.6 which is more realistic and let me check okay cool so i think we're fine there and we may have to do some minor tweaks and this is 23 so we may have to let's go to this frame just to match actually let's change this uh to match the scene i have but it's it's not a big deal and then um and then yeah we're going to start doing the shading so let's go to the turntable uh let's use the apr base this is fine let's change the camera to the render cam and instead of this we're going to use the cliff procedural and then for the candidate light i want to always explicitly add them because the reason i want to do this is if i later add lights that i don't want them to come in and change my scene i don't want to inherit them same same for these i i always do explicit assignment and let's change this to apr base and hit render let's create two auvs rgb and v and rgb a sun okay now we don't have any any shader any look dev so everything is fine and let's start with the with assigning some textures now i have went through and converted the the image file i'm going to use to tx files to avoid the conversion i'm going to show you the textures that i'm going to be using for this one so i have this this guy here and then i have this is one map and then let's see rock this guy this one to add extra displacement called rocks and then a displacement file to add more details as well that maps to the to the texture itself and then specular and all these converted to tx so arnold hat doesn't have to do any conversion and this is a ta a specular file that we can also use for the bump cool so let's start by reading the first one and i'm i don't have any any uvs on the mesh probably yeah i don't think there is no uvs on the mesh and what i'm going to be using is something called uh tree planner tri planner so let's create that and what this does is it creates a uv coordinate based on the normals of the mesh and it's very handy especially with the type of textures that we're going to be using i think it's going to work just fine and i load in the first file now these textures we did the look dev for them on uh on a different workspace on an srgb workspace which is which is fine and what we have to do is we i see it's it's already trying to render that which is great now let me turn off the diffuse the reflection and this one too and this is the texture assigned to the geometry now and you can see it's working perfectly fine now the the thing is we have to fudge a little bit the the textures and do color correction on them because the exposure is not very well suited for this environment we also have to basically tweak the gamma a little bit for the textures uh the saturation just to get the colors that we need here this part could be improved a little bit but with the separation that we had between the the procedural texture creation this is the easiest way for us to dynamically work on the texture so i'm going to increase the brightness of the image here to to get more diffuse let's take a look at the sun and emv cool and let's uh let's make sure we we're getting some gi in the scene i know the setting it is on yeah cool okay let's increase this to four and let's go back and i wanted to show one option which actually i'm gonna turn on the sky dome now has a feature to show the map on the background and we can actually have that on if we want to so we'll leave it we'll leave it there and let's go back to shop and let's continue tweaking uh i have previous values i'm gonna add a little bit more gamma to add more contrast to the image i'm going to set add a little bit more saturation and let's increase the contrast as well cool and we can we can add we can change the texture here if we want to directly add multipliers obviously you can see once we start changing the colors we have to the the result is not something that we would expect for example when i go here the image is completely black and the reason for that is because the color space the the the lut is crushing that black area so we have to lift everything up to be in the range where it's visible in this lut um so for example you can see here we're getting a lot more contrast and let me turn off let me show you what this looks like with an uh yeah with an srgb color spacey it's basically this but with the lut we're we're getting something completely different and we're going to tweak it to look as good as possible with this okay cool so let's uh let's tune this back down let's turn off the color and let's continue so what i'd like to do next is i want to uh tweak the texture tiling so i'm going to change this to 3 3 3 i'm going to change the instead of the coordinate space object to world space and i want to use world especially that i know the texture is not something i'm going sorry the object is not something i'm going to be animating and by doing this when we instance them each instance will receive a different world coordinate and that will uh generate different tri planner and we're going to use noise as well to to help mix and vary the textures between the instances i'm going to copy this and make another one with a much bigger size let me show you guys this so now we have a much bigger pattern you can see the texture and i want to mix between these two guys and i'm going to use a an arnold noise it's very simple i'm going to set it to world and let's mix these two guys this is the first one the second one and this is my mix and with the noise i like to add a clamp because it will give us negative value between -1 and 1 and with the clamp we're safe to clamp the range and i don't want to go higher than one because that will start making one texture brighter than the other you can see now we're getting already a lot more interesting [Music] mixing between the patterns and let's increase this i'm going to change it to 3 3 and 100 and why i did let's put it back let me gain this up to show you guys the texture a bit more and the reason the reason i changed this is because i want to get some kind of stripes along the y-axis so let me start increasing this and let's focus on this region you can see how it's styling along that axis and if we set it to 100 we'll get a lot more details here and you can see it now we're getting a lot more variation cool i feel like the oh okay yeah cool so let's continue and i want to make the the noise a little bit stronger to see the styles a bit more i'm going to increase the amplitude of the noise and that will bring the textures uh up it will make the the noise much more clear you can see it here and one thing i'd like to do is if we go to the out contacts i'm actually going to change the resolution to 1600 by 1800 because this is a very uh sensitive asset and we need to be looking at the super fine details and i'm going to change the system bucket size to 32 so i can focus on a small region and still get uh and still get faster preview okay let's go back to shop and let's play with the noise a little bit more let's add some distortion i will show you guys what the noise looks like and i want to add a little bit more octaves to it and let's take a look at the actual noise so this is what the noise itself looks like and that is being used to drive between the two textures cool let's continue now what i like to do is let me let me think let's add something else so what i'd like to do is i want to mix the i want to add a little bit of curvature shading to capture more details from from this rock and i'm going to use a curvature shader which comes by default with arnold and i'm going to connect it to show you guys how it works cool so you can see now we're getting a lot of interesting details and i'm going to change this uh output to both instead of convex or concave i'm going to tell it to output both and that will use the red and the green for the concave and convex i'm going to increase the details the samples and i'm going to lower the the radius and that will bring up bring up a lot more detail so the smaller the the search radius the finer the details it's going to capture but sometimes it can get really really noisy so we have to be very careful with these something like this could also be very helpful let's set this to 0.1 and let's control the the spread as well cool so something like that just to bring up a few details here and there maybe a little bit more yeah something like this and what we can do now is it's a little bit uniform let me set it back what we can do is we can take a a noise another noise i'm going to set it to 3 3 and i'm going to fit put down a range and let's see which one controls the radius so this guy this guy can make the line thicker and smaller so and a range of 0.5 to 0.2 is good so 0.2 and 0.05 okay now i want to use a noise map and remap it in that range and i'm going to use that in the radius and what this will allow me to do is i want i'm going to vary how the curvature i'm going to basically add more break caps to this line you can see how smooth it is i'm going to add more break ups to it let's increase this to three let's lower it a bit down and let's increase the noise let's go a bit higher and if we want to see the map at any point we can simply connect the surface or anything we want and we'll see we'll see the noise now it looks like we have a lot of white white values let's increase the noise to 60 let's lower the distortion and i want to see more more gain okay so i'm not getting a lot of breakups and what i'd like to do is i'm going to copy this i'm going to set a these guys to 200 200 200 and let's view this noise and i'm going to multiply both of them and now we have more breakups you can see already maybe 180 cool and let's add maybe some distortion you can see now we have more breakups and let's use the red channel and you see how that affects the curvature okay cool so now we have more breakups and let's increase this to 0.2 okay and i'm going to use that to drive something and i'm going to use this information here which probably we need to tweak a little bit more let's increase the multiplier because where we're going to use it it needs to be much brighter and remember these values are in the asus workflow so the the appearance is not necessarily what they uh what they are for example this is one and that's what the shader will use and i want to use this information to vary the color of the diffuse i want to vary this guy okay so what i'm going to do just look at the rgb what i'm going to do is i'm going to create a color correction node take this result and let's change few things let's increase the gamma let's desaturate it a little bit more and we'll continue playing with it to get some more interesting details and now i'm gonna use another mix to mix between the original and this version using this guy i want to use just one channel and let's take a look at the result here so now it's not very visible and it's cool so now it's much more visible and this is what we can do we can change the texture uh on those edges to anything we want and that will add a lot more dynamics to the share you can see already it's working much nicer and let's connect this result to the diffuse and let's take a look and see what we get nice you can see now we have a lot more interesting details let's do a full render and remember we don't have any bumps we don't have any specular just diffuse and maybe it's a little bit too strong but we'll leave it at that you guys get the idea i'm going to increase the diffuse roughness because a a rock generally has a lot of fine details and that causes the micro facets uh to make the surface look a little bit flat and that's what the diffuse is for and i'm going to set this to one for the time being again this is not physically super accurate but as long as it gives us what we need i'm not going to worry too much about that and let's take a look at the sunlight separately from the environment cool okay we're getting that i i feel like there is a reflection pass but it's not i don't think there is also the uh there is a red and green channel in the curvature shader for the concave and convex you guys should play with both and see which one works better so let's try the the green okay works it's creating more details there is more uh change in the cavities now which is cool but i don't think this is what we need and i i like to use both of them so what i'm going to do i'm going to change this to red and then i'm going to make another one and this one this time i'm gonna take the final result and put another color correction and let's region this and this time i'm gonna color correct this let's pause this guy we have this let's mix between the original and the new sorry using the green and let's connect this to the color and let's hit render okay and now i'm going to make it darker now not that much i don't want to go in the negative region it's probably too much yeah it's too much so you guys get the idea we'll leave it at that i think the idea is very clear we're going to use the curvature to vary the shading on the rock okay so what do we have next well we can do a lot of things the next thing i want to do is i want to take i want to vary the diffuse and right now it's set to one and i want to add a little bit more variation to it and what i'm going to do is i'm going to take the final result whatever i have i'm going to take the final result here and desaturate that sorry and desaturated and let's take a look should give us a black and white map cool and i want to use this information in um to vary the shading i'm going to add a little bit more contrast maybe more gamma yeah kama works but i don't want to i don't want to make them too much darker i'm gonna put down a range and let's say i'm gonna go above one because it doesn't really matter in this workspace i'm gonna set it to 0.8 and 1.5 and let's connect the one channel only care about one channel because it's a float and it's too bright here so let's set this to one and that creates a little bit more variation we we have to tweak this guy a little bit more tune it down because i think it's too bright cool and i feel like the texture could be lifted all together so i'm going to do that here last i'm going to add a little bit more contrast a bit more saturation you can see how much options we have now you can do all kinds of tweaks and let's do a full res render and i think we're uh getting we're getting close to finishing the diffuse component i'm going to pause and do a high-res render and we're going to continue playing with the with the diffuse component so now uh almost it took five minutes six and you can see this is rendered at 2400 by 2700 and there's a lot of cool details now the curvature feels a little bit too extreme i think see these kind of noise here i think it's coming from the curvature and um and i'd like to see a little bit more stripes but i'm not going to worry too much i'd like to continue adding the ideas that i have for this asset and then we can go back and refine everything we need i also think that the environment light is a little bit too strong compared to the sunlight and i'm going to reduce it down a touch so let me snap this to have a copy and i'm gonna reduce the render settings i also increased the the camera come on what's happening i also increased the camera and added two diffuse bounces and the resolution is scaled up so i wanna change that back and with the with the light i'm going to reduce it down let's go with one maybe 1.2 yeah and we'll keep this we'll try to keep this consistent and let's go back to the shop context i'm going to limit it to a specific region and what i like to do now is i'd like to change very the color based on the normals so i like to add green stuff some kind of mosses on the faces that are facing upward and how we're going to do that well the easiest way is to take the normals and compute a shade a dot product and the way to access normals in arnold is using the state vector i'm going to set this to shading normal and then a using a dot product function and let's connect this to the surface and boom we have a product function and i'm going to set it to only face the y axis and what i use this for generally is a let me uh i would fit this into a range that goes from minus one to one because that's what the range is that's what the dot product result is so we have this and then i use that to a fake sky lighting so you can connect rgb map and let's set this to let's say brown and let's set this to blue you can see we're gonna get some kind of uh sky lighting on this and we can we can play with the with a range and this will allow you to control basically the faces that are facing upward and the faces that are facing downward and looks like i'm going to delete that and basically you guys get the idea we can remap this to red and green for the stuff facing upward and downward and i'm going to put down a ramp not an rgb ramp actually it doesn't matter let's put down rgb and i'm going to move this yeah this is a bug with the apr let's create a new one i'm going to move this to isolate the faces that i want the masses to be on and i think something like that is good okay cool and what i want to do is i want to take that color information which is this guy and i'm gonna use this information to vary that so let's create another color correct and correct this to look green and i'm going to use a mix between this and this green version which we still have to set i'm also going to change the the diffuse guy to use this result so i want the diffuse values to always be computed using the latest result and let's move this to the side and let's connect the red channel into the into this cool so let's take a look at the result we have nothing changed because we didn't change the color and let's start adding some green to it boom there it is now we're coloring the parts that we want with green okay now the next thing i want to do is i want to change the color based on the height of this and i'm going to use the shading position which is not great but later maybe we can add the rest attribute that stores the current position and that way whenever we move the asset it's not going to change because the shading point in object space may change based on the location of the object cool so let's refine this a bit i like to add a softer transition here and let's desaturate the green a bit it's not changing i guess that's because it's all coming from the multiplier yeah something like that and the next thing is i want to change the shading so it's darker at the bottom and lighter at the top and i'm going to use the state again state vector and this time i want the shading point in object space and let's take a look at this vector here see what we get so you can see it's red green and blue and we're interested in the green so let's fit this green here range let's fit this range this guy which is xy this guy and let's fit it between minus 1.5 and one boom i just want that to be darker actually this tone is is perfect i'm not gonna change it the only thing i want to add is a little bit of noise to this because it's it feels too uniform and i want to add some some noise to it so i'm going to create a noise set it to award world space set it to 10 10 and 10. let's take a look at the map if we want to add a little bit of distortion why is this driven it doesn't make a lot of sense i'm not sure why this guy is driven by weird and let's use this as a multiplier let's simply add it to all of it and i'm going to change it to a vector because i want to distort all the the position let's make sure we're looking at the red green and blue and i want to add that to the vector and then move on the green channel because that's what the um that's what the y position is coming from cool now you can see we we're using that noise as well and this is much cleaner than um doing it later because with the ad we're distorting the vectors and then remapping the height the height so it's much cleaner way of doing it and then all we have to do is remap this a little bit to isolate it to just the bottom part and then again use that to vary the shading on to make it darker at the bottom so let's add a ramp and actually i i don't want the round i don't want the bottom to be black come on i want it to be white cool and that's the area i'm going to affect oh we can specify it here but yeah that's the area we're interested in okay let's add a another color correct maybe copy this so this is the result and this is the new where is it this is the new value and i want to use this guy to vary the result cool and let's again let's connect this to match that cool okay now it's using the green which looks cool yeah i actually like it maybe we can do uh my idea was to use something darker but i really like the green there yeah we'll go with with the darker but the green is cool maybe you can add it at the top and now moving the ramp to affect a bit more the the rock okay i think we're done with the diffuse component i mean this is just the the idea i i think the curvature is too sharp so i'm gonna reduce it down let's set it to one and see what we get i think two is good and i want to see the difference the this guy a bit more so i'm gonna increase the noise to three yep which i think i i left at at one so this is what i wanted i wanted something like this with cleaner lines and we can still also distort this if we want to let's let me show you guys how we can do that i'm gonna sorry this is this is the idea i was going after with the stripes and let me show you another thing let me copy this let's move here and let's connect the noise this is the result that we have i'm going to create a state vector okay and this is returning the ray origin i don't need that i want the shading position in world space i'm going to connect that to p let's connect that to p and we shouldn't see yeah we shouldn't see any difference i'm going to create another noise and this time it's a vector noise i want to add that come on and let's increase let's change this to world and let's set it to vector cool and it's increased nice i see see the kind of distortion we're getting that's because we're changing p this is very similar to what we do in in involves in in cops as well and let's change this let's add more octaves cool something like that and overall let's multiply this down because i think it's too strong it's 0.2 so it doesn't distort these lines too much and i'm gonna go with these guys because i like them more so let's move this and let's replace the clamp with this guy and let's go here and connect this let me delete this guy okay one more thing the noise i want to increase this a bit more where is it uh sorry i i deleted the wrong node i need this to be here so p i want to connect that boom there i don't have a straight stripes anymore which i think is a little bit more interesting but you guys you guys get the idea you can do whatever you want now what else do i want i want something something else i want to add i want to add a little bit of bump and for this i'm going to use the specular texture which we haven't used yet but it's let me show you let me show it again okay so this is the specular texture and i'm going to use that as a bump and i'm going to copy this image here and we don't need to be near that we just need actually we're going to use the curvature so i'm going to be near the curvature node okay so let's plug in the map i'm going to put down a call correct because we'll need that i know and let's create a tree planner node let's connect that let's take a look at the this map by itself okay and let's increase the change this to world space cool and i think something like that i want some big details and i also want some fine details so i'm going to copy this i'm going to set it to five five five it's a lot of tiling okay like that so i'm gonna add both of them and i'm gonna multiply them actually let's use the mix we'll do the averaging so i want to average both of them cool okay and now i want to add nothing i didn't change anything so i'm trying to reproduce what i have already and i want to change i want to multiply this by the curvature so that the bump varies based on the curvature of the mesh i'm going to use the the red these guys i don't want to touch the edges at all or whatever is in the green channel i'm not sure sure and i'm going to fit this because i don't want to use these guys from black and white i just want a little bit of variation so i'm actually going to invert it to not affect anything in the cavities and keep them clean and actually i'm i'm not gonna use anything else i'm just gonna use negate anything in the cavities to not be touched by the bump and then i'm going to put down a bump 2d node connect the rgb color and then we're going to connect this to the normal of the brdf so geometry normal and let's connect this guy we're going to see a lot more breakup yeah and if we turn on specular it will help us see it will help us see more of this and i'm going to tune it down to something really low because it's very sensitive you can see it's distorting the surface a lot so i'm going to set this to 0.005 and it's very sensitive so it's obviously going to make the render slower because it's very accurate uh bump bumps in arnold is really uh very high quality you can see already we're getting a lot of cool details now i've added the specular to capture to show you guys the kind of distortion and even if we have super clean reflection let's say with zero roughness you know what let me do this let me add let me add a specular aov sorry not that let me add a direct specular direct and specular indirect let's take a look so this is a super clean reflection and because of that bump it's getting distorted it's getting a lot of a lot of noise and it's going to look rough it's going to look as if we have a glossy blurry reflection so we have to be very careful with the with this i think it's still too sharp this 2.2. and we're just rendering a small section so i didn't realize how pardon me how zoomed in i was so i think we can go uh it's very tricky with bump because once you zoom out you may you're not going to see the same level of noise and that's why when i saw the texture i told you guys to be very careful because once we zoom out and we have those texture tied in and everything it makes it get really noisy but this detail is is really cool i think it's working nicely okay let's do a high-res render and we're going to continue uh i'm going to rotate the camera just a tiny bit i want to see this side i want to rotate the camera to see uh the sun a little bit more or actually you know i'm not going to do that i'm gonna go and rotate the light wig entirely yeah something like that maybe 10. i want to see more surface lit uh with the sun and i think the color is a little bit desaturated maybe too much to saturate i want to get add a little bit warmth to it okay i'm going to cancel this and change the resolution to 1.5 1.5 and set this to 4 set the diffuse to actually i'm gonna set this to one just to keep it faster and i'm gonna hit render so now the render is done uh for sure how long it took but this is uh this is what we have it was super quick anyway and i i think we're we made great progress uh there's few things that i definitely want to fix and for example i want to make the striping a bit more obvious overall and uh i want to desaturate it a little bit it feels too saturated for me i would i want the color to be a little bit desaturated and then i think the bump is a little bit too strong because when i look at the specular direct even i mean we don't have a lot of sampling yes but i think this is too harsh and we need to tune this down to until we see the correct specular value that we would expect this would still be fine but i think we can get more out of this and you can see there's a lot of cool details here now let me show you what else i don't like i think there is a lot of black values here but again we don't have any indirect coming back we could still uh lift everything to look better here but i think the the main thing that bothers me a bit is the uh the color are too saturated so i want to fix that but i'm not gonna i'm not gonna spend time tweaking this we still have the specular component and then displacement to add to this guy the other uh the other thing what was i talking about yes so let's take a look at the sun light this is just the sun auv you can see it includes everything the interact illumination as well and then the environment which looks really cool i think with just a little bit of tweaking we'll get it to look as way more realistic in terms of details i think these guys are not fitting the environment perfectly maybe we can tweak the uh tweak the curvature a little bit more and i feel overall that the surface feels wet even though we're not doing anything to it there is no uh there is specular here but it's not if we look at the specular direct you see the the environment is really dim we're not seeing that so um i think the because of the curvature it's giving us the feel that it's wet for some reason or maybe just me and then uh what i'd like to do is i want to continue working on this and we need to add the specular component so let's do that and i think check few things okay cool so uh the specular we're going to reuse the same uh the same one for the bump i think there is a lot of cool information there and then i'm going to put down a right arranged node i'm going to use the same one i don't want any specular on the cavities because it doesn't make a lot of sense to have them there and then i'm going to let me think i'm going to connect this straight into the specular component specular i actually just need the single aov and let me change few settings back so it's faster to work with i'm gonna change this to four increase the specular to three set this to one and let's zoom in on a region uh maybe this guy here and what i like to do whenever i tweak the specular i like to turn off any displacement because that will uh affect how the sorry i'd like to turn off any bump because that affects how the the specular looks and if i can just find where the bump node is there so to keep this value i'd like to multiply this by zero so i know that the previous value was uh was 0.05 i don't lose that and let's see make a few changes so what i'm going to do is i want to use this fit range to change the specular and i want the specular information to go from 0.5 to 1.5 i'm going to increase it and these values are are going to be fine as long as we even if you we go above one as long as it looks fine here uh we're we're safe i'm gonna make a copy of this actually let's add let's add a dot to make it easier to split and i want to change the roughness based on the spec based on this map as well and for the roughness i'm going to use 0.2 and 0.4 so it varies between between the based on the image i'm going to hit render cool so we're getting a lot of specular now and i want to keep it this way and because of the because of the bum being off we know exactly what kind of details we have and then once we turn back the spec the bump on it's going to get broken down so i'm going to fine tune this so it doesn't damage the specular this much yeah it's really high you can see how how much distortion happened to the uh to the specular so i'm gonna lower this to 0.1 you can see the render goes faster as well because the normals are not changing as much and so arnold doesn't have to do a lot of extra computation to account for that surface details and i think we're much better now i'm going to leave it let's change it to 0.2 and remember we're zooming in really close to the geometry and when we look at it that those details will will not be that visible uh it's going to be the resulting of that noise noise fine fine details is what gonna give us the appearance at the end let's take a look here yeah i think it's working much better now it's probably a bit uh too too much but it's fine i'm not gonna worry too much for now and i think we're getting some cool um some cool details from yeah we're not seeing this much yeah for some reason it looks much more desaturated than the previous one yeah i like it now okay so this is the beginning and then what i like to do is i'm going to import a new image and use that to add more just more specular and the one i'm going to use is this one i will show you guys how it looks like and we're going to actually tweak the displacement or maybe yeah we're going to tweak the displacement first sorry it's not this image this is this is what we're going to be using for the displacement later but i'm it's not the one i'm going to add for the for the specular now i have i've created a one that has some rocks on it that i'm gonna stamp onto this geometry to add more details and i'll show you how that looks in a second so this is how the image looks like i don't have a diffuse for this it's just the uh the this information so i'm gonna copy this and hopefully get something interesting out of it and we're also going to add it to the diffuse so we'll touch both of them and for the for now this is this is the specular i'm going to use i think it's working pretty well and there's a lot of interesting details i'm not gonna spend too much time on it and i'm gonna import that image for the rocks and let's take a look here and let's put down a tray planner and let's connect this i'm going to set it to 0.5.5.5 pardon me and what i'd like to do is let's see okay let's do let's do more scattering hmm interesting okay we i was not looking at the at the correct uh information sorry so i'm going to set this back to 0.5.5 yeah i want these kind of details on the geometry and then i'm gonna copy this and i'm gonna make another one with more tiling so three three and three and then i'm going to mix both of them so i don't want uh the two together at the same time i want either this or that and or they they mix together and then i'm gonna use a noise to break this up even further so let's connect the noise let's put a clamp make sure our values doesn't go above range and let's add some more details to the to the noise and let's set it to three three and three cool and i'm going to use this uh to add also displacement to the surface as well as specular so let's use it for the displacement i'm gonna use create another standard i don't want to use that i'm going to connect this to uh as a displacement and the first the only thing we need to do is we need to create a float to rgb we need to use a float to rgb node to convert this into an rgba sr to convert these these guys into a uh a vector which is this and then i'm going to connect this to the displacement and i believe we need to hit render now because with the just uh i can't remember with the displacement um we have to use the original geometry and have uh so sorry let me first verify that it's working and then i'll explain what we need to do remove this here let's snap this guy and let's turn off displacement okay so it's not working let's add a multiply and add more values let me turn this off and re-render again now the the displacement option is in the object properties and we don't need we don't need any any subdivision on this because the mesh is already very high res and let me show you this so when i create that geometry node and go under the arnold there is this displacement options here we need to take on auto bump and also i also like to take on auto pump shadow ways and uh we don't need any subdivision we just need this option here to know where to displace versus where to use the uh where to use the auto bump and i don't think the this geometry had that on when we exported it so we need to export it again let me turn this off turn this on for both of them and let's export this let's do it on both i can't remember which one exports the geometry and if we go under base here okay export shape export shaders it's fine and let's change the version to two okay let's hit render and let's go to this this guy and change the version to two cool so everything seems to be fine here and let's go to the shader again it didn't export the geometry so we have to hit render again and i'm trying to think if there is another option that needs to be turned on somewhere but i don't think so cool i think i think it's working yeah so let's set this back to 2 2 2 and hit render again it's obviously going to take longer for it to start because it needs to displace the geometry and then render that still wondering black i expanded the region i'm gonna turn off the sky to see if we're getting any anything in the alpha channel maybe it's displacing displacing the geometry too far that uh it's causing it it's causing this issue yeah it looks like it's doing something but i can tell so let's uh let's do one more thing let's go back to the shop level and let's reduce this to 0.2 and let's hit render it's definitely doing some extra computation but it's hard for me to debug it because i lost the shell so i have to close houdini and start again yeah something is is not working correctly okay i'm gonna pause and we'll figure this out and come back thanks guys hey guys welcome back so i found what the issue is and uh the uh what was happening is the mesh was getting displaced too much that to the point that we don't see anything and we were inside the the geometry itself it was getting displaced to the point where it's it's cut it's beyond the camera so what i've done is i tweaked the uh the settings for this so if i go under displacement it's point zero zero one instead of one and added a little bit of padding here and then i exported the geometry again and that's what i'm using now uh one with these settings and let's see and then i i started i tried with adding details with the texture that i showed you at first where is it so let me show the texture one of them is not working i'm not going to spend too much time because already having this is is is not very interactive so i was trying with this to add a little bit more displacement but it was it was not working as expected so i'm not going to use that i'm just going to use the one that has the rox details and that now has a 10 by 10 by 10. you can see it's adding a little bit you can see it here you can see it here and that's all i'm going to use for now and i'm quickly going to turn off the this because the displacement because it's not very interactive and arnold has to subdivide every time so if we make a change or anything to the displacement we have to not subdivide but it has to displace the mesh again and it's not very interactive so i'm not gonna keep doing that the thing i'd like to do is i'm going to add the the displacement map for the rocks to the specular so we can capture some specular in there and then i'm going to use that with uh color correction as well to add a little bit of variation to the diffuse so i'm gonna add here where is it i'm gonna move these guys i'm gonna add a color correction to this and then mix between the original mix between the original and the color corrected one using the the specular mask so this guy and we'll change the color to fit uh what we need cool so i'm gonna connect that and let's plug in the the shader and the displacement is cool the the bump is cool as well keep that and let's hit render i'm going to uh the background to have the sky to have the image back this guy cool and i'm not gonna keep hitting render to see the displacement or push it i'm just gonna work on the shader now and i think it should be fine we just need to make the colors color changes here that we need to make the rocks appear a little bit and that's it so let's try and make them first different colors so we can see the details yeah there they are we could probably add a little bit more as well but i'm gonna make them brighter overall and make them show up something like that and then we can use this result also in the diffuse value so we get more diffuse in there cool so let's connect this we should see we should see some some details in there it's probably too much tune it down and because the the mesh is really high-res we don't have to subdivide it you only subdivide it if you don't have enough geometry but in this case the base mesh was three million polygons and i'm not going to subdivide that to add fine details and i'm actually going to turn off displacement for this one because it's the overhead is too much especially if we're going to see it from far away i don't think it's worth it but i just want to show you guys show you guys the how it works and the idea behind it i mean the render time is not it's not slow you can't call it slow because i just want it to be faster so that you guys don't have to wait too long and it's much more easy and interactive to work with but i'm going to do a render i'm going to change the settings i'm going to increase the the displacement a little bit more i want these guys to pop out a bit more and have um have some more shadows so increase this to 20. and i want to desaturate the surface a little bit overall so i'm going to do that here see how this infects see if we desaturate it completely what we get still interesting and i think the gamma is too much so i'm going to increase something like that and let's do uh let's do a high-res render render is done and i have another older version rendering actually the original version i did and i really like the end result i think it's very close i mean we just spent like an hour and 30 minutes probably on this and you can see now with the with the displacement added we're getting all these fine details added to the mesh as well as the shading the shading also helps a lot bring them uh to bring them up and i think it's adding a lot of cool details now it's obviously a little bit heavier you can see here there is some really cool cool parts that without them were um we're missing one level of details in this mesh now what i what i wish i had time for is actually adding a real grass to these sections here and you can easily isolate them using the normals and probably just paint them by hand like this this this this guy and add actual grass scatter actual grass on them and then for the bigger section like here for example i would scatter some extra rocks that are shaded differently that means they've been falling and they have get stuck they got stuck here so you can add all kinds of extra geometry to make this look really realistic and anywhere that makes sense basically and let's see so i think there is a lot of information here and see i think the environment light also looks really cool i think this is very realistic by itself and this is the sun with the indirect illumination which is cool and then everything together now i have let me show you the raw render and to talk about the specular a bit more now this is with the let me change it to srgb so this is yeah this is srgb and you can see how everything is flat there is no i mean we we didn't light it to look good in this environment so we'd have to go back and tweak some of the things but let's take a look at the environment light by itself and maybe maybe add a bit more contrast to it something like that i think this one is capturing the details but the sun is not so look at how clamped these guys are and we're not pushing too far we're not going to the extremes in this example but we will in some other uh just single scenes do that and look at how flat the the render is and how clamped the the the values are and once we go back to the once we go back to the to the open color i o look at how beautiful this is everything is just works and and all the values looks much more natural now has we have more variation have more information from black we have a full range of values and look here for example getting a lot of nice details even if it's super tiny look at this for example and all that is is is a mixture of the specular diffuse all the information that we have in the shader now let me show you guys the older version this is the older uh rock it's pretty much the same shader uh just a few values are tweaked differently if you color correction i like the stripes a little bit more here i like i like the desaturation a bit more but overall it's it's very maybe a little bit more contrast here but overall i think it's very close and i'll be sharing both scenes so you guys can take a look at them and compare them i think that's pretty much it uh for this scene uh in this video i want to talk about the guys should work on for this week i think the highlights is uh being able to generate a low res mesh that you then create a uv for and try to bake the texture and reapply that in the scene you don't have to do it in the render but just try to get the low res with with displacement added and swaps to match the original mesh and then you can export that original mesh for example this is the final version after displacement applied to it and it has a perfect uvs even though i didn't use it i want you guys to do that to go through the process but you don't have to use any any render time displacement just export the map take your high-res geometry low rise it export the the displacement apply the apply it back to the high res and then export the high res with the uvs on them then do the shading uh using the various maps that you've created and try to come up with something the technique that i showed in terms of uving should work with with anything that had that is basically similar to this uh we're going to talk about another technique in a week eight i can't remember one second in week nine so week nine we're going to dive deeper into the uh uv creation and hopefully uh in that week we're going to learn a couple more methods that can solve dealing with a variety of other complex meshes and then and then once you have the high-res mesh you can start shading it if you're not very interested in doing the uv creation and the low-res and applying it that's totally fine if you just want to focus on the shading pipeline as well that's totally fine if you do that you have to shade more than one asset if you don't do the the uv process you need to shade at least three or four different assets during the that week and then um basically try to use the same techniques that i showed in this week and in the next one we're going to dive deeper deeper i didn't want to go over a lot of details this week i think this is enough to get um started with and then make sure that you get the asus workflow up and running uh and installed and i think that's pretty much it thank you so much for watching and talk to you soon bye you
Info
Channel: Rebelway
Views: 7,472
Rating: 4.949367 out of 5
Keywords: Houdini Tutorial, Houdini, SideFX Houdini, VFX, FX, VFX Industry, Special Effects, Visual Effects, Simulation, VFX Tutorial, VFX Tutorials, Arnold, Arnold Render, Arnold Renderer, Saber, Jlassi, Saber Jlassi, Rebelway, Arnold Tutorial, Houdini Tutorials, Rendering Houdini, Houdini Rendering, Realistic Rendering, 3D Rendering, FX Rendering, Realistic, Real, sidefx houdini tutorial
Id: hfmaMrkbbkM
Channel Id: undefined
Length: 179min 59sec (10799 seconds)
Published: Tue Jan 12 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.