Houdini Foundations: Pipeline in a Box | Robert Magee | SIGGRAPH 2019

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] [Music] welcome my name is Robert McGee I work at side-effects software and I'm here today to talk to you about Houdini foundations we put a lot of tutorials out on our website at various different levels and the Houdini foundation series is designed to be an introductory set of tutorials to get people started when they're first learning Houdini so this particular presentation is based on the new tutorial we just posted up last week and the general concept is Houdini as a pipeline in a box where we're gonna look at the nodes networks and assets that you use in Houdini and talk about how they go beyond just creating end product but actually about how they create workflows and how those workflows can help you in a pipeline whether you're a small individual artist doing your own work or whether you're a larger studio trying to pipe lots of work through the system so the three products we're going to talk about primarily in here are Houdini obviously Houdini engine which is a very important technology we have that sort of works under the hood and PDG the procedural dependency graph and we'll talk about how that can fit into this as well and pretty much we're gonna build everything from scratch that way you'll be able to see how we go from our first node all the way to the the system that we pipe through PDG so just some just define some concepts and ideas within Houdini like we said it's a node based system which means that everything you create in Houdini creates a note these nodes get connected to build networks and each network defines a recipe something that can be done over and over again and that ability to use it over and over again maybe with a little tweak here and a little tweak there is what begins to create this concept an idea of a flow of data and networks can be packaged up into digital assets and what that means is that you take the network we have and you collapse it into a single node that single node can then have a high-level interface built for it simply by dragging and dropping parameters from the nodes inside and that high-level interface can help you as you then take it back into Houdini as a tool and that interface will be used for that tool now what's interesting here is all the complexity of the original node network still exists within the asset but it's buried and locked down underneath what's also neat is these digital assets can be built mainly through normal artists workflows so you don't really have to be a programmer to make these kinds of tools lots of programming opportunities if that's what you like but it's not a necessity to build it agile asset and the digital asset essentially becomes a tool and it ends up being an equal partner within the Houdini environment to other nodes and as a matter of fact a lot of the Houdini tools that ship with the product and are up on the shelf they're actually digital assets that we built to help you as you work so this ability to make digital assets can work at many different levels so pipeline in a box this is the essence of the fact that everything in Houdini is about building these networks building these recipes and ultimately potentially packaging them up so nodes they could put in the networks and wrapped up into assets and then shared and this can be a really powerful thing and even if you're an individual artist you know there's probably lots of repetitive work that you have to do to get a project through a pilot you know through it from from idea to reality and having the ability to package up some of those workflows and speed things up can make a really big difference so the first thing we're going to talk about is let's just talk about nodes and we're going to create this sort of toy block and in that you'll be able to see how Houdini lays down the nodes and begins to create the networks that flow flow the data so in the interface in Houdini you've got the viewport we're gonna put just put a cube down there at first we're putting something down at the what's called the object level and we can resize it using some of these parameters up here to get the cube that we want then we can sort of zoom in get a little closer to that now what we want to do is we want to select the top face of this so that we can do some poly extrude and you'll notice this dropped us down into what's called the geometry level where we manipulate geometry and notice that the box has a node and now the poly extrude had a node and then the parameters sit on those different nodes if I want to change the shape of this I can put an edit node down and I can take that and turn that into a circle so I just right click on here and say make into a circle and again each that edit is a note of itself I poly extrude again I get another node and this is the sort of flow of all the pieces that go into this and I can any point set the right the accurate parameter and work with that now what I'd like to do now is bevel some of the edges but not all of the edges so in order to get the ones that I want I'm going to use a group oh wait sorry before I get there I go to put the hole at the bottom so again a couple more polygroups press Q to get that do a bit of an inset and then Q again to extrude that again and then that will allow me to push that up into there and then put a value in there okay so now that I have all this I want to do some beveling of some of the edges so rather than just select all the edges I want by hand I'm going to use sort of a Houdini tool the group node to find the ones that I want so when I first do it I say I I'm gonna call this bevel underscore edges by default it uses the selection that I had which was all edges which I don't want that so I'm gonna turn that off and then I'm gonna go down here and I'm going to actually say give me a minimum and maximum angle and I'll make that basically 89 to 91 and because of that you'll see that it's actually selecting all the sort of right angles but not the shallower angle so that gives me exactly the edges that I want to paly bevel and being able to do it with a group like this is sort of you because even if the shape that I fed into it changed over time it would always find the edges that I wanted no matter what and that's that's something that makes something just a little bit more procedural type in a value for that and we'll add in a little bit of detail just make it round and there we go and this gives us our r1 our first block and we could just look at that back at the object level let's just give that a name single brick and we can look at it with subdivision surface just just - let's do that and then select it and just we'll just shift + will allow us to look at as a subdivision and there we go so we got one brick and this was built using a series of nodes wired together to give us a flow of data so the next thing that we're going to look at is network so what we're going to do is we're going to take flip this little guy here and we're going to create a series of nodes that convert him into a brick version of the model and you'll notice here that not only do we have the bricks in the shape of the of the creature but also that the coloring of the texture map is going to get pulled over and applied to this as well and so we can do this very simply using the nodes that we want to extend with here so we'll hide the brick bring in this shape this is one of the test geometry shapes that we have with with Houdini and we'll just go in and just quickly clean this up a little bit let's make it a little bigger so that it suits the size of the bricks we have and raise it up from the ground and then we can look at that from the four different views just got to make sure that it's sitting on the ground nicely and there we go we're ready to go now to make this into points that's a fairly simple thing in Houdini we have a tool to do that down at the geometry level and it's called points from volume so we just place that down and the job battery feeds in and it creates a whole series of points which we can just highlight those in yellow then you'll be able to see see them a little bit better there we go so you'll see that the points exists within the shape of the of the creature and not outside so that will help us in the building of the bricks so now that we've got that let's go in and just change the name of that and now we can take the points and the brick and by selecting the two of them we can combine them into a single Network and that will allow us to work with them a little bit more effectively so using a tool up here called combine we combine those into the same network and currently they're going into a merge node so we're getting a bunch of points in a brick merge together we don't want that so we're gonna delete that merge node and we're going to replace it with a copy two points node and this copied two points node we can turn on pack instances so this would be a more efficient way of copying geometry to the points and there we go now it's looking a little bit wrong and part of the reason here is that our volume two points was at point one separation but our bricks were point two point two point two so we changed that to point two that's looking much better now we're not seeing everything right now we're only seeing the inst the packed images right close and that's because there's some display limitations it's getting called based on a polygon limit so we can increase that to fifty million polygons so and that's it'll display fine because we're using instancing it's fast and it's snappy and it's it's doing the job that we need so now let's take the the nodes that made up the brick and we're going to put them into a just a box here a network box and that will allow us to take them and just collapse them because you know they're not really going to change that much at any point in the process and we can simplify our network to make it easier to work with you can organize any part of your network using these kinds of boxes collapse them just put off decide you're ready to go and now we consume in and we see that in essence we've got a brick on one side we've got the the flip on the other the points and then have the copy two points so the next thing we want to do is let's just add some color into here now you notice that we're adding the colors to the points we're not adding it at the end of the bricks we're putting them on the bricks and then the bricks are picking up the they're picking up that color when they get instanced so that will looks great in the viewport but if we actually did a bit of a test render on that we're gonna find that it's not working from a rendering point of view quite yet we have to do a couple other steps to get it to render properly so the color attribute that we just placed in the network is not making it to the render so the way that we do that is first we're going to create a material network and we're going to put an actual material in there because right now we're just using whatever the default material is in Houdini and we want to bring in a principled shader we're gonna put that in that Network and we're going to call that brick material and we're going to use that drag that put that on to the geometry using a material node here so we'll do this down at the geometry level cause you've got a material node set the display on that and basically tell that to go look at the material that we had and there we go now that made it darker gray but it didn't bring our colour over yet it's a couple things that we need to do to make that to work first is I don't want the darker gray I'd like to have it a little bit lighter so go back to here go to the surface area and we'll change that to point let's say 0.5 point five point five and that lightens it up a little bit then there's a little checkbox here use packed color and once we checkbox that the color attribute is now going to be passed on to the material and will be rendered properly so that shows you how we can take advantage of that so if you look back at the original illustration that I showed you we had done this slightly differently but before we get to that what we want to do is we want to say is the system we built robust enough to handle other kinds of shapes so we're going to put a switch node in and now we're going to bring over a platonic object we're gonna feed that in the other side we're gonna just change the shape on that you can sort of see it in wireframe here we're gonna change it to a Utah teapot and just raise that up up a little bit from the ground so the question is if we feed that into the same system will everything we've created so far follow through will the flow of data will the recipe apply so we go in and we change the input to one and there we go we've got ourself a teapot doing all the same things that we had with the rubber toy so that's how sometimes when you're building up an asset like this it's good to have this kind of little test to make sure that that it can do what you need it to do now the next thing we want to do is instead of just using the red color we want to take the color from a texture map that came with the original model and we want to use that texture map to drive the color on on the creature so this was originally a digital asset we can actually open up that digital asset and if we go to one of the tabs here if we go to the one called extra files we can save that to disk and we're gonna put that in the texture folder right there in our project we could pull it right from the digital asset but having it on disk you'll see later especially when they do PDG those advantages to having it on disk so then the question is well how do we get the texture map colors onto the points so that they can be passed on to the bricks so the way we're going to do that is we're going to use pops which is a we have an expression language called vex and bops is an interactive way of building up this and all we're going to do is we're going to put in a texture node now this is the same language we would use to write a shader in Houdini but we can use it to deal with attributes and other things within the the world of geometry so we're actually going to bring in a texture map and that's going to literally take the colors from the texture and apply them to the points on the surface now we want to promote one of the parameters up so we're going to take the texture map which has the default of mandrel which is one of a default texture we come with and we're going to promote that as a texture map and that will go up to this level here you can see it right there and we'll leave that texture map in for now it'll it'll work for testing purposes and and later we can replace it with the one we saved a disc now the first thing we have to do is this attribute is a vertex attribute and we want to promote it to a point attribute so the first node we do says take that and vertex attribute make it into a point attribute this is CD which is color then what we want to do is we want to transfer that color based on distance from the model to the points so we're going to wire the points from volume and we're going to wire that in and it's a little hard to see there but you can see that the points now have color and that color is coming from the texture map that is being promoted over so the next thing is we're you know late just to give us a little more control we're going to put another switch node down that way we can choose between a plain flat color or a texture map and this will become important later when we turn this into a tool but it's just helpful from a workflow point of view here so we got thing called texture switch and if we switch from 0 to 1 you'll see now we have the texture map from the mandrill pick being applied to the points on the surface now if we go back we can click on to here and we can go into our texture folder and get the texture and there we go now we've taken the texture map specifically designed for flip and we've applying that for a rubber toy onto the bricks okay so now that we have that the next thing we want to do is build an asset to create a tool out of this which means taking the network we've got collapsing it into a single node called a digital asset which will function as a tool a reusable tool that we can use in a bunch of different ways so let's get right to it so back in this network we're going to select everything except for the teapot because the teapot we're gonna use is a as an input for a custom @ asset we're gonna go in and turn this into an asset now a digital asset goes into a file on disk called a dot HD a file which represents Houdini digital asset and that gets stored on disk that holds the definition of the asset and we're going to put that within our project directory we have a Hg a folder there we'll put it in there and we're going to call it brick a PI so this is gonna be the brick of I tool and we accept that as soon as we do that it's going to bring up a window which is where we can start to set up the interface or the UI for this particular tool so the first thing we do is we want to say well we don't have to have an input but if we do what we'll accept one of them and then what we can then do is dive back into the network which was collapsed let's just rename it before we do just so we recognize it easily brick by asset and if we dive right into there then here we go we can now go in and start to promote parameters things that are in the network that we think we might want to use up at the top level so the first thing we bring over is one of the switch nodes and this is the switch node that allows us to switch between the different shapes so we're currently it's called select input and it's got numbers so it's a little boring it's not going to communicate very well with anyone but it does work we can go between the teapot and the shape but if we want to make it a little friendlier for people who are going to use our tool we might want to go in and let's change the name to shape so that'll be easier to figure out and then instead of a slider we've only got two options so we're gonna make a menu out of it and the menu options are going to be 0 for rubber toys so it Robert will always be the default shape and then we can also go and one would be the custom shape so that's the input that's coming in from the teapot but work because the teapot sits outside the tool we'll be able to plug other things into that tool later on to get custom results and and there you go you can sort of see that the ability to pick those two there now we can also bring over the texture one so that that would allow us to switch between either using color or using a texture map and again it uses pretty much the same technique to set up a menu between color and texture so anything you need to build into the tool you can do it this way and as you can see I'm not writing code to do this it's all very friendly interface and artists can essentially start to build their own tools as they switch back and forth between these different options now once you have that you know you can then start to do other things like say well let's bring that color up because you know we might want to change the color or we might want to take that texture map and we might want to assign a different texture map so let's promote that up and once you've got all that you can make sure I would just make sure that the default is the mandrill texture that way to always find something that'll change it on us for the moment but that's that's fine so the mandrel is always available so it's easy to put that as a default and there we go so all of these bits and pieces are starting to come into play and we're starting to create a high level tool based on the network and the flow of data that we had creating this so now we've got this working as a tool pumped into the into the into the rubber toy but what we'd like to do is let's create a different test geometry let's put down the crag that is a sea monster that we have and let's see whether that same tool can function with this object as well again making sure the assets always good along the way to test out what you've done make sure that it works in a larger context so there we go we've got the shape of it and just down at this level we can go in and type in brick if I there's the tool and by default it's a rubber toy because that's our default shape we have to change it to the the shape to custom in order for it to respect that and create this new one so that works out great and just like we did before we can bring up the the texture map for that particular shape and save that to disk and that way we can make sure that the Craig is using its proper texture so we go and we pick this and we go get the texture map and there we go so now we've created something where we can have a texture map and a model and convert it into a sort of a brick version of itself which is great now just because it's an asset doesn't mean that I'm finished because these assets can be updated and by updating one asset you change the definition on disk which means all the assets benefit from the change that you make so what we can do in here is say well what if we want to animate this what if we'd like to see the bricks build up from scratch well how could we do that so the way that we're going to do that is by essentially deleting some of the points based on time so just like we did with the group before we're gonna put another group node down which is going to grab the points and we're going to put an expression in here that will help us hide some of the points so we're gonna do it based on start and length and the length we're gonna put an expression in which is dollar F which is the frame minus one times 20 so this will take the points and get rid of them we're going to invert the range and so they will the points will sort of disappear as time goes by nub at this point we're just adding them to the group they're not actually disappearing yet to do that we would actually have to add another node called a blast node and the blast node will take in the input of the first and that will allow us to see this in action so if we just look at the points we can see the points grow over time and they're growing in sort of a random order there B but they're growing based on the point numbers on the points so if we want a little more control over that like you know control is always good what we can do is we can put another node in here called sort and sort will allow us to say you know what start from the ground have a vector going up and we'll and that will number things in that order so now you see the lower bricks get built first and then they build up from there so we're controlling a fair bit inside this network to create this animated brick effect so that's great another function or functionality within our tool the ability to animate that and just like everything else we want to make that an option we don't want to force you to animate it but we want to make that an option so we'll put another switch node down and the switch node will allow us to take either the animated ones we'll call this the animates animate switch animation switch and we'll be able to feed in the uh Nana mated version on the one side and the animated version in another and then we'll go out from there and then just like we did before we'll be able to promote that attribute and so right by default it's not Adam 18 if we switch this to one then it does so always the ability to add control and again I'm doing all this without writing code I'm doing this as an artist working with these nodes and playing with these attributes so again I have to say well I need to promote this up so I'm going to go in and I'm going to promote that switch node up but before I do that let's just add a separator in here so we can separate out some of the features from some of the other ones and we're going to promote this up and this time we're going to call it animate and instead of having a menu we'll just have a checkbox because it's either on or it's off we've only got the two options so it either animates or it doesn't so we're going to choose toggle and we're going to set the default to zero or now we're also going to bring in another parameter so we multiplied the speed by 20 which is just a random number we picked out of our head but we may want to have more control over that so we're gonna create an attribute called build speed and we're gonna use the build speed in place of the number 20 so that way if if we have a particularly large object and we need the bricks to draw a little faster we can control the speed of that using this and we can actually set the range when we're setting up the tool to lock it down in one direction we never want it to go lower than one and we don't want it to go you know ideally beyond a certain point so we accept that and these are now functionalities on the tool and we're just going to change this expression to instead of using the 20 we're going to use a channel reference to go get that build speed that we had so this is an expression not quite programming but it's a it's starting to dive into that territory but it it's still pretty artists friendly so once we have that we saved the asset so all that changes we made get stored into the definition on disk and then we lock it ups and when you lock an asset you can't touch the nodes inside and this is what happens when you give a tool like this to somebody else they shouldn't be touching what's inside they should just be playing with it what's above and notice the speed was very slow because it was a 1 let's bring it back up to 20 and it goes back to where we had it before and that's that's perfect so the tool is definitely doing the trick there and what we can do is we can look over at the second one the squab go down into its level and say what happens if we animate that and it's pretty big so it's not gonna go very fast so we're gonna multiply that by a hundred to get a much better speed on that okay so that gives us I think enough functionality in our asset and before we go on I just wanted to show you another kind of digital asset somebody created this is from the community mark shibori and he created this amazing book asset so you can see how far you can go with something like a digital asset his allows you to get the shape and size of the book what the texture is whether it's animated whether the books open all of that built into what the asset is so this is the kind of extent that somebody can go to really push the the idea of a procedural asset as a tool builder as an asset builder within a pipeline and you know he's got details for the shaded edges the serrated edges so just imagine building up a library of books quickly and easily using this and those as later we're gonna see those ways of automating this so you can use his asset to pump out you know a hundred books or a thousand books all unique based on randomization of some parameters and things like that so it's pretty pretty great example and I want was appreciated that he let us put it into into our presentation so we just did the pipeline in a box we built nodes and networks flow of data built an asset that we can share with other people using Houdini well now we want to talk about breaking out of the box a little bit about being outside of Houdini and using things like other applications or the farm to really extend this procedural framework and how it works so we're gonna talk about two main technologies Houdini engine and PDG so Houdini engine plugins are something we have available that allow you to take these wonderful digital assets we created and use them in other applications applications such as Maya 3d studio Max Max on and on engines like Unreal and unity so we left this diagram a while ago where we had our network's making an asset feeding into Houdini well we had customers come along and say but we want to use those same assets in other applications is that possible well of course by default no because you need Houdini to make that possible so what we did was okay to something called Houdini engine and Houdini engine can be plugged into these host applications and that allows a Houdini did July set to basically get processed and delivered to the host application under the surface the Houdini library's cook the nodes and do the work necessary to deliver that and then if they use the high level interface which does become available in the host application that interface will stir up a new cook and a new updated version will become available and so that's pretty exciting and we're gonna we're going to look at that by taking a look at the brick of AI asset inside two other two applications so here we are in Maya and we're going to bring the brick fi asset in which by default gives us the rubber toy so that's that's because that's the default shape if you look over off to the side you'll see that a lot of the functionality that we created is here for instance we can animate this by setting a certain speed to this turn on animation and now we can scrub in the timeline and see this animated so the same feature so same thing that we had working in Houdini is now working here now when you animate it also generates a cook so it's it's cooking based on that now the other thing we can do is we talked about the ability to have a custom shape so what we want to do is reveal a second shape here this is a sort of a statue of a rhinoceros and we want to brick by that so the way we would do that is we would shift select the Rhino and we would say bring that selection up and there we go we're going to create that custom shape so the custom shape is now feed in there we can hide the original Rhino and then there we go we've got the brick refine shape now the one thing you'll notice isn't coming across is we're not getting the point colors we're not getting the colored texture on the points and we're not getting the texture map and the reason for that is that it's not everything always goes into the plugins there are some capabilities that exist within Houdini that do not particularly exist inside the host application and the way the plugins work and in some cases that side effects didn't program that that connection or that bridge in other cases the host application just can't handle that kind of information so in this case here we just have to apply a shader and render at some other way but it is good to be aware as you're building something up to constantly be testing because your your plugin might not do everything that you expect it to do you might have to find another way for that to work now here we have the same asset being brought into Unreal Engine so here we have the rubber toy in the space here and it can be moved around and again we're not getting the color of the texture but we are and the animation probably wouldn't make sense in here because the engine cannot work at runtime so whatever we do from an animation point of view wouldn't function at at runtime but we can use it to build up this world so in this case we're going to do the custom shape and we're going to turn those that back background platform with the staircase and brick if I that so the way we do that is we say we want to make a selection from here and we can use the the outliner up here to find those shapes so we'll select a bunch of those shapes and we'll go accept those and then it's a little psychedelic so we'll hide the original shape and now we can go and walk around and see what this is like now this is not just a bunch of bump sitting on top of there this thing is now filled with bricks but one thing says nice is when we go into Unreal Engine we take advantage of their instancing so this is still pretty snappy even though there's tons of geometry here but it's all properly instant so it it's looking it you know it looks pretty good and it works in here just the way we need it to so you come around and there's my brick if I'd shape within the Unreal Engine and and there are a lot of game studios using Houdini to create digital assets to customize shapes and build things and build assets and level designs inside game engines so very interesting that the same tool we built a new Dini we've already been able to use it in a couple different contexts now just again as an example of how far you can go with this this is an example by an artist named marina Alexandra batting I know are there preamps out right sorry she's created this wonderful set of digital assets for building buildings in a context to use in unreal and she created assets for a bunch of different things not just the building's themselves but also pieces like the the telephone poles so she can put ass buildings in and change their type what does there look like put some textures on them play around with the poles they got all the hang filled it filled out and here's some of the iterations and possibilities and this is where digital assets come in because once you've got a good asset built it offers iterations and possibilities and procedurally generated things that would be you know a lot of work to build by hand over and over and over again so lots of save time and this is where this idea pipeline comes in you're you're speeding up your pipeline you're making it more efficient you're automating things and that's something that Houdini can give you which is important so the next thing we're going to talk about is the procedural dependency graph this is a technology we brought out recently it's a section of Houdini called top sort ask operators and it works a little bit differently in the fact that it connects out to the farm so the way it works is you've got these new nodes called tops and when you when you feed something into them you can say how many tasks do I have so this thing says okay I've got a certain number of tasks and then you've got a certain amount of nodes on your cores on your computer so you get a scheduler this is the local scheduler and you say give me one quarter of the nodes of the cores that are available so I'm just going to take three of them and so it'll run through and run through the different tasks three at a time until it finishes if you want to you can go as high as all the the cores except for one and that would speed things up now you got more of these tasks being done at the same time and spinning the outer result of course PDG is not really about working on a local computer it's strength comes when you go to a larger farm and using something like deadlines or HQ and now suddenly you can see this thing lighting up because it's just doing tasks left right and centre all on different computers and so on so this takes the procedural ISM what Houdini does and Bend extends it out into a larger context and then once it finishes it says job done gives you a little tick mark and the top nodes essentially become a little verification that your pipeline is functioning properly and delivering the results that you need in the end so let's look at an example of that and again we're going to use the brick fi asset just like we did before so we've got the top network right here and inside is this local scheduler designed to use as many cores as are possible and now the first thing we're going to do is we're going to bring in some files on disk so we're gonna use a file pattern and we're gonna go to a directory that currently has four models in it so we're gonna pick one of them what we're gonna replace the name of the model with a star so now what we're gonna do is whatever is in that folder we're gonna get it all now in this case it's only going to be four but if we put a hundred models in there would go get a hundred bottles so we generate that and what you can do is you can we've got this item viewer that allows us to see so and we click on a dot we can see what that dot is producing so there are the models that that dots producing now we put a node down called an HD a processor so this allows us to go and get the brick' fied digital asset and actually feed it with these four models so we go and get the asset and we to make that work we got to do a couple things first is we want to use the custom shape otherwise you're going to get four rubber toys and we want to use the input from the node above as the soft input for that processor now if we generate and cook that it's gonna go think a little bit and now when we click on this we're gonna see we've brick' fied those four shapes using this thing going off and doing this job and spinning the results to disk now it they all use the mandrill texture and we'd like to use a unique texture for each one so we can alt click this node over to here where we can say instead of getting me geometry files I've got four equivalent texture maps on disk and I want to generate those so if I go into there and say cook that node you'll see that well we this case it won't display in the viewport but if we bring it up you see I've got a texture map for the pig and I've got one for each one of these that fits the UVs of that particular shape now in order for both of these to feed the digital asset what I need to do is do a partition by node which allows me to feed everything in but then organize how the things are feeding through the system so if I go and I just set a couple options here these options will make sure that I'm getting the right Association between the texture map and the model that relate to each other so if I cook those and I middle click on here well if I click left click on these these they're just gonna look like the models because the first input is the geometry but if I middle click you'll see that the first thing is geometry but the second thing is the texture map and that means both of them are part of the picture now now if I go and I generate that again what we're gonna find is that the texture maps aren't working yet and the reason they're not working yet is even though they're feeding into the system there's nothing on the digital asset that says take advantage of this so if we click on the digital asset you'll see there's the mandrill dot pic we need to change that to say give me the input from the PDG coming in so we're gonna use an expression called at PDG input dot one dot zero is the geometry dot one is the texture map and once we feed that in then we can dirty and cook this and we're going to get the the texture maps put on here the way that we want to so if I have a directory of models and a corresponding directory of texture Maps I'll be able to produce as many of these these things as I want but you know what just seeing them here isn't gonna help I need to communicate this to other people in the office to say look this is this here's what these these these these models I've generated look like so I can render them in mantra now to do that I need to set up a little mentor scene with a camera it doesn't look brick if I'd yet but it will when I actually do the rendering and that I can just make sure that I use that what's called the PDG index so I can number these things properly when it gets saved to disk so the the one-two-three-four based on the index of the PDG coming in the language in PDG is a little different than traditional DD you are getting the ideas of index and input and it starts to feel a little more programming but still this is all done I'm you know more as an artist I haven't written tons of scripts or any scripts to make this work it's just all working out of the box so now I generate the rendering now I definitely sped up the rendering so it's not that fast but it I didn't want you to wait and there we go so there's one of them one of the examples but we've got four of them and we want them together so we're gonna take the four and feed it into what's called a wait for all node and then we're gonna feed that into an image mosaic node and this will allow us to take this and build a mosaic image magic which creates a mosaic out of that and if we cook that we can middle click and that will bring out there we go so if we can do four we could put more models in that directory and we could produce a whole bunch more of them and not with changing anything like that's using exactly the same network that I did for the four I can do these eight just by pumping them through the system and waiting and if I had more models I this would have been more impressive but just anyway you could go on and on and scale up but the farm and the cloud become part of this and you can take this procedural idea and and take it off to the compute form and do hundreds of these thousands of these if you need to for a project you know so if only there was a franchise that that that had little bricks characters in them maybe they maybe they could take advantage of this anyway so there we go so that's PDG now this is an example that we have as a tutorial a foundation tutorial on creating this and this is an example of sort of bringing two things together so this is actually a digital asset that has PDG in it and through our Houdini engine for unity implementation we can actually take advantage of PDG and spit it out to build buildings for this particular scene so if you look here on the side its talks about you know waiting cooking cooked failed those are the same codes that you'd get on the little dots in PDG so we can get the same feedback here within p within the the the unreal or sorry the unity interface that we would have got from PDG as we build up this city so here's a city built out of a particular basically starts with a a map a black and white map converts that into geometry and then builds a city out of it so we want to go get a different map we can say go give me this map instead and then go it just runs through and process that and PDG is working potentially going to the farm and going and building all these buildings and spitting the results back here into unity so all of these things can be work inside each other and around each other and together assets inside you know unity plugins and so on and so forth so it's it's pretty pretty pretty fun situation there and like I said there's a tutorial for that if you want to follow along and get an understanding of PDG so the next thing I'd like to talk about let's make sure I saw a nice a little time here future pipelines now there's going to be a there was a much bigger presentation this morning on this on the new Solaris technology that we have connecting with USD I'm just going to do a little preview of it but definitely either watch that presentation on YouTube which is it should be up now and there's another version of it tomorrow sorry on Thursday if you'd like to come back and see it live so basically USD is a big pipeline solution that's coming and we're all gonna be using it soon no question about it we've created a new technology called a new part of Houdini for Houdini 18 called lops or lighting operators and it is native USD everything in it brings in USD spits out USD everything brought in gets converted to USD and it's going to be a really great way for you to take what could otherwise be maybe a little technical concept and turn it into a more friendly artist concept looklive look dev layout and lighting as the main purpose and the code name for it is Solaris it actually works within Houdini Houdini core and Houdini effects but we call it Solaris just to help people sort of get grasped around the idea that this is something really new and exciting we've also bringing out a new render a replacement for mantra called karma karma is designed specifically to connect to Hydra and USD and will work with Solaris it can also see erratically render USD directly using the Hydra interface this Hydra interface which is the the API for rendering USD also will have a whole bunch of other renders which will work within the Houdini interface as well Renderman working already other renders will come into play as time goes by and any Hydra compatible render will work in that way so I'm just gave you a little sneak peek of the interface of this so karma is currently working in the viewport so as we make changes and updates that is this is this is its re rendering on the fly right here so this is sort of setting up different shots with different lighting options so because it's a lighting workflow you'll have nodes specifically for assigning lights and you can have different shots and and each one of these shots can spit out USD files with the proper naming conventions and everything so that so that you can build up your USD library and all the bits and pieces that come in can all come from USD as well again you should watch the full presentation to really get the lay of the land but definitely an exciting next step for Houdini within a pipeline and of course these tools are so artist friendly the again that pipeline in a box the artists being able to sit down and have a sophisticated a pipeline at their disposal as a big studio does that's a pretty exciting thing that Houdini offers for people who are working you get that pipeline mentality right from the first node you put down and you carry that through all the way to final lighting look Devin and rendering so we just looked at a whole bunch of technologies Houdini engine PDG little hints at Solaris and and an integration of USD let's talk a little bit about what this means this approach we take the pipeline the box creates reusable recipes using nodes networks and assets you can bring these procedure workflows into your favorite apps using engine plugins you can extend Houdini's pipeline in a box to the compute farm using PD G and you can utilize the compute farm in new ways to get more work done faster and with Houdini 18 you'll be able to integrate USD into a comprehensive look dev lighting and layout piping and layout and lighting pipeline Houdini can help you build the ideal pipeline pipeline in a box and I hope I've been able to illuminate you a little bit on what those possibilities are and how you can begin to get started like I said to me this is a foundation we have a book a print-on-demand book online Houdini foundations and we're constantly trying to add new tutorials introduction to concepts and ideas within Houdini general model animate and render there's the top PDG demo on city building terrains and of course flip his tutorial just got put up last week and so that will introduce you to the node networks and assets and we plan to have more to come so if you want to get started with Houdini just come to the website under the learn menu getting started not only are these tutorials there but tons of other tutorials from lots of great people you know supporting the community and helping people get up and running so thank you very much I hope I'm being able to teach you a little bit about Houdini and got a short time for some questions before we're gonna get kicked out okay so I told talk to you everything good okay thank you very much
Info
Channel: Houdini
Views: 16,240
Rating: 4.972477 out of 5
Keywords:
Id: F-gKdiZM9pY
Channel Id: undefined
Length: 51min 24sec (3084 seconds)
Published: Tue Aug 06 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.