Houdini 18 Launch Presentation

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

It's amazing how much effort put Side FX on Houdini, I'm actually impressed by the amount of improvements they make every release.

πŸ‘οΈŽ︎ 19 πŸ‘€οΈŽ︎ u/Fuuck_iT πŸ“…οΈŽ︎ Nov 07 2019 πŸ—«︎ replies

So many great tools, SideFx are just killing it.

πŸ‘οΈŽ︎ 7 πŸ‘€οΈŽ︎ u/mattbarkerart πŸ“…οΈŽ︎ Nov 08 2019 πŸ—«︎ replies
πŸ‘οΈŽ︎ 1 πŸ‘€οΈŽ︎ u/schmon πŸ“…οΈŽ︎ Nov 08 2019 πŸ—«︎ replies
Captions
[Music] [Music] welcome everybody to the launch of Houdini 18 my name is Chris abarim the director of marketing at side-effects 2019 it's been another amazing era over the last few years we've had huge growth and on our side that's from an ever improving product it's from increased awareness adoption learning material strong focus on schools where we've had amazing growth all over the world but really the growth is thanks to you the community the the heroes in the studios and the schools the freelancers around the world helping people learn helping spread the word on Houdini whether it's creating tutorials delivering presentations creating courses in the schools crafting tools or just leaning over somebody's shoulder and giving them a quick tip on how to use a note kudos huge kudos to you guys and we just thank you thank you thank you for helping us deliver this product to the world and use it and create such amazing amazing work with it so to support this growth we've invested we've invested in the team at side effects we've almost doubled over the last few years in size in departments all across the company we've invested in our partnerships with technologies the integrations with technologies across the pipeline we've invested in learning material for both new users and experienced nusers because as we all know we're all learning all the time and especially with Houdini so with Houdini 18 there'll be a new batch of learning material which some of which will come out on day one and some of which will roll out over over the next few months so keep an eye on side-effects comm slash learn and last but absolutely not least we've invested in the product and here to tell us about all the new additions our VP of R&D Kristin Barr Gil and senior product designer Scott Keating good evening everyone I'm Kristin and this is Scott welcome to the launch of Houdini 18 which is another release in more ways than one once again we're particularly proud of the project Solaris which stands to become a game-changer for lighting professionals but also for full-on pipeline development also with the project solaris and beyond we've taken some pretty bold design decisions with how we give you access to the physics in Houdini and also beyond that we've taken our physics solvers to the next level in fact we've looked at the whole a landscape of solvers in Houdini for for this release and we've touched all of that and we sank our teeth really deeply into interactive modeling and also computational geometry in this release so just to give you an idea we've touched or created about 200 softs in this in this release and we're just getting going all right so let's start with the Solaris Zelda just a quick intro on that pass and then pass it on to Scott so this is a unified USD based environment for lighting and layout and rendering and looked up and what's really key about this is the USD part that's Pixar's universal scene description which runs through thee through the veins of the Solaris graph which is called lops by the way in other context as as real data this is a native USD implementation it is with USD at the core there's no import into some some proprietary API and then export you have USD throughout and that gives you a lot first of all it gives you full access to USD it's very faithful Solaris in the way it gives you access to all the USD componentry and functionality nothing gets lost in translation because there it is it's USD and then thirdly equally importantly anyone in any that is fluent in USD and Hydra which is the other API that goes hand-in-hand with with USD so any software like that will automatically plug in 2 into Solaris easily and for our experience with third-party renderers we can we can tell you that that's been the case and it's a joy joy to see that all right so if you can press next please so the pipeline aspect of that is interesting because when we set out to do this we were thinking alright we want a cohesive brand new system for lighting and and one that of course opens up too many renders but it's for lighting and rendering and whatnot and then we discovered by going through USD the people that got most excited first were pipeline people and that's what we've been saying now for the couple of years that we've developing this and you'll hear it from someone in the audience later tonight it's the pipeline people that I found it immediately useful and very robust and addressing exactly their needs so yeah we think that Solaris is a seminal piece of architecture in Houdini not just because it embodies our vision for a unified system for lighting and rendering but also because it exposes us D in all its entirety with nothing held back with nothing tainted and also it gives it to you it offers to you in a way that's easy to consume and understand someone said a few months ago Solaris gets it and we hope that you guys do too so next is something called karma so as we're writing this environment for for lighting we couldn't continue with mantra mantra had an architecture that belonged you know in it in another in another environment not in something that's USD native so we decided to set mantra aside and write a new renderer this is what karma is karma is USD fluent Hydra fluent and it is excellent thanks to Hydra at doing IPR which is something that mantra always struggle with but I want to clarify right off the bat that karma is not just a preview renner karma is the future replacement of mantra it is a full production render it is currently a cpu engine but we have every intention in fact we've started but very early stages very early stages we've started to look at the GPU architecture for it as well karma is a fresh little kid hence the beta stamp in Houdini 18 but nevertheless I think it's a lot of fun and you'll see it a lot it's got slides with that Scott take it away and I'll walk you through all the new features of Houdini 18 and we're going to start out with Solaris but because it's sort of new and exciting very happy to share with you so first thing I want to mention is that earlier this year we we did a sort of a reveal of Solaris where we talked a lot about USD and pipelines and how everything works together as this technology that's all really really important but a question a lot of people had was well what if I've already you know done setups in here Dena have object level objects I have materials what about me like how do I transition into this new world and so we've put a lot of effort into taking a scene like this an object level scene and easing that transition by creating nodes that will import as much of that possible into Solaris so you can see with this single know the scene import we pulling in all the materials textures geometry we're converting instances into native USD instances and so we're trying to make that as smooth as possible you know USD has its own features its own ways of working so sometimes there's some data loss between here but we've created a whole suite of tools to make it as easy as possible to get things into Solaris and immediately start taking advantage of karma and rendering in this new environment so also when we talked about Solaris before we did a lot of focus on the underlying technology because it's very powerful there's a lot of really interesting things you can do with USD and that sort of brought to the forefront with this node based approach but today we want to focus a little bit on like the actual workflows like what you're gonna do day to day using Solaris sort of as an artist doing lighting so let's start with layout so layout you know essentially bringing a bunch of stuff together that you're eventually going to render there's lots of ways to approach it we're just gonna show you a couple of interesting things here so first of all let's talk about set dressing essentially so we've got this carousel seen on the right side of this node Network you can see a bunch of imports and essentially we're just bringing in some geometry for for leaves things that we want to instance into our scene so inside this instance two points nodes is a geometry network it's a soft network and that's really interesting because it means that you have basically all of the procedural geometry and attribute editing tools that we have access to and the rest of Houdini inside of Solaris inside of lumps so here we're just doing some pretty standard Houdini sort of editing of geometry we're gonna use this group to isolates or the faces that are facing upward more or less because we're gonna add some debris to our scene and so something that's really nice here is that we can use these standard tools but we can see into solaris through the barrier between stops and lumps so much like you can ghost geometry in the background an object level you can essentially show solaris through your sob network so even though I'm painting on soft geometry here we're actually viewing the result in Solaris so you can see I can very quickly paint my leaves on here using standard tools jump back up to our Solaris level the instances of in place properly into the USD hierarchy so they follow all the transforms of the carousel and we can immediately jump into karma and check out the results of our you know quick little layout here and so you can see if that if you're an artist and you're working with tools like this you have a very simple network but you still have access to a very wide range of very powerful geometry editing tools but what about when you have a more complex asset obviously a leaf you know it's basically a couple of cause there's nothing that complicated so let's look at a tree here so one of the really nice things that USD offers you is the fact that an asset is is more than just an asset you know typically you might think of an asset as like geometry maybe some texture maps maybe a material but we're gonna take a look at a different approach to an asset so first of all we've built this little quick tree tool here this is just a little tool we whipped up for this demo so we can quickly create a bunch of trees again it's nice to have these geometry tools available to you inside this essentially lighting package and basically we're creating a high-res version I think it's got something like 24,000 polygons or something and a low res version of it so USD has this concept of a purpose and there's a bunch of kinds but we're looking at render purposes and proxy purposes and what this basically allows you to do is in your asset define when you should use certain types of elements in your setup so basically on the right we're importing our low res proxy geometry and on the Left we're importing our high res you know final render geometry and we're just using this node called configure primitive to say my purpose is to be a renderable object something at render time and the low res is basically for OpenGL and what that means is that as soon as I have set up this basic set up here the artist no longer needs to concern themselves with it I can just look in the OpenGL viewport and see the low res proxy and when I switch to karma for rendering we immediately get the high res version of it and this is built into the asset and so what that means is that you know the only thing you need to think about is what's the asset created correctly if it was the artist who's using it it's transparent to them when they switch to the different views they get the correct model to use so now that we have this asset let's do something interesting with it so we've imported four different trees here just you a reference note these could be set up as variants but for simplicity sake we're just going to bring them in separately and we're going to use a same node that we use with the leaves this add point and sensor we're gonna plug in a grid just so we have a sort of a ground plan for instances to live on and you can see that by default we can just target anything in that second input we're just using a wild card there and then the random seed value lets us see our different variations of trees so okay we've got our grid we've got a ground plane we want to make this a bit larger just so we've got a bit more room to work with and we'll throw down a light here as well just so that we can see what our full tree looks like again nice having this active IP are there so you get the clear rendering results as you're working basically we're just gonna go ahead now go back to OpenGL dive inside our point instance er and start adding some nodes so we're gonna start out with just some grids and you can see a tree showing up at each point on the grid we're gonna just merge those together and then again we've built another little quick asset here to add some attributes on to those points and you can see right away we get now random versions of our trees instance onto those points and because we've taken the time to set up these render proxies everything stays very fast very interactive you can see a large portion of your scene and still work with the tool interactively so you can see that I can still drag these handles around and have the instances update and of course back up in Solaris we can go immediately to Karma and start rendering the instances and I forget exactly how many I think there's like 15,000 trees or something like that but the point is you can get the result pretty quickly we try to keep the in the top right corner the timing visible there so that when we do speed up the view so that you're not waiting around for things to happen you could get an idea of how long something is taking to render okay let's go back inside and here's where things get really interesting because again because we have these access to this huge suite of tools that exists for modifying geometry modifying attributes we can take advantage of those things for render time effects so here we're just throwing down an attribute noise node we're just going to generate some some noise on our points we're gonna use a color node to sort of remap that noise into sort of fallish colors and then we're gonna drive the shader on our tree assets using this data so that you could do things like this previously in Houdini using style sheets and so on but it's quite complicated here it's very straightforward on the point attributes to copy we set the leaf intensity there is an input to the shader with the same name we automatically copy those render VARs into the correct spot in the shader and we can get this nice fall looking forest pretty quickly so it's really nice to have this ability to you know not just drive the placement and positioning of things but to override elements of the assets using these point attributes and we've gone through quite a bit of effort to make sure that when we copy attributes from points on to things like instances or references that we convert them into the correct thing where there are properties or render virus so here's a more complicated example this is a very large sort of city scene several times as big as the centre of London as I understand it so it's quite quite large and there's literally going to be billions of polygons here when we're done so we just want to show you the how capable our viewport is of handling you know production scale scenes and here we're just doing a very simple import of different layers so the sort of roads and streets the buildings which are basically made up of nested instanced assets trees props and so on you can see we can bring in all that detail the the viewport does call data as it comes in to keep things nice and interactive but you can see we have a massive scene and having a massive scene like that is really nice because you can actually look around and choose things you can frame your camera you know with geometry without waiting for a rendering to occur if you don't want to but also means that you can continue to work so in this example we're gonna do something you know it's a little bit cooking show style where we're gonna select some building here that we want to destroy these are all instances as I said and we're going to use a note called extract instances and we're going to take that now from basically a huge point cloud and turn it into real geometry and then we're going to kind of skip ahead because really this is standard sort of Houdini destruction stuff we're gonna talk about that a little bit later but we're gonna use these nodes called saw import to pull that data back in to replace those instances and you can see now we've brought in our destroyed buildings just using a couple of these saw imports and this is happening on its own layer you can see that by the coloring around each node there's these green layers and then these blue layers and what that means is that again somebody doing layout somebody creating assets up front can work at the same time of whoever is doing the effects they can pull the effects out work on it at the same time and using this layering system place it back into the appropriate place without interfering with the other person's layer that's really one of the most powerful concepts in USD and here you can see the the playback now showing the buildings being destroyed and it looks pretty cool so on a much smaller scale sometimes you just need to place objects in your scene so we've created an edit lop and it has this idea of physically based editing so what's happening here is that we're running a simulation sort of under the hood so as I move these objects they interact with each other they they push each other around they have collision geometry associated with them and so we're using something called a relationship in USD to define collision geometry and render geometry very similar to the concept of the low res tree and the high res tree but what unless you do is very quickly place objects in your scene in ways that aren't easy to do using standard transform handles you can get very natural looks you can grab any part of the object and pull it and it will sort of behave naturally you know creating these sort of stacks and piles of things becomes very fast and if you see a little stuttering there I just want to point out that that is not a framerate issue that's using the scroll wheel on my mouse to add gravity to the scene so every click adds a small amount of gravity letting things sort of settle into place and things like these barrels it becomes very natural just tip it over roll it up against the other barrel like again lay on ours can absolutely do this manually without too much trouble but being able to do this in this like semi natural way gives you sort of abilities that that would be difficult to do you require a lot more planning to get it to work whereas here I can simply grab these brooms push them to the other side and we get a nice sort of pile of objects here even just leaning a broom against a table like this you know in a normal circumstance you would need to move the pivot to the corner of the table and so on so again just taking standard sort of tools that an artist is used to and bridging them together with our sort of traditional powerful simulation technology to create an overall workflow like this that just wasn't really possible to do before so obviously you know we talked about Solaris as a lighting package and what that means is that obviously a lot of the time you're going to be lighting things you're going to be moving lights around so we wanted to make that as sort of a smooth as experience as possible and the first way we've done that is obviously the IPR view helps the fact that karma is rendering non-stop but we also made some changes to our handles to make things easier there are indirect drags for changing the intensity of lights for instance so that you're not always having to go to the parameter pane to make these changes there's a look at handle so you can snap your look at to an object you know these are all sort of very expected things for for handles to be able to do but we've made some updates to make them work a little nicer a little smoother of course we have this look at handle on the other end as well so that if you are zoomed in on the horse for instance you still have access to the light and this is sort of the base level we want to make sure these things work they work well you could change the size and intensity of lights in a nice interactive way well we wanted to take that further so what we've done is we've created these different states for different types of lighting so here I can just click on the surface of an object and we'll align the light to the surface and that way if I want to light the front of the nose for instance I can just click there and this is an interesting tool just you know on its face but where it becomes really interesting is it means that a lighter can work from the cameras perspective right they don't have to be in a different perspective moving these lights around we also have handles to move the lights further away or toward the object but also we can do that while maintaining the intensity so you can see that the spot on the horse actually stays the same brightness as we move the light further away and again that means reducing the amount of sort of tweaking that an artist has to do if they have a light that they like and they like the intensity but they need to tweak the position a small amount it's very frustrating to move it and then go oh no I need to change the intensity now to to match where it was before and of course we can also bring up that same look at handle in this mode if you do want to do some fine tweaking of the position so then we have something that we're calling a shadow target mode and essentially what this is is like a light pivot so I can click on the head of the horse and then click anywhere else in the scene and we're basically going to project the shadow onto that point in the scene so you can see I can just drag around and basically place that shadow exactly where I want it by creating a pivot on the horse's head or that the light moves around and this becomes again a way of working to get a result as a very standard thing to want to be able to do but to get it while looking through the cameras point of view and so suddenly the task of a lighter is much more interesting there's less jumping around it's more about art directing the scene sort of painting with light as they say and then there's specular so here we have a tool for placing specular highlights so rather than lighting the surface diffusely from my camera's perspective I can say I want a reflection of a light at a specific part of my object so when I click on the saddle you'll see that we don't move the light there and move the reflection of the light there and so as I drag over the surface I can create glints and highlights exactly where I want them again from the perspective I'm working at and this is really useful when you want to create sort of rim lights and so on but also especially in the idea of a character where often somebody says oh I need a light you know in the eye of this character so here you just simply click on the surface and we'll move the reflection there so again trying to take all the common tasks the lighter would do and create these streamlined workflows to make them more entertaining to actually do it's fun to use these tools but also more practical and then there's depth of field which is really more of a camera than a lighting issue but a big problem with depth of field is that you have to say where that focal plane is so if we enable depth of field here you can see this horse in the background has the focal plane basically on its eye so we can enter focus mode and now anywhere I click on the surface will actually draw that focal plane so you can see exactly where your focal plane is cutting through your geometry and immediately update the focal plane to that point and so this is really important again it allows you to sort of move through your scene in a more interactive way from the cameras point of view without sort of again messing around with a lot of camera properties things become very immediate it's like focus pulling rather than rather than placing handles in your scene so let's look at a practical example here so we've got these bottles and we want to very quickly light this scene so I'm just going to go into my network drop what we're calling key light you can see especially with objects like this how useful it is to be able to do that specular placement because a lot of these shiny surfaces get their surface properties from the reflections more so than the direct light but we can just quickly put down some lights to reflect on these bottles on the right side and go ahead and place one on the left side I'm not worrying too much about the intensity of these lights at this point I'm kind of just getting them down you know sculpting the scene with my lights I'm gonna go ahead and add a top rim light to pull out cut out the top of this object from the background and then we'll put down an actual spot light so we've also changed our spotlight handle so if you just pull back a bit you can see I can just click where I want the spotlight to point and we have a new spotlight handle lets us change again the intensity indirectly but also just grab that's and pull it in to change the position of the spotlight and of course we have parameters that are new for our lights for things like barn doors so that you can sort of sculpt the light even further change that shape dramatically bring it down so we're sort of cutting our image in half there and then we have this dome light or an environment light and in this case we just want the reflections so we can just simply turn down the diffuse multiplier remove the diffuse comp contribution and just stick with the reflections and so you can see in just a couple of minutes and just a handful of nodes you can very quickly layout a scene like this now obviously you want to tweak the intensity of these intensities of these lights but as a first step pretty fast pretty painless workflow so the next thing is to start doing what's called light linking and light linking is basically saying things like I want my key light to only light things that are on the table and you can do that very simply with this new interface where we have these different scenes so for instance bring in all of my rim lights but that's a little tedious you know I've got a bunch of lights so we can create something called a collection instead and I can just call this all rim lights and now we can create rules for all of those things simultaneously so I bring in my rim lights and say only the bottles are lit by the rim lights and now you can see how we're changing our overall view here then we can also do shadow linking so you can see I brought in this table lamp and I'm saying remove the shadows from the bottle from that light and we don't actually want to do that in this case because it doesn't really make a lot of sense but it's possible and then you can go the opposite way so in this case we brought the geometry and it said this geometry is only lit by this light so you can actually work on either side light centric rules or geometry centric rules and the really nice thing is that these rules then persist these are USD rules they're on the lights themselves they exist essentially as collections so if I add a new light to my scene and then I go downstream and I add a new light linker you can see that all the previous rules are still there right they all show up they can be read and so this doesn't just come from the network ups tree and it comes from the USD itself so if you've just brought in a file that had these rules they would show up here in the light linker you're never less sort of guessing like oh did somebody else in some other scenes set up these rules or not they're all here for you to be investigated directly you can see they're sort of tinted a dark gray like that to let you know that they've been imported they weren't created in this note now finally we want to start talking about the actual color and intensity of these lights so we're going to use the same group that we use before except now in this thing called the light mixer and these are sort of custom UI is designed to give you this high-level view of what's happening in your scene by the way these are all QT widgets which means that they're quite customizable if you wanted to change some of the behavior here but basically the idea is that I want to now sort of go light by light and start tweaking things in my scene I can easily solo the lights by clicking the solo button obviously I can tweak the colors and so on and because we've already set up our light linking everything sort of behaves the way we expect and then these light groups are really interesting because you still have access to all the lights inside the group so I can individually tweak for instance the right rim light maybe make it sort of a cooler color I can tweak the left rim light and so on but I can also say no I want to do the entire group all at once so I can control every light in there I can even tint the lights inside that group so if I want to move them all slightly more green to help the tie-in it with the background a little more I can do that so we still keep the overall intensities we're basically adding a tint on top so you have a lot of control over how you interact with these lights here now we're just adjusting this for a little kicker that we added to the label but of course what if you have like a lot of lights you know maybe a hundred lights it's entirely possible that you would so there's also this sheet view that gives you even more information than the mixer does and but still lets you do things like mute lights solo lights change intensities and so on so this is more of a low-level view of your scene where you can get a quick overview of many many lights I wouldn't just be practical to do in the light mixer itself so what about procedurally doing this you know part of Houdini's benefit is that you know we have these procedural networks here we have a little network that takes a bit of text and it extrudes it bevels it puts a profile on it adds this sort of interesting outline around the outside so can we take advantage of that to do lighting tasks and absolutely we can that's part of the beauty of this whole ecosystem that we've created is that I can dive into this network and start pulling geometry for from wherever I like so in this case we're gonna grab the sort of wires that define the outlines of our text and we'll just resample those so we don't end up with like a million lights and basically what we're going to do is again just sort of standard Houdini's stuff we're gonna manipulate this geometry in order to create light copies on all those points and you can see already it's working if I move this out now you can see the little spheres that have been copied to each point in our geometry and that's that's lights those are lights that will eventually drive our scene but let's take this a little bit further so similar to how we added we override parameters on the shaders of our trees we can do the same thing with properties on lights so here I'm going to create something called an offset and really this is just manipulating some underlying rules here to create sort of an interesting fall-off for our lights so I'm gonna take that ramp and I'm gonna create this interesting sort of effect where we move the lights around like sort of an old-style billboard then we're gonna ramp those colors so something a bit more believable black and white it's probably not the type of lights you would be using and all of this information that we're creating here all these attributes they can be used to directly override properties on lights like the intensity of the lights the color of the lights and just like our tree example basically all I need to do is let the the instance or know which attributes to copy so in this case it's color and intensity and you can see immediately we get this result in the viewport so this would be very tedious to setup by hand especially if changes are coming from upstream especially when you start making it even more complex so we've started with just the lights and now we want to create some geometry that represents you know the light bulb and we can basically literally just copy the entire network that we just made you could even reference it in if you wanted to but in this example it was simpler to just copy it in and really we just need to change the names of the attributes to match properties on the shader of the light geometry so now when we come back up to Solaris to our / stage context and change the attributes to copy things sort of show up nicely but you can see the geometry is blocking the lights because the lights are essentially inside those little spheres but again we can just use that shadow linking that we created before using a procedural collection so in this case a rule based collection that says anything called light you know go ahead and put it in this collection or in this case instance you'll see it shows up here in the light linker it has all the lights inside of it I just drag over a shadow rule bring in our geometry and suddenly it doesn't cast shadows anymore and we have this nice effect of a shader whose color values match the light that it's meant to represent so tying those things together and then of course because this is in a Houdini Network we can of course go back to our original thing change its height all the lights everything updates and so now what was one sort of a static setup becomes basically alive you can adjust things you could change values over time and Solaris really becomes a procedural layer on top of USD USD generally speaking is describing static things but these networks allow you to inject this layer of dynamism of action on top of the USD and here now just a full render of this sequence so you can see how it works and how annoying it would be to set that up by hand and of course this basic technique can then be taken even further to a more practical scene so here we have the carousel with thousands of lights on it all being driven by essentially the same type of network rendering you know I mean kind of the worst possible scenario for a renderer with very small thousands of very small lights near very reflective objects but you know you've set it up you can you can tweak these things and you get these really nice results along with motion blur and all the great stuff that a full render gives you and just because it was interesting we also did an OpenGL flip book of the same scene so this is OpenGL with quality settings basically turned all the way up we're sampling sort of buckets of 30 lights at a time but still with a maximum I think 2,000 lights and you can see remarkably high quality given the fact that it's just a real-time renderer so we talked a lot about assets and things that you would do with Solaris but if you're going to be creating all these assets you're going to be creating all of this stuff it would be nice to automate some of these processes right a lot of it is something that is absolutely automatable so let's take a look at a PDG example here where we're going to use shotgun as sort of a library of assets so here we've got shotgun this is where we want to go we want to be able to have assets that exist here in this asset browser they've got turntables associated with thumbnails everything you would kind of expect but where we're starting is basically a list of assets with none of that stuff attached to it so how do we get from here to where we want to go and the answer is a network like this this is a pretty straightforward PDG network something interesting to look if you're familiar with PDG at the very top of the screen you'll see this new bar that we've added to the UI that lets you track the overall work that's occurring and also has some nice buttons and things if you want to start or cancel jobs but essentially what we're doing is in the first black we're block we're getting asset information from shotgun in the second block we're processing them and if they're block or reuploading them to shotgun so let's just quickly walk through this process here so first of all this is something called a command chain and basically we're just sending commands to shotgun to say look at this specific project give me all of the assets that are there available and hand off that data to me in a useful way so if we actually go ahead and investigate one of these work items a you can see how the asset has traveled through the network but B we can inspect it and see like oh we have this barrel asset it's a USD file it's up there it's ready to be processed so from leer we want to move on to actually processing these assets and here's where you might do you know basically anything you can do in Houdini but in this case we've actually attached it to a Solaris or alap Network so you can see we have this slop network called turntable assembler and if you look at the connections by the way you can see we're still tracking that same barrel asset basically this is a lot network you'll notice it looks a lot like our tree asset that we created earlier except in this case we're assigning materials we're loading in a layer that represents the turntable and in this case it's an interactive so we're looking at the actual result live here but of course the goal is that this is offline it happens automatically but it's nice that PDG lets you examine the networks live like this and verify the results so from there we now go into a render USD scene section where we're basically generating all of the data from from that love network and then we're going in to assemble those into useful things so on the right we're creating filmstrips thumbnails or sorry on the left and on the right we're generating actual videos from the turntables and once again if we examine that work item you can see all the data that's on there and we can actually click and open up the Associated video again just to verify that it successfully generated the thumbnail or the turntable in this case and then from there we're basically kind of doing the opposite of what we did in the beginning we're assigning some metadata and we're using that and we're uploading everything back up to shotgun so when we've run this whole network basically this is more or less a live view of what you would get in Chuck all these assets coming in being attached to the correct pieces of data assigning the turn tables and so on so earlier Kristen talked about like pipeline possibilities and so you can see how the the low-level tool set that you get with Houdini you know couples very nicely with these high-level tools you get from USD and Solaris to create you know something like a full pipeline and just an interesting side note with where we've made some improvements with PDG is you can see in Houdini 17.5 how sort of slowly the work items come in if you look at that bottom node on the left and essentially the reason for that is when you had very fast jobs so something that maybe only takes a couple of seconds to cook there's actually a pretty high cost of loading Houdini cooking that thing for a couple of seconds and then closing that session of Houdini down and so with Houdini 18 we've moved to this idea of batching work items in an intelligent way so now you know a session of Houdini will stay open and cook many many work items and you can see how much faster this second row is than the first and then on the far right we even have something called a processor service and you can imagine that essentially as a session that's open and waiting for commands to be sent to it so you don't even have the cost of opening the Houdini it just Waits and receives commands and cooks the results so many ways to approach it and get these faster overall results but of course you know as much as we love karma and we support karma you know there's the reality is that in productions people have their own renderers they have pipelines that exist they have tools that exist they want to use those tools hopefully inside of Solaris so we have this sort of nice range of third parties who are working to get these vendor delegates working inside of Solaris so of course render man you know is very very nicely integrated you know they're very close to the USD team obviously and so their integration is very tight you can see that they can create instances just like we were talking about they can change they have their own custom UI that sits on top of this the standard Houdini UI they can tie directly into the same Lite mixer I showed earlier so these tools are generic right because we use the standard USD lights the standard USD Kay any Hydra delegate can then just pick those things up directly they don't have to re-implement their own lights and their own light handles and so on and so you can see here with render man how nice and tight that coupling can actually be but there's more here's a render delegate that Arnold is working on and again you can see that they're manipulating the same lights that I was manipulating with karma they get the same handle so creates this unified context that everybody can work in so the the UI stamp stays consistent the way you work stays consistent and you can then plug in whichever your preferred renderer is and you can also see on the top right how they're now shows up this Arnold tab on the light but right next to it is karma so any renderer that you have which sort of show up in these lists so you can add this Arnold specific parameters to the light node that show up when you're using Arnold there's also the display options so these are Arnold specific display options for how the viewport is currently rendering and when you've switched to a different renderer the display options switch to that renderers display options so again we're it's not just about using the underlying USD technology it's also making sure that our interface is open enough that these other third parties can plug in to what's available and create this consistent workflow Pro render from Pro render from Radeon again already working in the viewport you could see this interactive lighting things work as they sort of tumble around so third parties at various states of integration but all working toward the same goal of having these Hydra heads again based on the idea that USD allows you to push the same data to multiple render targets and then redshift and again redshift working getting a really nice integration you can see here again the live updating in the viewport you can see they're using all the standard nodes that we've already used throughout some of these demos and a really nice example is that they're also using vom networks to off their shaders so you can work in a very familiar way you can use the same nodes you would expect here just assigning a tri planar projection they add some displacement to the ground in just the moment but nevertheless the point being you can see that they have this really nice version of their shader that operates inside Solaris so you know all the stuff that we've done all the work that we've done is hopefully good and you know we certainly stand by and we hope that it's going to be popular out there in the community but the reality is when you build something like this a new piece of technology like this what you really need is for people to start using it right you need to get feedback from people because a lot of this is not exactly guesswork but it is sort of throwing a dart and trying to hit a target that's maybe moving on the horizon so what's really useful is to have people you know in the industry who are actually trying to software trying to work on and we were very lucky to have some industry folks from blue sky actually sort of get on board and help us testing and using Solaris so I would like to welcome to this stage Chris Wright Dolch from blue sky studios who's going to talk a little bit about how they've integrated some of the tools of Solaris into their production so please give him a head thank you thanks Scott also I think we need to give a hand to Scott watch you use the stage manager a little bit more and all those pixels I like watching Scott work so I'm Chris and we're really excited to be a part of this this event Solaris it really is a game changer I can't tell you how excited I am all right so about two years ago we started investigating how we could make our pipeline better how we can make it more collaborative how we could be more agile all of the things that we want to we want to see in a pipeline you know we you know all of the the dreams that'll come eventually but we knew that USD was going to be a key part of this because it really facilitates scaling working together layer ability as we were we saw and some of those workflows that Scott did we had a working relationship with side effects we've been using Houdini as most studios have been using in effects and crowds and whatnot but after some discussions with them and and with others we realized we needed to start looking at Solaris it's some test work and pretty quickly realized that this was going to be a game not only what it could do with USD but the potential in the future so we decided to go all-in and you might wonder what that means all-in you know when when is blue sky gonna start using this this tool we've been using it for over a year Solaris has been used for a look of on and lining on all of our projects coming after spies in disguise unfortunately that means we can't show you the cool work I know I know tease tease tease but well we can't show you are some of the workflows that we've got another piece of technology that was talked about a cigarette if anybody caught those talks is conduit which is our micro services based version control asset management pipeline and integrates really well with Solaris and USD and so what we're gonna what we're going to do is finally be able to show the world some of these workflows now in conduit a word you're gonna hear thrown around as a product it's just a version controlled a bunch of files generally it's a USD asset or the elements of a USD asset and here we're going to do the the helloworld that we normally do a blue sky which is with the donut but since we're in Montreal we're gonna do a bagel and not just any bagel but a real bagel right so we've got our bagel here and it looks great right the model is awesome so now we're going to commit that model element to the bagel asset we're gonna revisit this export window but this is the same tool that every contributor to Condor uses and it's PDG powered so model looks great we just finished our training and now we've been asked to do some lighting we need to bring in the assets to the the lighting work we've got a wrapper around the reference lop so that we can reference in the USD assets and this pulls up this product browser which can be tailored to assets or in this case we've got a node for a shot work because everything in convent is a is a product but the really cool thing and this is so exciting and really cool so we've integrated the product browser into the stage manager so that artists who are doing whether it's asset work or layout or whatever may the case may be if they want to pull in assets this way they can so using natural language searching they can find the assets they want in this case we want some lamps and a couple of TVs because we're gonna light these assets and you can just drag and drop references these the assets into the scene and assets of all the back-end stuff and convert to track dependencies and whatnot now I can work on these assets in context of everything but well first I'm gonna start by doing them one by one Hydra is awesome for this because as we've seen as Scott's demoed you can you can see the lighting as it happens this being able to kind of do what you need to do we haven't figured out a good you know buzzword for that but we want people artists to feel free to do what they need to do if you're in training but somebody wants you to light it light a bunch of lamps go for it in this case the the TV's needed a texture map so we can again pull in the product browser find the texture maps and just drag and drop them into until ops and we can see our results live this was a lot of a lot of work internally but also a lot of support from side effects and the render man groups who will see little bit more about that in a second alright so our lights look great good okay I know I lit it so it's it's it's yeah yeah I agree so since we started so long ago there really wasn't hydro rendering support so we built our own bridge that just translates through USD into render man and with again with the render man groups help and with side effects has helped we can stream Delta's from the lop graph into render man and in this case we see them in it dating live now exporting one part of a model is cool but we've been working on nine assets we can commit all of these at the same time this is all powered by PDG that's another piece of technology as side effects has been great about supporting and we are really excited about because you can you can do everything that you need to do no pun intended we were really excited about Solaris the future is really bright like like Kristin and Scott were saying this tool was originally intended to be a lighting tool but the pipeline possibilities were were were out of this world we had so many artists come up to us and say I get us D thanks the wops because i can fiddle around with it and as chris and said it's it's very faithful i get what that means when you talk about referencing and sub layering so it's it's it's a cool piece of technology and one last thing the other reason apart from the tool that we went all in really was side-effects if you haven't seen experience yourself or seen somebody else experience the first time of seeing their bug fixed the next day when you see that you'll understand why we are all in with with with with side-effects it's an amazing group of people to work with looking forward to that partnership as it continues to grow in the future thank you all right thank you very much Chris it's really wonderful and a privilege to have you with us tonight to launch Solaris you can tell that the scope of this project is is massive and I think we've just scratched the surface tonight with what you can do and this is all new technology for us USD itself Hydra is new technology we've we worked really well with a Pixar USD team and an Hydra team and we constantly evolve that the API and our own understanding of how things should be done and from here on we rely a lot on you guys to to give this a try and help us you know take it to the next level really really quickly there's a lot of functionality in there already whether you're doing pipelines likelike blue sky or you're a single person lighting a scene you see how quickly you can just import a scene from Houdini and then use the tools that we've built for artists right these were tools for art is not just for TD so all that is there but all of it needs to evolve it is fresh technology it needs you in your hands and your brains and your talents so please work with us so we can fix those bugs overnight is that what you said Chris well try we'll try all right so that's that concludes the first part of our presentation tonight maybe the one last thing I want to say about Solaris which isn't really about Solaris is all that physically-based layout that that you saw which is pretty cool it's fun but actually useful it's both it's amazing how quick it is it's exactly the way Scott described it so that's that's leveraging all this sort of physics technology that we've been accumulating and polishing refining over the years and there it's it's you know and we've been using it for dynamics for dogs and now here it is in lops but truth is that could be used a lot more in the rest of Houdini so I think what you're seeing now with with lofts and layout is what you'll be seeing more and more in Houdini so we have this plan this this intent to leverage that technology throughout Houdini an you can easily think of ways to use that for modeling and for character full-body I carry with you know with with fancy physics attached to it and so on so this is this is a path that we're on that doesn't stop with Solaris it should permeate the entire Houdini landscape all right so we have part two because we did a few more things it wasn't just Solaris we've been having a lot of fun with Solaris with lots of our R&D but we like to innovate on a number of fronts and in fact we have to innovate on a number of fronts I should say very clearly to that as we look at areas like this which go beyond the typical visual effects of things that you expect from from side effects we are very keenly aware that our VFX has to stay strong and move fast that remains the key fundamental essential ingredient of what Houdini is and what you as our community expect from us so the second part of the presentation will be about that and lots of that in fact and also about geometry and the tools there because that's another another interesting realm we know we've we've been using and developing socks for well since the beginning of of Houdini and and that whole list of stops has grown and we have some new ones that are architected in the best of ways for you know for this age and some that have been you know left behind and so we are now very focused on making sure that we sweep through all our technology that has to do with with geometry and and bring it into sort of this new age and and hopefully to that we're adding not just parity and functionality we're adding a lot more functionality but we're also adding a lot more easy use okay Scott back to you okay thank you thank you very much okay so we're gonna start out with modeling and we're kind of using modeling as a catch-all term tool for sort of geometry modification let's just dive in and take a look at some of the updates so first of all we've had this Bend tool around for a long time it's very powerful but it was very complicated to use nobody understood any of the handles it was sort of a mess so as a good sort of starting point we started thinking about this sort of new better forms of interacting with things you know in Houdini we immediately said this is a good testing ground because it's a complicated node how can we present handles to people that make sense and so this is sort of a testing ground for where we can hopefully go with a lot of these tools and so here you can see hopefully the handles that make sense you can intuitively look at them and sort of understand what's supposed to be happening with these things when you grab them and move them they make sense they do the things you would expect them to do you know when bend has a lot of capabilities there's this squash and stretch capability there's the twist there's the bend you're stretching so there's a lot of elements here that this node is controlling and you want to keep you close to the viewport as possible like parameters are absolutely useful especially for things like ramps and so on but it's just necessary for an artist that they feel comfortable working directly in the viewport as much as possible especially when you talk about modeling tasks like this so here we're really trying to push this and say like yes we want you to feel comfortable here we want you to feel like this is a tool that you would use in a practical way so here's just another example where we're also using hotkeys we're trying to use more and more hotkeys to let you do things like change the Captur axis automatically hide handles that you don't want interfering with what you're doing allowing hotkeys to do things like snap things to different values so you know when we modify these things you you get expected results you know hold down ctrl to snap to 45 degree increments and so on and so again really just trying to make the tool feel like what you would expect it to feel like you know it does the things you think it should do um and along that way we're also coming at it from the other side saying like we need to improve some of the underlying technology so here's an exam our update to the bevel tool so a big problem with beveling in in any sense is things like intersecting geometry overlapping bevels it's a real problem beveling is that it seems like a simple concept but is actually extremely complicated so what we've done is really taken a hard look at how we can maintain the topology so this isn't sort of a boolean bevel this is something that is used for you know box modeling quad topology so we want to protect your topology as much as possible and here you can see on the Left we have this blue line indicating you know an edge that's been cut into this geometry and it's not parallel with anything but the bottom edge of the bevel is able to accommodate that edge and continue to bevel and on the right side you can see that the top loop if you imagine a bevel being two-sided you know has nowhere else to go it stops at the middle of the geometry there's nowhere left to bevel but we're actually allowing the lower loop to continue if there's room left there so you can actually move as far as you can possibly move basically we want to give you as much access to all the space on the geometry that's available of course this is controllable so on the left you can see that we're stopping the loop so when they collide with each other if you want a perfectly uniform bevel all over your geometry you want to stop all the beveling at the same time and wherever on the right we're saying you know if you're a loop that has room to continue beveling just go ahead and do that and these types of complicated topological actions are difficult to to deal with and so they require this sort of hardcore rear connecting of the underlying tool which is what happened here this is basically a complete rewrite of our poly bevel and then in a more practical scenario we've also changed things like how we deal with connected edges so we can filter out pieces of geometry that are getting in your way we can also deal with profiles a lot better and again keeping the same idea of colliding so that you can extend that all the way to the end of the geometry we can also now change convexity and this has a nice little side note here we've also added hotkeys to our radial menus so if you want to assign a key to bevel instead of motioning to get there you can basically hit you know CB CD whatever chain of you want to get to that point but like I said previously we're doing indirect handles so that you can create these bevels without having to change parameters directly and overall just trying to make things again move and act in the way you would expect them to and if if there's capabilities there that let you do fancier things like this collision detection that's great but it really should just feel good to use it and then of course custom profiles so here just the view showing how we're using a ramp to change the bevel profile so you can really dial in the look that you want exactly so here now just combining a couple of the tools together so a bend to sort of create this tight spiral of geometry we can offset that so we can create like a spiral like this and then of course a bevel on those edges so just trying to bring all the tools together make things work together in a nice way let you model the things you want to model so here's an example of the new sweep node so sweep is sort of the the backbone no pun intended of a lot of procedural geometry generation and it was very very powerful but you had to do a lot of workarounds to solve very common problems for instance you v's or matching geometry when it folds back in on itself so the new sweeps up handles UVs automatically it computes them in all sorts of ways so that you can get no seams along the U or the V boundaries even if the geometry loops back on itself will line up those seams for you automatically we can also generate different types of geometry so suite by default now creates geometry directly so you can see we have a essentially a tube geometry kind of a ribbon geometry something we're just calling a square tube and then of course custom profiles that you can feed it and you can feed in multiple profiles at once and at the bottom we're just showing that we can twist this geometry and guarantee that on a closed curve the geometry will match up self and will distribute the amount of twists back around the curve so things line up properly um and you can sweep multiple curves at once you can use ramps to control the scale of course attributes exist for all these things so you can use attributes to drive effect there's tangents pretty much everything that you would want and here we're just animating these three profile curves using P scale and again you can see in this case the UVs expanding and stretching but you could do it in any number of ways depending on what your needs are for the UVs on your geometry but it's not just capability it's also speed so on the talk we have the old sweeps top and on the bottom we have the new one and so you can see that even though we're creating UVs we're doing extra work in the Houdini 18 version and this is just creating thousands of curves and sweeping a circle along them essentially you can see that Houdini 18 you know vastly outpaces Houdini 17 5 it starts out about 16 times faster than the old sweep and by the time it gets to the end of this huge array of curves it's something like 30 times faster so it actually scales very well so it means that you can handle huge amounts of geometry much faster and get the results that you want out of a single node instead of doing for each look loops to get every curve to sweep across you know doing things to cut up your movies and stitching them back together it really just takes a lot of very common work and puts it directly into a single node and then there's direct modeling you know you want to just push points around and some of these you know in some way seem like well of course you need this and and it's true it's taken us maybe too long to do some of these things but we're finally getting around to them so you can for instance grab edges slide them on the geometry blend them into the surrounding edges you know a very typical sort of standard modeling tools that are just really a base requirement if someone's going to work interactively and build things so we've made sure to try and support those I'm also things like the new point well top and this is a really good example of that idea of UI that I was talking about earlier how we want to make things clearer to you to make things obvious what's happening here and you can see this is just like a dry and click operation and this sort of little circle showing you why you're snapping to what's going to get fused together an interactive fuse essentially and actually underlying uses the same idea as the fuse up just with this interactive state on top of it and then one of our developers made this example showing how these points can also be averaged together so you see as we select two there's an average point in the middle so we're taking these sort of opposing things and we're finding a middle ground and bringing them together our developers are very poetic when they create these examples and here we're actually doing something kind of interesting which is almost the opposite of what I just described which is taking something that we've had for a quite a long time as an interactive mode which is a growing and shrinking of a selection and then putting it into a node itself so this that becomes a procedural operation so basically the group expand though it can take a seed polygon a seed group of any kind and then expand it using a step size and so you can see as we change the steps the selection grows and where this starts to get interesting is we start thinking like of collision obstacles so we can create a group of things that it cannot expand into and it will sort of grow along the surface and grow around those collision primitives and then even further we can say well let's use some attributes to determine this so in this case we can say well you're only allowed to grow in two polygons that are at least you know four degrees off from your seed polygon so you can see you can create these really interesting growth patterns just by using this normal restriction mode and then because like a lot of this information can be used in very powerful ways we also encode the steps into a step attribute so the number of steps is recorded in the geometry as it expands here we're just visualizing using these simple colors but here's sort of a slightly more practical example if you can call deforming a squad practical but you can see on the left the group expanding and on the right we're basically feeding that step into more or less just a poly extrude and a color node but we get this really nice option that you could certainly have done with maybe a solver or something like that but again we're just putting a very simple tool in the hands of artists and letting them do cool things with it here's another one a very long time requested feature first of all we're just going to make a pattern here we're going to select a bunch of polygons along this curve and then we're going to use a local space edit and that just means that each one of these sort of islands of selections more or less use the same transformation but in their own local space so this is a long time request for modelers it's basically a critical function if you're going to do serious modeling and we finally have implemented it in the Edit shop and you can see can get really nice consistent results even along this overall curving geometry perhaps more practically here we've sort of selected the inside of these pieces of this car wheel earlier today I called them car holes because I don't know anything about cars so here we're modifying the car holes that different at different rates using this local editing but you can see immediately why this is useful you know you can do many operations at once instead of having to break it up into multiple steps and then terrain you know terrain essentially a type of modeling and we've had this node called the height field terrace and it's great it would build these sort of steps into your geometry something that's really necessary for modeling terrains the problem is it was very even almost mathematical looking you know you would see this very obvious sort of clean steps through your geometry so the new height field terrace node allows you to break that up add randomness use ramps to say where these things are occurring and you can get much more natural results like this where you don't have this completely uniform step size across your whole geometry just breaks things up allows you to create much more natural-looking effects so a while back we created a sort of a group of TDS and they created something called the game dev tool set and the idea here was that we could have you know this group of people dedicated to creating tools to solve specific problems of game dev people and it was great and the idea is that they can act very quickly very rapidly they can target very specific needs and it has been really awesome and really successful but what we found is that over time the idea that game development tools are somehow you know extremely different from standard 3d animation or filmmaking tools is sort of falling apart you know those worlds are getting closer to closer together in a lot of ways and so what we've decided to do is partially just to let people know that you know if you're not a game developer these are still useful tools like a look at these tools use these tools and it's already happening so to make that a little clearer to the community we've just created this idea of side effects labs and that just expands the tool types of tools that they'll be using they still have the same mandate a small group of TD's dedicated to making these fast tools iterating on them quickly and they can be separate from full releases they don't have to be tied to sort of the baggage of a full release like making sure everything is backwards compatible and so on so side effects labs essentially the same concept as it was before but opened up so people can understand better than you know know you should try these tools like try these out in any workflow you have it's not just game development and you'll find a lot of really super useful tools in there and just to sort of drive that home here's one of the new tools which is an update to our substance designer plugin and you can see it's been implemented essentially as a compositing node in in cups all of the parameters from the substance have been promoted and you can use them in a standard compositing workflow to generate texture maps in this case on this torus so you can see just using we can point to those cop networks we can call out the different planes for diffuse and roughness and so on and have those apply through the shader there in the viewport and showing the real-time displacement as well so then let's take a look at sort of a pipeline that sort of uses a whole bunch of these tools so here is a Luis one of the t DS that I'm talking about working for a game dev getting scanned he looks super excited about it so basically a photogrammetry idea we're scanning a person and we need to take that you know a very dense point cloud of data take all those images and we need to process it in some way so all of these steps here use different plugins different pieces that have been created for side effects labs previously the game dev tool sit and you can see a bunch of products being used together with Houdini using base Houdini technology alongside these plugins alongside these Houdini lab specifically designed tools to go all the way from a high-res scan to a sort of a game ready low res texture mapped asset so now we're going to move on to essentially effects and obviously as Kristen said earlier you know effects is always a focus for us even when we have other things you know effects is important we always work on it to some degree and despite the fact that Solaris is a huge project we've actually made some really huge changes to our simulation tools for Houdini 18 so first of all we have an adaptive pressure solve for our flip solver and what that means practically speaking is that your can certain circumstances cut your render times in half it's really kind of amazing how well this works and essentially was because this pressure solve dominated the overall simulation so by making it adaptive you really cut a lot of the overall processing time down and just to be clear about what we mean by adaptive you can see in this sort of visualization at the bottom that near the surface where obviously the detail is very important we have these small detailed areas in the pressure solve and then these deeper areas where maybe things aren't as important don't have much effect on the overall look we use these larger sizes meaning we have to do less work it's also important to note that this works with narrow bands so you're really combining these technologies together to to have a smaller overall amount and then even within this smaller over Mountain overall amount of processing to work adaptively so you can see there's some improvement in a Houdini 18 even without the adaptive pressure solve but then a real jump when we enable the adaptive pressure what's also really interesting to see here is that despite the fact that we're solving essentially much less of the overall data the look is extremely consistent like there are very likely differences in these simulations but they're not in any way bothersome or even noticeable in this particular case and even if we sort of zoom in and take a close look at one of these simulations done by Igor Xena she was done a lot of testing for us over the years you can see that you know this looks great there's no indication that we're somehow losing any data so the adaptive pressure solve is a huge win for anybody doing these kind of simulations and velum I think it was about a year ago that you know vellum was released with Houdini 17 and it's been great there's been huge adoption people are jumping on it it's used for all kinds of really interesting effects and the fact that it's xpb dBase means that it's useful for all sorts of crazy things that you wouldn't think of a cloth solver necessarily doing having said all that when we created it the focus really was a cloth solver we wanted to make sure we could do cloth we wanted this for character effects and we've continued to push that side of things so there's just an example of a two characters you know they're moving quickly that these sort of silky clothes on just to point out you know where vellum currently is things are looking pretty nice but with a lot of character effects a lot of times it really comes down to having control over exactly how things look because characters have a lot of focus on them you know and we're used to looking at things like clothing it's a really nice set of tools that we've created for a Houdini 18 basically all revolve around velocity and how velocity is transferred to the simulation so on the Left they're sort of the unconstrained simulation and the simulation works fine but you can see that because the actions of the character are so dynamic he's moving so quickly that some time's the cloth you know whips around in ways that even though it might be physically correct is sort of distracting to look at and on the right we can use these new velocity blending tools to say well okay I want to actually pull back some of that velocity and isn't just about scaling the velocity down it's about matching the simulations movement to the underlying movement so you can see that even though we're getting the correct motion like it doesn't look like it's like underwater or it has a lot of drag on it it's much calmer it seems much more subdued and so you have a lot of control now over how much of a simulation how dynamic a simulation is going to be along the lines of these character tools something that's really useful is to be able to run a lower res simulation and sort of have some idea that the higher res simulation will match right if you're going to spend the extra time hopefully your setup will work across so we've put a lot of work into making things sort of topologically invariance so that you get a very similar look of a low res sim to a high res sim um obviously they're going to be more detail in the high res simulation but you should more or less get the same overall motion assuming you have enough sub steps to do so we also have sort of an FIM like tetrahedral constraint with volume preservation to some degree and plasticity so you can see here that we can take this dough and sort of flatten it out and even though this is a mesh this isn't like a fluid simulation you're able to get this sort of completely flattened out piece of geometry holding its shape and then something called a sliding constraint this is is a really interesting new type of constraint that basically allows you to constrain a point to another piece of geometry but have that point freely move across the surface of that geometry so here we you know we're visualizing that constraints as these sort of dots with lines connecting them but essentially this object is free to slide back and forth across this wire and of course because it's always useful to have you can also put attributes either on the the constraint side or the object being constrained in this case the blue he slides faster on the red you know essentially has more friction so it slows him down but isn't just single threads you can actually just have him dynamically move across the geometry that's sort of any shape and so there's no animation here this object is just sliding along you can see his legs sort of dancing along the web as he just finds areas to slide along and it's nice to know that this is also a two-way interaction you can see the weight of the spider is pulling on the web right this isn't a baked out simulation but it goes further than that it's not just wires we can transition from wires under the surface of cloth and then back onto wires to get a really nice dynamic look and it's really kind of amazing how much character you get out of something that looks like it's desperately holding on to something but it's again really powerful that it can do this this isn't a constraint of one type it can slide and move across different surfaces so let's just take a quick look of how you set this up so essentially we're here in sobs stop playing click yes sir here we are in stops and we're just doing a standard attach to geometry constraint and you know we're just gonna select the sort of bottom of the spiders legs and when we run this simulation you can see that you know it does what you had expected attaches the character to the surface but there's no sliding and basically what's great is that this sliding constraint more or less comes down to just an abling sliding so you enable sliding and more or less you're setting the amount of friction for the slide you can see our spider now he goes around to the bottom side of the torus and of course the spider himself has a tetrahedral mess mesh inside of him so it's two types of simulations and now decreasing this you can see we get a nice sort of Tarzan effect as our spider makes his way across the center of the torus and that's actually really interesting to note because what you might expect is that these constraints would sort of jump across gaps right just finding the closest surface or something like that but we're able to constrain them to the actual surface of the geometry so the object sort of move around the discontinuity and here combining those two concepts now with the left being sort of faster and the right being slower and of course the green lines are just indicating where the constraints are they're not actually part of the simulation and then like a lot of other constraints they are dynamic so if we drop these frogs on this cube which is you know a very common thing to do they they sort of cling to the cube for to survive this calamity this frog calamity so but the point being that these constraints can be created dynamically they can break they can do all the things you expect vellum constraints to do while also having this nice property of sliding along the surface so all this stuff is great and vellum is awesome it's fast it's stable it's really good but when you want something that's supposed to be 100% physically believable you know Fe M is sort of the king of that realm and there's a cost to it Fe M can definitely you know it takes a toll when you run a simulation like this but we actually have put a lot of effort into making the Fe M solver faster and more stable in Houdini 18 so it's it's quite a bit faster as a matter of fact as well as implementing some new implementing some new models like this neo-hookean model that has a bunch of advantages but one of the key ones is this better volume preservation so you can see that as we compress these gummy bears in this tube that they actually do sort of fill in all the available space without becoming flattened out in a natural way feels like an actual object under pressure and here in the renderer I think it gives even a better idea in some ways of just how nicely and tightly packed there and yet how stable the overall simulation is and related to to that idea is again using something for flesh like this so here we have an elephant seal I believe the technical term is galumphing he's galumphing along the the beach here and you can see that we're preserving the the fleshiness of the character while also having this dynamic wrinkling occurring on the surface and something that's really interesting is that the underlying animation here is actually extremely simple it's just coming from these basic you could think of them those bones I guess that are just inside the mesh the FBM the tests are sort of softly constrained to them and so you get a lot of this really interesting dynamic motion without actually doing a lot of under a lot of work under the hood it's some very simple animation that's the nice thing about how physically plausible Fe M is is that even when you do sort of simple things it looks very believable another really nice advantage of Fe M is that it is very much independent of resolution so you can do a very low res iteration you can see here three frames per second on this low res mesh and actually get very similar results to the high risk obviously the high res mesh has more detail and so on but you actually do get a very surprisingly close match between them when you do so you can iterate on low res meshes get you know all your issues sort of worked out before you do your costly high res Tet mesh and then Fe M is also capable of basically having a skin on the outside of its geometry so and that can have its own properties so the inside of this the creature the elephant seal here can be quite sort of gelatinous whereas you could have very thick skin on the outside so here are just some wedges about how stiff the skin is and you can kind of see how much effect that has on the overall wrinkle enos of the surface and here again just a render with the 4-time stiffness to see the nice you know very believable wrinkling and bending on the surface of this character so destruction this is obviously a very important set of tools in Houdini rigid bodies are very popular and we've actually put quite a lot of effort into the tools in Houdini eighteen to give sort of new ways of working so first of all is the fracturing side you know why you're sending into the simulation and essentially what we've done is taken our material fracturing workflow that we've created I think in Houdini seven point five and added the ability to customize it more add custom cutters to the geometry so that if you're trying to create something very specific you can go and head and do that with your custom geometry we've also added some tools to help with a very common problem which is that when you pre shat or something which is what you almost always do with simulations like this is that it shows up in the render obviously you know glass isn't pre shatter you shouldn't see things on the inside of the glass and it's a real pain to remove that at the correct time so in Houdini 18 we have some tools to help you do that to identify those places and only have those interior pieces show up when it actually makes sense essentially when the overall geometry has broken and you can see you have some control over that because sometimes glass cracks without actually coming apart we've also taken a look at chipping so chipping is just the idea that if you have a big piece of something it makes sense to be able to add sort of small chunks to the outside that might break off now in Houdini 17.5 we had a tool for doing that but it kind of just created smaller and smaller pieces in Houdini 18 we're better about actually identifying places where chipping should naturally occur essentially after sharp points at the ends of these pieces and we make these small cuts so that when things break apart they eventually sort of round out over time the way you would expect something tumbling along a surface and when you compare it directly you can see you'll very obviously that the bottom one definitely feels more natural the results feel more correct and while the first one is fine in terms of a simulation the chunks just don't feel like believable and then on top of that we can add emission on those points so here we're actually doing a secondary rigid body simulation emitting small chunks from those chips pieces so this is something that might typically be driven by a particle effect but we're also enabling here for actual rigid bodies and one of the most significant changes to the bullet solver and our rigid body solver is that we want again to bridge the idea of being an artist working familiar tools at slops and these idea of these physical tools and a way that we've done that is by saying like okay well let's literally bring them together and so in this example I'm just creating a grid scattering some points on there I'm using an attribute randomize to create some velocity and I'm just gonna copy a box to those points pretty standard stuff and the big change is that once I've set up my velocity properly I can just add a rigidbody solver here at the soft level and so now I can plug directly into stops above hit play and get an RB D emission directly in soft sands very simple network and this really helps people understand more about what's happening it simplifies their overall workflow as you can see a very simple network here and we've exposed tons of the parameters of the bullet solver to this top-level solver in order to let people you know work with it in a very direct way of course if you want to customize things you want to dive inside that's all possible you can still build these tools inside our standard op network but what this lets you do is that for your standard cases these high level things where you need to quickly iterate on an idea you can do it in this very simple way now a really awesome new feature of this solver it's something that we're calling guided sims and so on the left you can see a piece of animation and on the right a simulation driven by that animation and so something that you might think by looking at this is that there's some direct relationship between these two things that one is sort of derived from the other but that's actually not at all the case the geometry the geometries don't have to have really anything to do with each other at all apart from their proximity so here's just an example again we're just going to do a standard sort of Voronoi shatter on this pillar I'm gonna throw down an RB D solver and turn on a ground plane and then hit play so right away we've got a nice action there there's no constraints there's nothing holding this together and now on this second chain I'm gonna just create a small box I'm just gonna copy it a bunch of times and really the point here is just to show you that there's no relationship we haven't made geometry from the original geometry the animation is happening on an arbitrary piece of geometry and then we're just going to use our new Bend tool to add some animation to our column on this right hand set of nodes get to see my awesome animation here an excellent animator basically we're just going to bend this back and forth a little bit so now that we have this animation we could plug that into our our BD salt turn on use guides and basically just add a little less of the animation into the overall simulation and immediately we get this so like I said there's no constraints here right we have we're not modifying constraints we're imparting the animation directly on to the geometry and there's lots of controls over how tightly it matches the underlying animation here you can see again that we're splitting this geometry so you know the the underlying animation is coming from two pieces of geometry right we can just bend them and this speaks a lot to what Kristin was saying earlier that what we're trying to do is take these tools that exist that artists are used to maybe even animators are used to people who would you know bend something like this as a preview for what we what they want to happen and then usually it's the effects artists job to kind of go in there and say like okay how do I get this to match how do I match what the animator was trying to do and in this case we're pushing those worlds closer and closer together so what the animator is doing the results that they want can directly influence the physical simulation down the road and again we want to push these closer and closer together merge these worlds so that people can work in the same way to get these different results another interesting idea here is that of course we can use one simulation now to drive a rigidbody simulation so on the left is just like a very simple Fe M box dropping on the ground it Wiggles and it does all the cool volume preservation you would expect and on the right we're adding those properties essentially into this rigid body simulation so you can see these things sort of bouncing and jiggling and almost look like they are bending even though obviously they are not there as the name suggests rigid and you can immediately start thinking now of more interesting things right now we can do these big complicated scenes that are very difficult to out direct when you have something very complex like this it's hard to iterate because you're never exactly sure what's going to happen to the underlying simulation in this case we're just using I believe to twist nodes to sort of push these buildings together but they can become more layered than that so here's a really awesome example of this building you know it's high detail I don't even know how many pieces are here but there are a lot of pieces and you can imagine that getting the timing right getting all these pieces to work together and exactly the way you want it's very difficult especially with however long this simulation takes I actually have no idea how long it took to simulate this but what's actually happening here is underlying this simulation is actually a very low res essentially Voronoi fractured version of this building and that you can you can iterate on extremely quickly you can run that in literally probably real-time but you can work out the timing the positioning of all the pieces all those things can be worked out using a low res sim in advance you could even take the results of that low res sim and use some of the modifiers that we've talked about today to bend and shape those over time and then feed them into this very complex simulation where you can be sure now that you're at least going to match the timing and the overall motion except you're going to add massive amounts of detail on top of it and pyro so you know rigid bodies are important and even in that last example you could see that you know there's some dust in there pyro smoke those are important features for effects they're often integrated into other effects so for Houdini 18 we basically wrote a completely new solver I mean there's parts of it that are reused but this is a sparse pyro solver with the idea being that you want to do your solve only in the active parts of your simulation so if you imagine that we you know have something moving through space like this a lot of the overall container that it would be in is essentially empty and so what the spare solver allows you to do is basically simulate in the areas where the effort is going to be put to best use so I think maybe a slightly better visualization of this is actually to show you what this simulation looks like from an outside camera so the overall container as you see is pretty standard stuff you would expect from a pyro sim but these small blocks that you see inside are the actual active regions that are being simulated and you look in the bottom left you can see that over time we actually use less and less of the overall container right by the end I think we're only down to 7% so it makes sense to try and constrain your simulation to just that active region and to do so we needed to create a sparse version of our standard pyro solver so this is now the standard sovereign beanie for doing pyro simulations we've also put a lot of work in to simplify the overall process so here's an example again we're just going to do a very quick workflow example we're going to start with a rigid body simulation probably the the simplest or each of the hottie simulation you can do we're just gonna add some velocity to a sphere and sort of shoot it up into the air excuse me so now we've got this bouncing ball let's stay in sups and we'll start using some of our pyro tools to build a source out of this object so you can see right away the benefit of having a rigidbody solver in sups is that you can go directly into other tools and that actually means the pyro solver itself has also been promoted to a salt level tool so I can plug this into this bottom node the pyro solver and now I immediately have a rigid body simulation feeding directly into a pyro simulation all in one context all at one level everything in one place and so now when you want to tweak you know the input and the output of these things it's all there for you and you can see again because it's burnished you get a nice advantage to these sort of simulations that travel through space in these configurations that would actually be quite expensive if it was not a sparse solver and to go along with that we've updated all of our shelf tools as well to use this new sparse pyro solver so just trying to make sure you have examples to work from but a nice sort of benefit to this new workflow is that we've also made the shader much more tightly integrated so this is just the viewport we're looking at these are flipbooks these are not renders so what we've done is taken the shader values that you've set up in the pyro solver and we've basically made the match as closely as possible to the Pyro's shader for render time and so the values you've set there can transfer over directly so remove some of that barrier where you would make settings that look nice in the viewport and then when you went to render it you had to struggle to get things to match now because we've tied those two worlds together to some degree especially with the subversion any tweaks you make to the visualization in the viewport transfer over to the pyro shader and so these are the standard new tools we've got a nice little explosion and then an interesting one that uses a new node called pyro source spread which allows you to take an object and spread essentially fuel along the surface of that object so here we kind of start with some some hot a really hot area in Krag sort of but and then which seems natural and then the fire spreads from there and covers the entire object again there's a shelf tool to do this it's a nice way of getting in and seeing how some of these new new setups work so again because it's sparse you get some really interesting advantage you can see that you know about a third of the time which is nice about a quarter of the memory but the interesting thing is is that even though it's faster and less memory it's actually quite a few more voxels so you get you know more less for more and more for less whichever way that goes you can figure it out later the point is it's faster so now let's take a look at something that you might not think necessarily is that useful for a sparse solver but you still get a huge advantage in time this massive forest scene which you absolutely could have done with the old pyro solver but there would have been a huge cost to it and there's still a pretty large causes a very high-rez very large scale scene but now you get the advantage of much less memory faster overall time but potentially actually more detail than you were before so it's sort of a win all the way around and so that ends my portion of the presentation hopefully you enjoyed our features I'm going to welcome Kristin back to sort of wrap up but thank you very much for your attention thank you Scott is this that's it yeah try to cover a lot of ground in this release and as we always do in fact the full feature set or the high-level feature set is coming up it's it's a long scroll hopefully each and every one of you will find one or two things of abuse in Houdini 18 we hope to have gotten you excited about Solaris and and these are the things we hope to see you again soon we try to release every couple of months and not not too fast and also not too slowly and and as always there are there are things that are not on the list that's because no release can can touch upon absolutely everything but rest assured we have a good sense of you know what the list is that we want to tackle next and in fact we have a couple of things in the in the hopper right now including something that is potentially quite disruptive to do with character but that's not for this release we'll talk about that a bit later all right and before we end I would like to thank everyone who's well first the release date late 2019 so very very soon we still have to touch up a few things and write some Docs goodness and lots of tutorials and all those good things but it's it's very close and it's looking very good so I'd like to thank now everyone at side effects who's helped make this release possible all the developers of course all rtd these are interns who are fabulous even though we have them just for four months at a time and our testers are QA and and and Doc's team a small team but but really valiant and our alpha and beta testers always you're fantastic and please please contribute more to alpha and beta as the scope of the software grows we need more people VFX sirs modelers lighters renders whatever fancies you contact us knock on our doors you know take the door down if you need to and get in we need your help and finally thank you to all for using Houdini and for for being here with us enjoy Houdini 18 and see you soon good night [Applause] [Music] you [Music] you [Music] you you
Info
Channel: Houdini
Views: 136,020
Rating: undefined out of 5
Keywords:
Id: Aql6SIOIyXs
Channel Id: undefined
Length: 105min 7sec (6307 seconds)
Published: Thu Nov 07 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.