UPDATE Ghibli Stylized Grass Shadows in Eevee Made EASY | Blender Tutorial (Follow-Up)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello everyone my name is lance barrel and today i'm doing a sort of follow-up video to my previous tutorial on ghibli stylized grass i know that video only recently came out but since then there's been a lot of development in regards to achieving stylized grass to the point that i consider my previous tutorial to be basically rendered obsolete as new methods have refined the process to the point that it's infinitely easier to achieve the desired results literally a day after i publish my tutorial artist and twitter user kidney or puffertron saw my video and using the same principle of grabbing an object's normal and applying it to the grass particles he was able to achieve stylized shadows using only materials without any of the convoluted work around that were necessary to achieve the effect in my first tutorial i was originally going to do just a tutorial showcasing keatone's method but after some experimentation i found that i could refine it even further to produce even better results making it even simpler and giving the user more control over the shadows and the various properties of the material now i won't be going over everything that i went through in my previous tutorial as the majority of that tutorial was dedicated to trying to explain how to achieve stylized shadows on grass using my original method which as i said is now pretty much obsolete however to give a quick recap of what it is we're actually trying to achieve um we're trying to achieve this stylized grass aesthetic in the past if you wanted to get grass to look stylized you would have to use hold on a grass texture plugged into an emission shape however this brings up a problem as as while the grass itself is stylized it doesn't cast any shadows onto itself there is however such such a thing as a simple tune shader as uh seen here uh let me just give you a better look pretty standard uh tune shader will work for most objects um but if you try doing this with grass if you plug it in you can see the shadows don't really look as desired as you can see um right here and this is because the grass particles are not only receiving shadows from the cube but they're also receiving shadows from themselves and this is not what we want and achieving uh this effect i was proving very difficult i spent a lot of time researching this method uh trying to figure it out and as you can see uh i did get it to work however um it came with quite a few caveats now i won't go too deeply into how um i achieve this effect because there's the whole previous tutorial if you want to watch that it's um took over about 30 minutes uh getting this to work uh a lot of that was just me explaining uh what the problem was and how to solve it instead of actually uh doing it but to summarize um in order to prevent the grass particles from casting shadows on themselves the only method i was able to come to at the time using the available information was um grabbing the normal data of the plane and applying it to the particles the problem is i couldn't find a way to do this within the materials or the particle settings so what i had to do was use a particle object that being this low poly blade of grass and using that and a data transfer modifier which as explained in the last video was a trick i learned from lightning boy studios video on stylized trees and effectively yeah what we're doing is um we're using this grass blade object and we're grabbing um the normal data from the ground applying it to the grass blade object there's a lot of steps involved but i think one of the only other notable things you got would have to do besides all the junk you have to do in the nodes and stuff and particle settings is to set the shadow mode to none because if you set it to opaque um the grass still casts a shadow on itself however um it still looks better that's why i would say um but yeah you wanna turn that off and uh yeah it achieved the desired result however it came with a few caveats again this was still the first time um this effect was achievable in blender eevee that i'm aware of but yeah it came with a few caveats one of them being you had to use object as your texture coordinate you had to uh select the ground object and this little uh dropper thing here and then check from instancer and that kind of limits how free or creative you can be not being able to use that uv or generated as you can see if i plug this in kind of messes it up and this method because it is using um actual uh in-world objects and it's not using uh paths right because it's not using paths using using objects um that will inevitably from my experience uh have an impact on performance that's why this object has to be so low poly i realized i could even decrease it further by just making it like a literal sort of a pyramid without a bottom uh but yeah uh this is that is how i was able to uh achieve this result and um it even works on objects like hills however while experimenting with kidneys method i found another issue arise from my previous method and that was because it's rendering objects instead of a path particles the particles weren't following the directional normals of the objects and this is something i'm still not sure how to fix uh i'm confident that there is a solution however as i said uh these other methods over here have proven uh way easier way less resource or time intensive so uh i probably won't look into a solution for this i could see situations where you would want to use objects instead of standard particles uh so let me know in the comments if anyone if any of you know how to uh kind of solve this issue when it comes to getting particle objects to face that the right way according to uh the emitter objects normals as you can see with here they render fine uh as paths but uh not as objects so yeah about a day after i uploaded uh my first tutorial artist and twitter user kidney or puffertron watched my video and was able to greatly simplify this method confining all of the work to only two materials without like i said all of the aforementioned uh caveat that came with my original method as you can see it completely interacts with the light i'm about the same however the actual effect is way easier to achieve but as you can see uh when it comes to the corners of objects and stuff and the shadows um they kind of have these weird artifacts and the material itself lacks a bit of creative control when it comes to the shadows and as i'll show you uh there were a lot of notes um that just as far as i could tell didn't really need to be there to achieve the effect and it got to the point that i thought uh these were different enough that i would pitch this as my sort of uh revised method sort of a combination of my original method and kedenae's revision again big thanks to him i actually got this effect working uh quite a few days ago and i would have recorded this video sooner unfortunately there was a lot going on i had family staying over due to the organ fires and i also went temporarily deaf practically for uh the past like four days my hearing is mostly returned uh still having trouble hearing out of one ear but i wanted to get this video out to you guys as soon as possible so i'd like to apologize if there's any audio problems that i somehow overlooked i think the best place to start is really to just start breaking down why certain methods work and don't work in specific circumstances first let's start off with the standard tune shader i said in the last video i was going to uh make this project a rather the previous project like a blend file available for download in the description since then a better method was found literally the very next day and then i was able to even provide that method further i won't be uploading those blend files into the description of that video instead what i'm gonna do i'm gonna link this video in that video's description and then this video's description uh i will try and get this blend file compiled and uploaded for you guys to use i went i went through a lot of work trying to to visually explain uh how all of this works and why certain aspects of each method i work it don't work as you can see with uh this method there's a quite a lot of notes uh as uh this method required a lot of workarounds in order to uh get it to work so i likely won't be going over each and every little detail i'll leave that up for you guys to uh read through uh the blend file yourselves but for those of you who don't want to really download this and would rather me just show you what to do in this video and why certain methods work and don't work i'll be sort of showcasing each method and explaining how it was better refined over time so starting with the first um this isn't even really a method because it does not even achieve the results we want this is just an example of uh trying to get two shaders to work this is what um how most people would achieve a sort of stylized grass effect uh in the past as i said in my last video i was able to achieve this sort of effect using kristoff's method on making a stylized gameplay grass it's just um he straight up used a uh an image texture uh however i didn't want to have to draw one from scratch and so all i did was i just took a uh a uh musgrave texture make sure it had you know texture coordinate mapping um you can uh increase and decrease uh the scale of the texture with this or of course you know this if you want um i plugged it into a bright contrast node to kind of uh give the patches uh the right sort of uh colors plug that into a color ramp for some extra control it also uh it also kind of caps the the effect of the bright contrast node keeping it from getting you know a bit too crazy um plugging that into a mix shader so basically what this does is it uh takes the black and white data and uses that to determine what is uh this lighter shade of green and what is this uh darker shade of green and basically all you do is just plug that into an emission shader and it gives you pretty good looking uh stylized grass this is all in ev by the way i don't know if i uh specified that but this is all navy however the problem with this method is you don't get any shadows so what i and other people would try to do is just plug in a toon shader see what would happen and this of course brings us to uh our conundrum which is uh that it only really looks good from this angle the angle facing the light but if you go to an angle facing uh side on or behind the light you could see the grass particles are casting shadows on themselves and we don't want them and solving that was the uh conundrum trying to figure that out and through a lot of research and experimentation um and huge thanks again to lightning boys video on ghibli stylized trees i was able to figure it out as you can see it uh completely interacts with the light as you would expect from stylized grass however as i said before it came with a few caveats so i explained the basics already how it works using uh the object and dab transfer modifier and all that uh complicated stuff again you can uh read all of this if you want it's a lot to go through um basically it's uh the same shader as the previous one basically the same shader the only difference is um texture coordinate has to be set to object uh all these got to be you know to the same settings as i said before and the material itself the shadow mode has to be set to none but yeah as you can see it uh it achieves the effect pretty well um but there are like i said some caveats uh still don't know how to solve this problem i'm sure there is a solution i tried messing with um this rotation the rotation settings and the particle settings of that did nothing it might be a fault on blender's end like i've heard that the particle settings are just kind of uh a bit broken in 2.8 i believe i'm using 2.83 i'm not sure which version i'm using and yeah this has um this has a slight impact on uh performance but you know this was obviously like a huge step up over this like just getting it to even look close to what we want um was uh i was pretty proud of that uh then literally the next day i still can't believe how quickly he saw he saw this but um keaton a saw my video and he was able to uh replicate the effect really closely uh using only notes only two materials one for the grass and one for the ground i'll explain why you need the two materials a bit later as you can see unlike my previous method his is not restricted to what type of texture coordinate you can use you can use generated you can use uv you can change um whether the mapping no typing point texture factor as far as i can tell there is no difference actually wait he doesn't actually show uh what his uh grass texture looks like he's got it kind of uh compressed i forget how to do that again we don't really see how he made his texture but this is just probably the easiest way to achieve sort of like patchy grass texture you know yeah the real difference comes down here on how he grabs the normal data because compared to how i was doing this uh before i was using a grasp light object and using uh this data transfer modifier now i assumed there was a way to do this with materials it's just i wasn't smart enough to figure it out but as you can see he's got quite a lot uh going on plugging in a geometry normal into like a normal node and not to the normal diffuse node he's using a mix shader using hair info and all this stuff and then finally all that comes and plugs into uh plugs into uh what is effectively a standard tune shader node if you go back you can see uh this is basically how you uh make a simple tune shader um i probably should have clarified this uh but basically how this works is it's uh it it's grabbing the um normal data from a diffusion so like the incoming light data it's using the diffuse shader to sort of uh grab or determine uh what all that light info is and then you're taking that and you're converting it into color and then you plug that into color ramp to kind of tweak it uh how you want i think it's easier to visualize this if i uh just uh duplicate this and plug the color up into the faq right here and then just straight up plug that into a mission and you will be able to more easily see what it's what this is doing if i were to uh make a sphere gave it uh same shader you can see it's a it's got this tune shaded effect uh that will always follow the light how sharp this um effect is is determined by the color ramp and then plug that into a mix basically what this does is it decides what is and isn't shadow and how i determine what shadow is is i uh take the base color of the grass and i um i plugged it into a hue saturation node and as you can see if i change the hue it changes uh the shadows color so you can you know play around this with this and make the shadow any color you want it's basically how my effect works um however if you look at kidney's methodol he's doing things a bit differently he's still having something um grab the normal data in this case a normal node specifically and um converting that information uh into color but instead of using a mix node he's actually using a multiply node uh so basically what that does is uh takes the base color and he uh multiplies the brightness of it i think it produces a pretty good effect but again i don't think it offers as much control uh as my original method with the uh the mixed node and the hue saturation i think that this offers a much more control but yeah um i actually was recording a tutorial where i was just going to say everyone use this method it's uh it's infinitely better than my previous method it improves and simplifies it in almost every single way big thanks to keden and all that and yeah i still want to clarify that uh what kidney did really broke ground showing that this effect is in fact achievable using only materials without all the complex modifiers and all that stuff however as i started to uh really understand how his effect worked and i sort of picked it apart i realized that there's actually a lot of unnecessary uh nodes in here and like i said i i did i don't believe it gives you quite as much control that's it i'm not trying to batch this at all because it is a huge step up over my previous version it pretty much rendered my previous method utter garbage um i don't in any way hold any negative feelings towards him for that because honestly this is what i wanted i wanted us as a community to refine this concept even further and that's what kidney did oh i should also point out um this is something that kidney didn't even mention in his own tweet but in order to achieve this effect you have to make sure that the grass shader by the way this uses two chairs i probably should talk about the ground shader in a bit but the grass shader um shadow mode has to be set to none this is really important when it comes to achieving the effect if you set it to um you sent to opaque uh yeah you can kind of see it still looks good i could see a circumstance where you would want this sort of effect honestly but yeah like this is this is the the desired look that we want okay switching over to ground shader for a second so basically how this material differs from the previous one is uh as you can see uh down here um instead it just uses a simple tune shader this was another sort of thing i noticed while breaking down uh his method as you can see uh bringing his uh tweet back up he has this complex thing going on in order to uh grab the normal data and uh convert it into color uh however for the ground he just uses um basically a simple toon chair he doesn't use the color ramp that's kind of something yeah i do to better like refine the look actually yeah if you go like two is a original tweet you can see that them the shadows um are really soft and that's because he wasn't using um a color ramp that's not necessarily a bad thing that's just can be like a preference thing but uh yeah i think having a color ramp really gives you um some extra control so yeah as i was saying um he uses this more um complex setup to uh grab the normal data and convert it to color but then for the ground um he just uses a standard tune shader and it's using this simple tune shader that kind of uh leads to like you can see from you can see it better from distance but there's kind of these artifacts from the geometry that kind of peek through because basically what's going on is um the grass particles obviously i don't know if this was something i really needed to explain but the grass material is applied to the grass particles you know down here i feel like that should be pretty self-explanatory if you've used particle system before but then this is applied to the actual mesh and that sort of achieves the right effect and the reason you need to this the grass needs to have its shadow mode set to none but then the ground needs to have its shadow mode set to opaque and the reason for this if i were to set it to none now the emitter or ground object is not casting a shadow onto the grass despite it facing away from the sun and that just looks weird um but yeah if you you know got rid of this um i could see some circumstances where you would be okay with this like maybe like maybe with um in some styles you might want that effect but um george you are really authentic look you want to have a a separate material applied to the ground and then have the shadow mode set to opaque but yes like i was saying there's um some artifacts that can be seen on the edges of the mesh and this is something you can also see with the uh the monkey head they're a lot they're a lot sharper and it looks it um compared to this it just it just looks a little weird and again looking at this you can kind of see by comparison like like again i'm not saying like my method over here is like the most perfect it could ever be i'm expecting that at some point someone will come out with perhaps even an even better method i'm just saying um while experimenting with kidneys method i notice all these little ways it could be improved upon even further and again if you want to read through all of this you totally can you can download the blend file but uh yeah still compared to what it was like before this is like really clean and didn't come with all of the uh the caveats that uh my previous uh version did okay and with that i think it's time we finally move on to my revised method basically what this is is it's sort of a combination of kidneys method and my original materials is trying to kind of get the best of both worlds so if we peer in here and have a look first so there's a lot of there's a lot of notes here um now it was when i was experimenting with kedinae's method that i discovered something mind-blowing okay as you can see this isn't too far off from from the base tune share it's it's it's not that far off at all in fact it you look it's um aside from all the you know the text it's basically the same except for one thing this this is literally all is required that is required to achieve the effect if you don't believe me look look at this well let me just turn this off look at that you see do you see what do you did you see what just happened we do it back let me just play back for you this is all that you need to achieve the stylized grass in fact literally just one node plugged into a the normal socket of a diffuse and a standard tuned shader it's not all that advanced plug that into a fact and then just the hue and the value of your base texture that's it that's it this is the entire thing um i guess yeah there is the you know the ground shader obviously which is basically the same we'll get into how that's different it's not all that different but just it's just wow like look there's no there's no there's no uh weird modifiers on this thing it's just this is it this is like the only thing this is the thing we were missing all this time we were trying to figure out why we couldn't get shadows to work just this one note i did not nothing all nothing needs to be plugged into here so keita makes method he's got all this going on um and i for the life of me i can't figure out why any of this is necessary like i tried i really messed around and played with it and as far as i could tell uh you don't need any of that you can just use just the normal note and i feel so stupid i knew this thing existed but it never occurred to me to try and use it to grab the normal data it never occurred to me but again i wouldn't have figured this out if it wasn't for kidney and his um revision that he posted to twitter but yeah just he had it plugged into um the diffuse and then has that plugged into a shader node and that plugged into you know his multiply node and i thought to myself why can't i just plug that into a diffuse without any of this mess and then plug that to a shader rgb and then color up and like why can't i just do that and yeah you totally can it's just crazy how complicated we've been making this same and in reality it's that easy you just plug it into simple tune shader plug that into a mix node then you can you know take your base texture whatever it is uh split it in half i have you know base texture going here then have like a hue saturation to determine how that base texture color is different uh as a shadow and then just plug that into an emission and that is it i'm sure a lot of you are wondering how does this even work why is it that this one node makes all of this work and i myself do not fully understand as i i write it all down right here i do not fully understand how this works however based off of my observations based of all of the like the research i've done in experimentation basically the conclusion i came to is that with the shadow mode set to none because if you you know turn it to opaque it's like same problem as before uh when you set it to none and you plug in this normal node it either grabs the data from the object disregarding the particles or um if flat out assigns the particles a uniform normal value again i would like someone to really like explain how this works but those are my two theories i honestly have no idea why this works just that it works either it's taking data from the plane because you know the object has the material in the material library and it might just be applying that that normal two particles as it doesn't account for them as uh as we can see was the case with the data transfer modifier and appeared to just it just didn't seem to account for um the particles which is how we were able to achieve the effect um or it's completely impossible like i was saying that it just um applies a uniform normal value across all of them how that works i have no idea it's just that's it's just works like that that's all that's all i could say yeah so just like hedonise method uh you're not constrained to using only one type of texture coordinate you can use generated normal objects you can use whatever you want um something important i should say because these two methods use two materials uh you want to make sure that the scale of your texture either you know through the mapping node or for the musgrave node you want to make sure that um either way they're both the same scale otherwise it will start to uh look weird if i were to mess with the scale here uh you can see it's not really following like if i sk like keep an eye like right there it's not really does it look right so you want to make sure they're the same so it kind of like blends into the ground uh that achieves a really nice stylized sort of uh effect as for this whole deal with the artifacts you can see there's like some artifact thing going on right here um um however this is a lot smoother and keep in mind this is just a square i didn't like subdivide this or anything yet the shadow uh it just looks better especially from a distance you can see it's it's a lot softer and the reason for that is you go to the ground shader so what key didn't i did yeah for his ground shader is he you just use a simple tune shader and it works pretty good but it's still like as i said has those kind of artifacts going on so what i did was i just plugged in another normal note in there and it uh you just smooth it out you could play with um the color ramp a bit if you wanted try and see what you can do with that but from my experience you just kind of wanted to leave it the same and uh it gives you a really good result however like i said before you must make sure that the ground the ground material is set to opaque because if you set it to none um it won't the object won't cast shadow on itself um and again there are instances where you might want that but like say if you're like um designing a cliff or something or like have other objects like characters with fur for example and they're kind of um one standing in front of the other and there's a light source in front of that uh you want them to cast shadows on the object behind them as well like if i were to duplicate this you can see on this cast as shadow on this object but if i were to disable um it does not and that just looks weird so yeah keep that set to opaque and like i said using this method uh with the mix and the hue saturation value it gives you a lot more control whoops oh that's something else you have to keep in mind okay so when you're changing this it's a different material so uh in order to get these uh looking the same you want to make sure that whatever you're doing here you're also doing to the ground yeah like i said you can make this any color you want i make it brighter make it like a dark darker blue to make make it like a like a red however it won't look right if the ground shader doesn't have its hue and saturation stuff set to the same settings so what you'll want to do is uh i guess just cut like once you get this looking to how you want i guess you would just copy paste it over i don't know if there's a way to um grab the information from a specific node from another material or maybe have something else uh determine what these values are if so that would be really useful seeing as how these are split up between two materials but it's not that big of an issue especially compared to like all the work you had to go through before this is like way better so if i do this yeah now you can see now it looks really uniform and it completely interacts with the light again this is just crazy think about where we were only like what like a week ago people didn't think this was possible or at the very least it was something they didn't know how to achieve and suddenly a week later it's at the point where we refine this to such point look at this look at how easy this is this is all this is literally these two materials it's all you need that's crazy i wouldn't be surprised if someone found a way to refine this even further achieve even better results somehow or even apply it to other aspects like other types of foliage or clouds or all kinds of things so yeah if you're wanting if you're wanting me to do a tutorial where i like create the ground plane and make a particle system from scratch i just did a tutorial on it before although being with the more complex method instead i would recommend kristoff's tutorial on ghibli stylized grass that was a tutorial that i watched along with lightning boys video on ghibli stylized treats it was sort of a combination of those two videos that led me to originally figuring this dilemma out but i think it's so cool seeing the sort of community progression trying to figure out the ghibli aesthetic but yeah i'll be sure to compile this and make it a uh and link it in the description if any of you want to uh check it out and play with it like i said i put a lot of work into explaining them how and why these methods work or don't work in certain circumstances big thanks again to these guys who made the video possible i'll be linking all of them down in the description below if you're wanting to see more animations or blender stuff from me uh consider liking or subscribing the main reason i endeavor to uh set out and try and uh solve this problem is because i myself am working on a video essay and i wanted to do some cool stylized animated segments for it so uh be sure to stick around if you're interested i apologize again if the audio sounds bad again i currently have some hearing problems and i'm not all that comfortable with speaking in front of a microphone and all that stuff so please be understanding but i'd love to hear any feedback you guys have and with that i think that's everything so far i don't know if i'll do a follow up to this video if a better method comes about i just felt like my original method was so outdated by this point i had to do a sort of update video because i didn't want people go about doing it the super complicated way with all of its caveats if a simpler and more effective method existed thank you so much for watching and i hope to make more stuff with you guys in the future [Music] you
Info
Channel: LanceBeryl․Dev
Views: 65,631
Rating: undefined out of 5
Keywords: Lance Beryl, LanceBeryl, Blender, Eevee, Blender Eevee, Tutorial, Blender Tutorial, Ghibli, Stylized, Grass, Toon Shading, NPR, 3d modeling, particle system, datatransfer modifier, modifier, render, rendering, 3d graphics, Ghibli grass, Miyazaki, foliage, lighting, toon lighting, hair, fur, blender ghibli, real-time, animation, how to make, shading, shader, shaders, material, software, normal, normals, blender normals, walkthrough
Id: zjKKZL03HNs
Channel Id: undefined
Length: 37min 36sec (2256 seconds)
Published: Thu Sep 24 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.