UPDATE Ghibli Stylized Grass Shadows in Eevee Made EASY | Blender Tutorial (Follow-Up)
Вставка
- Опубліковано 11 вер 2024
- A follow up to my previous tutorial on creating Ghibli stylized grass with working dynamic shadows in Blender Eevee. A lot of progress has been made thanks to Kidane ( / puffertron ) and his method. In this video I attempt to explain what he did different, why, and how I modified it a bit further to produce an even better result.
- If you want to bypass my thic knowledge dump and skip right to the solution: 25:03 (you'll miss all the interesting exposition tho..)
Blend file: (www.dropbox.co...)
- Let me know if the link works.
I don't think you really need to watch my previous tutorial, as it's now pretty outdated, but it does showcase a full breakdown of the original method start to finish if you really feel like torturing yourself: • Ghibli Stylized Grass ...
~ Special thanks to these people for their insightful insight:
Kidane G: / puffertron
Lightning Boy Studio: • How to Create Ghibli T...
Kristof Dedene: • Tutorial: Ghibli/BoTW ...
- Sorry again if there was any audio problems, my hearing is still a bit kerfunked, and I haven't made any video things like this for a few years.
*_UPDATE:_* After I made or was recommended notable improvements to the shader, and many beginners asked I make a more straight forward walkthrough, I decided I'll be making a _new_ streamlined tutorial that showcases upgraded functionality. I am currently working hard on another massive project so please understand I'll return to this when I can.
Hi Lance, I appreciate all the work you put into this. Thanks. I have a couple of questions.
Q1. For the New Revised Grass (Shader 3.0) it looks like you used a grass object (triangle mesh) where the other video you are using a hair particle. which one is better to use. please explain
Q2. Can I use the Grass Shader 3.0 on a hair particle system instead of using a grass object?
Hey :) any info about that possible update ? :) cheers
Famous last words ):
Honestly, please ignore these kids with 5 second attentions spans that can't bare to listen to any background or additional supporting information without going into some sort of ADHD meltdown. Like somehow spending 30 minutes listening to somebody teach and explain something to them that they couldn't work out themselves without loads of experimenting, or probably ever is ,going to kill them. There's no fun unless you can just cut and paste from a blend file without understanding anything that you're actually doing so that you can replicate it and build on it later using your own brain AMIRIGHT?!!!! Thanks for offering your hard earned knowledge and providing, in collaboration with others, huge value to blender users wanting to get this kind of look for FREE. I greatly appreciate this video.
Thanks for the support. Yeah, ..it was never intended to be a standard tutorial, it was supposed to be more of a follow up video elaberating on some things. But I do understand some people really want to cut to the chase, even if it does dismiss a lot of the potentially useful information that went into finding the solution.
Because I've got a number of requests, I might just do one final tutorial that's quick and to the point, as well as exploring some other applications or stylized materials. I am a bit preoccupied with stuff tho, so not sure when that'll come about..
@@LanceBerylDev I'm waiting for anything you bring for us mate. Lol I perhaps shouldn't had gone off so hard there. I just see too many comments with people complaining that free tutorials aren't custom made to their exact needs, moaning that they had to spend a few extra minutes or fast forward and It kind of irks me. You can't change people though, you can only change you and I commend you also for taking it on board and trying to cater to everyone. You're a champion.
if you could do a tutorial where you showed everything you did for the last one step by step that would be fantastic. No pressure, it'd just be helpful to people like me who are just starting out. I'm currently trying to follow along using the file and struggling quite a bit.
it would be very helpful
My hearing still hasn't fully returned to normal, and I only recently got my mic and stuff all set up, so I apologize in advance if my audio sounds bad or anything.
It's all good! Thank you!
Hello! This is amazing!!! Some things you mentioned that I thought I would try and help with:
at 6:30 , Making particle objects use Object normal data for orientation - ParticleSettings > Advanced > rotation > Orientation > Normal or Normal-Tanget
at 30:32 and 33:24 , to make sure that whatever transformation you apply to one of your materials you also apply to the other - If you group (select, ctrl+G) the nodes that are the same in both materials, in this case, everything but the texturecoordinate and normal nodes, and then use that created group in both materials, then you can adjust something within the group and it will change both materials.
For anyone who needs it step by step:
(in shader editor for 'grass-shader_3-0' > select all except texturecoordinate, normal node and material output > ctrl+G > Tab out of group > select group > ctrl+C > toggle material to 'ground-shader_3-0' > select all except texturecoordinate, normal node and material output > X (delete) > shift+A > group > NodeGroup > link texture coordinate UV to nodegroup vector input, normal node into normal input and emission output into Material output node)
super helpful when editing after you've created both!
I hope someone makes an actual tutorial out of this ...
Thank you for sharing this and for going into detail explaining logic behind all the shader variations. It's extremely valuable. I can't believe that people are complaining after you took the time to share the knowledge for free, even providing the blender file. I really appreciate it! :) Looking forward to new stuff you make.
Thank you so much. ..I still think I could've done better, but it was only my second attempt at a tutorial I guess.
Really nice tutorial, I was impatient to just see the latest method, but I'm glad I watched the whole thing. Learned a lot about shaders that I wouldn't have otherwise, and I wouldn't have understood how amazing it is at 26:05 when *it just works* lol. Thanks for all the knowledge, appreciate how much you put into this
great tutorial, but I felt like an idiot when I saw you plug the normal node into the diffuse shader hahah I'd been trying to figure a solution out since your last video since that method wasnt running smoothly on my pc. keep up the good work! hope to see more from you
Don’t worry, I felt like an big idiot too. XD
This is gold dude thanks! If you happen to find a similar solution for making the ghibli trees with this method please let me know!
im a bit surprised i only found out about this tutorial just now. i wanted to find somebody to make this tutorial since i dont do any content on youtube and dont have an internet presence, but im glad its out here now. What i like most about this shader is that you can finally also animate it. Ive been doing this kind of grass for a while now and it makes every scene look so good :D
Edit: i found that you dont need a ground material. i just use the grass material for the ground too
As explained in the video, the second ground material is required for the emitter object to cast a shadow both onto itself *and* the particles. This is important as to allow say.. a grassy hill/cliff to cast a shadow onto the grassy plane below. Or allowing for an animal/object with stylized fur to have the far side (facing away from the light) to be cast in shadow.
-Yes you can still achieve the stylized grass effect without the second material, as it still receives shadows from *other* objects, (which might be desirable/efficient in certain situations,) but you will not receive shadows cast from the backside of the emitter object that way, which is why there is a second material.
-Basically, the first material applied to the particles prevent them from casting onto themselves, but allow other objects to cast on them. The second material assigned to the emitter object allows the object to cast it's shadow onto the particles when it is obstructing view of the particles from the light.
if using object for "particle grass", you can edit the object's normal all the way up ( "auto smooth normal" must be ENABLE) , that way the grass will always look shiny and receive shadow.
If you're coming in way late like i am, here's how you get this working...
Follow the original tutorial up until he starts making an object for the grass particles (about 16 minutes): ua-cam.com/video/UpV0QA8lc7A/v-deo.html
Then, add the Normal Node as shown in this video to the front of the Diffuse shader he added.
You're supposed to duplicate the ground plane shader, and change it's shadow method from Opaque to None, and use that on the particles, but... i'm in 2.93.8, and everything is working fine (actually kinda better) just using the same material on the ground and the particles. Experiment.
Thank you, Lance (and others), for all your hard work and experimentation with this!
In my opinion, Kidane's methods produces a higher dynamic range of shadows. Maybe you just chose some different color values but the "Shader 3.0" produces a more'washed out visual, which isn't neccessarily bad. I'm just glad that the issues you seemed to have with shadows are extremely simple to fix/avoid in Unity.
Also it is fine to go into detail about the whole process and how you arrived at this point with the shader. HOWEVER, I would place your final explanation first then go through your long-form explanation of it all. Shader development is an iterative process that can sometimes be frustrating, learning what went wrong/what to avoid is valuable but only for those who haven't already made those mistakes or know otherwise.
Kristof and Lightning Boy Studio make such amazing NPR content and I think this stylized shader works nicely with some of their work.
I'm actually working on a new tutorial as many people found this one not super straight forward, I framed it morso as a follow up to my original video, which I acknowledge was probably not the best thing to do. It was also basically the second tutorial thing I've ever done so yeah I'm still getting used to this.
The next tutorial will go through the process quickly, step by step, featuring timestamps so it's much easier to watch through the whole thing or jump to a point that's specific to what you want to know. There were also a number of things I overlooked in the original tutorial, (like node group functionality, which I didn't know the extent of until now,) and other elements I've been working on that add more dynamic functionality such as reacting with multiple light sources and reflecting the color/intensity (so multiple interactions between like moon light, torch light, sunlight, etc are possible,) and optimized collision/interaction with objects.
In regards to as you say "higher dynamic range of shadows" I'm not sure specifically what you're talking about. In terms of color, brightness, and saturation, I think my method offers way more user control (and my next tutorial will cover more dynamic interactions.) If you're referring to the fall-off or gradient the shadow makes, that's why there's the color ramp; to adjust the sharpness to your own liking or the circumstance of the scene
-I simply just preferred the have sharper shadows as I felt it was more in line with the ghibli style, but you could just as easily mess with individual lamp settings as well I guess.
The emission shader at the end isn't needed - the rest of the setup already determines the absolute colour of objects, so a viewer node should work fine. The map range is like a colour ramp, but with more control (and you can push min/max beyond 0,1). Changing the "to" values will darken or lighten the whole thing (like using add/subtract), while changing the "from" numbers works like the colour ramp, or level editors in photography software. Flipping the 0 and 1 "to min/max" inverts the outcome, like manually inverting the colours on a colour ramp. Map Ranges are useful as masks, especially in procedural textures.
The "viewer" node is just an emission shader with a label on it.
If you'd rather skip all of the information in regards to issues / lessons learned with the previous methods and simply jump right into the solution, here: 25:03 (You'll miss explanations of various node setups and stuff tho.)
I know this is a bit old but I managed to stumble on to this video. At 33:31 minute in the Base Ground Color/Texture frame if I use a mixrgb node after the colorramp it overrides the colorramp node and messes up all 5 of my grass colors. In order to fix this instead of a mixrgb node I used a brightness node and it work!
Thanks for the video.
Yes! This what we need to end the Ghibli Arms Race!!
hey that works pretty nice! I checked out the file too, it was very useful in understanding what's going on. Thank you!
beautiful
I found this kinda hard to follow, i think a straight forward tutorial would be much better
thank you so much man ! this was so helpful
I love you.
Thanks for all the good work!
Thanks allllottt
Thank you sssssssoooooooooooooooooooooooooooooooooo much!!! You've done my day!!!
This is amazing thank you so much! Super useful!
Naturally, normals of a plane is just an up vector.
Maybe combine xyz with 0,0,1 will work too. (Maybe not)
P.S. I believe this node silently takes normal from the instancer (texcoord normal plugged into it should not change anything) again, maybe not
yes combine xyz with 0,0,1 has the same output so it gives the same result
I really love your video! thanks 💖❤
Will you be doing more videos about NPR style stuff!!! 😍😍😍😍😍
I’ve been looking for npr style tutorials stuff like forever.(clouds,grass,water, trees) to name a few. You could be the channel that has every thing I need.
If you do more videos actual tutorials.
Thanks for the interest! I have a lot planned actually, made some big npr breakthroughs within Blender's limitations I haven't really seen replicated elsewhere. Been preoccupied with a big project however for the past.. two years now? Hoping to put that out sometime 2023, and follow up with a slew of concise tutorials as viewers have requested.
@@LanceBerylDev Cool 😀😀
Hi, so I recently found your command block blender image on deviantart that you made a few years ago, do you still have that file available for download? Or maybe for sale? I would like to use it for a youtube intro, it's a cool model.
I made it on my old pc with an older version of Blender, so I'd have to find it. Yeah perhaps I could put it up on turbosquid or something, though I'm not sure if I ever finished it, and I'd have to make sure works with new Blender versions.
..I got some junk going on atm, so it's not exactly a priority rn, but I'll see what I can do when I get the time. If I did put it up, not sure if I'd charge for it, but I'd want credit in the description or intro in the form of small text or something.
@@LanceBerylDev Ok thanks, and of course if you find it and I use it I will give credit, it's the least I could do. :D
@@LanceBerylDev Hi, do you have any updates on the command block blender model you made a while ago?
@@LanceBerylDev Hi do know if you might have your command block blender model still? I haven't made an intro yet, but that command block would really look good in it.
@@TimberForge Hey, big sorry I haven't responded, lot of crazy stuff has been going on, and for some reason UA-cam didn't notify me to your new responses so I forgot. Saw someone post a pic of my block render on reddit and yeah, the poster isn't me. Not sure if they're trying to take credit for it, but they sure didn't give me credit. Some big UA-camr actually covered the post in a reddit video that got 1 mil views, which is cool, but kinda sucks I didn't get any credit for it.
So yeah, um If you'd still like to use the model/animation, I could try and get it working in 2.9, shouldn't take too long. I just ask is that I get small text/credit in the intro for as long as you use it. ..If you want me to do a more personalized animation, I could also do that for a fee, though I've never done a intro commission before, so like I don't know what a reasonable amount would be.. um, if you're interested just give me an idea of what you want through a DM on Twitter. If what you want requires enough work that I'd feel obligated to charge something, we could discuss what seems reasonable for a price.
is it usable in a game engine like Unity to make a big terrain?
amazing this is a life saver
Nice result but very confusing video. Even with the timestamp it's very hard to see what you've done. I couldn't get it to work when following along.
For those of us who really don't like downloading files a proper tutorial would be much more useful.
Also a full screen shot of the nodes setups that we can freeze would be great so it's wasy to copy.
Amazing.
Sadly dropbox no longer exists; would it be possible for you to upload a new link to the file?
Can you do a video from empty new cube to grass with cube on it for us dummies to follow along XD
That is a friking brilliant method!!!! 😮😮😮
Does this work on other objects too?
Not sure in what context you mean by other objects. If you're asking whether or not the grass/hair works when applied to any surface mesh, then yes it does.
But if you're asking whether or not this effect works while rendering particles *as* objects instead of as paths, I haven't tried. I'd assume yes, however there's still that orientation/rotation issue with object particles I don't know how to fix.
Great video! but for some reason I cant get the shadows to work, they also disappear when I put the stuff of the tutorial file into a new file and I have no clue why, does someone have an idea?
Edit: Nvm, I figured it out but in case anyone else struggles with it: make sure you also have the right world shader stuff
Edit No. 2: They work in the viewport but not if I render it? I tried to render it in Eevee and other shadows in the scene work but not the shadows on the ground, I'm not really proficient in Blender yet so any tips on how to solve this is welcomed :D
I think that at the actual blender version this grass by hair particle doesn't work anymore
where is the tutorial starts at guy?
my grass is inverted how do fix
nevermind
This is a really cool exploration of different ways to do this. I was wondering about a different issue I'm having though, when the grass particles are set to "Children: Simple" and you increase the radius, it makes them spread outside of the emitter, and they'll overlap objects that are next to the grass, but if I switch it to "Interpolated", it stays contained to the emitter, but the texture doesn't mix the colors around in a more natural way.
Any ideas of how to solve that? I haven't been able to find a way to mask out the stray grass pieces at the edges. Using booleans still has overflowing particles even if you use it to change the shape of the emitter.
Hi! Yeah that's just kind of how children work, they are effectively offset from the spawn point of the parent particle. In respect to ways of controlling grass extending past the desired boundary, or clipping into grounded objects, there are a few potential work arounds.. but the simplest I can think of is creating a vertex group to offset the height or density of particles, though this is limited by the resolution of your (emitter) mesh.
I plan to redo this tutorial (for the third time) to make certain facets more straight forward, amend oversights, explore viewer questions, and showcase my improved shader, ..though I'm not entirely sure when that will be. I have more testing to do.
@@LanceBerylDev Oh interesting, looking forward to that! Basically I think my problem will be solved if I can have something like a rock (or anything) next to or in the grass, and the grass isn't going through it
anyone else getting the issue where shadows aren't even showing up?
I figured it out, i needed to change the world settings like his and turn down the value on the hue saturation value node in the object shader
moral of the story...NORMAL NODE IS OP!!!!!
You mention that it's a bit of a hassle to change values between the two shaders, couldn't you just make a node group that the two shaders share? That way, you only need to edit one set of values.
Is that possible? I don't use node groups that often, but if what you say is true, that sounds incredibly useful; I didn't know that was a feature they had. 😅
Okay firstly; to anyone saying they need a full blown tutorial for this.. you don't. It's all documented in the blend file.
Secondly I do have a question, why does the ground plane have a different material? I got the part where you need to set it to "none" and why. But I don't get any visual difference if I make the groundplane and the particle system the same material.
If he said it in the video can someone give me a timestamp?
There is a difference regarding how shadows from different objects with the same material fall on eachother and the quality of the shadow. I will be doing an updated tutorial in the future, as I have found many places where it could be improved or I made a mistake. Currently tho I am deep into another project that I need to finish first.
thank you for sharing and idk if its just me but your particles in the blend file aren't rendering
I felt like the tutorial was stating over/looping about 5 times, really hard to follow.
Sorry, it was supposed to be sort of an explanation of the older methods, the problems they present, leading up to the better revised version, ..however some folks like you have pointed out it was a bit hard to follow, so I'm considering doing a redux tutorial more to the point.
It only was my second ever tutorial so, I'm getting great feedback on how I could do better in the future. Thanks.
@@LanceBerylDev I think a redux would be great recreating the whole thing from scratch. Would also ask if you can figure out a way to recreate Dedenes different colored patches through nodes. I figure it would be adding some extra musgrave textures, but I'm still very new to Blender. Thanks for sharing this update!
@@artofminh I tired recreating it via nodes (I'm also kind of inexperienced tho) but at the moment it seems the best way is to create a seamless tile texture in PS and just use that. I'm gonna try again after reading some more about the different nodes for procedural stuff. Voronoi + color ramp textures seem to be the closest, maybe with some sort of smoothing.
Just use a driver to drive the ground plane's shader. It should work.
it works fine but is there a way to make it react to light coming from an emission object? it reacts well to light from a source like sun light or area light but when it comes to objects emitting light like a cube with emission shader, it just doesnt react to it. i am new to all these so please explain
I think by default Eevee emission materials don't give off actual illuminance, but can with an irradiance volume, but this obviously is limited to the set volume space. You could also fake it with a point/area lamp in front of / place of the object.
The big issue however is that this incarnation of my material only reacts to one individual and intensity of light. I've since developed a new material that works with multiple light sources and reacts dynamically to light colors, but I haven't made a tutorial on it yet as I've been preoccupied with a large project for the past.. year apparently.
I'll try and get a tutorial out eventually, I don't know how soon cuz I'll need to rework the material a bit to work within most contexts.
@@LanceBerylDev we will wait patiently for that moment to come
can this be done with Cycles render?
does it work if you move the light around? I'm having problems with this. It works from 3 directions. But not the 3 opposite directions
It should be working assuming your color ramp is set to the right range in conjunction with your light source's intensity. I'm working on an updated version that better and more realistically interacts with multiple light sources and colors among other things.
Is there are reason why you don't use a color ramp at the base ground color stage? You can add yellows, blues, etc, rather than just two colors.
The effect just doesn't look right without overlapping additional textures and color ramps (otherwise they'd appear more as rings than patches.) I'm planning on making a redux tutorial that's more to the point, and explores more advanced procedural texture options to really match the Ghibli style.
If anyone understands how the particle systems use render as paths instead of objects and still have the grass shape instead of hair strands i would be eternally grateful for an explanation.
Not _exactly_ clear on what you're asking, but it sounds like you want to know how "Render As Path" can be rendered with a visible/adjustable thickness. (Pretty sure I do cover that in this video here, but I haven't rewatched it in a while.) Go to the Render Properties tab, within that under the subtab "Hair" change "Hair Shape Type" from strand to strip. You can then return to the Particle Properties tab and modify the height in "(Particle) Emission" and the diameter root in "Hair Shape."
Really been meaning to remake this tutorial with a better explanation, updated info/techniques, but I've been really preoccupied with a much larger project.
@@LanceBerylDev hey thank you so much for the reply! I was finally able to work it out just a couple hours ago haha (you understood what i was asking perfectly btw). And this tutorial is great! The blend file setup is phenomenal. No need to feel too much pressure to remake this, I'm psyched to see what you've got in the works :)
@@LanceBerylDev ty
Is it possible to animate the grass easily?
I have tried to replicate this at least a dozen times and I cannot get the same result as you. I've opened your dropbox file in Blender version 2.93 and it seems to work fine when the file itself is opened. I have tried following along with this video to replicate the result as well as appending the material into a new file, but trying either of these options doesn't work. The only way I'm able to utilize this material setup in my own projects is to append other objects into a copy of the file you uploaded.
I've rewatched this video and the preceding one multiple times and I can't see what I'm missing. Possibly an option in the render/output/layer properties? Or some other setting you have enabled or changed?
EDIT: I went to try and render a test image to see what the output looked like, and I think I figured out my problem. You have a fairly complex world material setup, and I don't remember if you mentioned that or not in either video. One of the big takeaways I learned through tinkering is that your world setting needs to be pretty dark in order to show the shadows being cast, or you need to fiddle with the world material that comes with the dropbox file until you find something you like and that works. If you still plan to make a shorter, concise version of this review, I think it would be a good idea to mention this.
what setting in the world properties would I need to darken? I believe i'm having the same issue where shadows aren't even showing up.
oh geez i just went into their blend file, the setup they use is quite complex
@@tHEWONDERszs I don't know if it's any one setting in particular, just that the default brightness setting in a new blend file is already too bright and adding different lamps makes it even brighter. I haven't played with this in a while, but you might be able to fix this by fiddling with some of the shader settings so the shadows still appear in brighter scenes.
Does anyone know how to do this on maya?
It's strange but even with normal node the grass keeps casting shadows on itslef, and it look weird.
Even if I open your project from gumroad the resual are exactly the same
Ok, I'm just dumb. Make sure "Shadow Mode" in your grass settings is set to "None" and in your Ground material to "Opaque"
Sry
Hey! I loved your video!
When I create new objects and use the same particle system it doesn't work properly, for each object I have to reconfigure the particle system from scratch, why is that?
Like different objects have different densities of particles? Yeah, that's just the shortcomings of Blender as far as I know, and to my knowledge there's no vanilla feature or plugin for particle distance culling, which is frustrating. You just have to copy the system to the new object and change the density relatively. You can also weightpaint the density so only specific areas of the scene have grass, and you can even sort of create a cull system with it, but it's not ideal.
A straight explanation of the final shader setup would’ve been better...
Yeah I considered just doing a short tutorial discussing only the new method, however I personally felt it was important to elaborate on what specifically changed and why.
I did include a timeskip, ..tho I probably could’ve handled the segment better.
@@LanceBerylDev dude no, you put the timestamp and that was perfect for skipping the prelude, i really enjoyed the in depth explanation of each method
How would this work with cycles? Is it possible?
probably not since a shader to rgb node is used in the node setup for the ground material.
Nope
Unfortunately this method clashes with contact shadows. As soon as I turn them on everything is back at square one. But I don't want to leave them off because then the rest of my scene looks bad. Any suggestions?
Um not sure why you would need contact shadows, though I don't know the full context of your scene, but yeah it does appear to force the grass particles into casting additional shadow data. I can only suggest you mess with the contact shadow settings, or the Cascaded Shadow Map settings.
If you HAD to, you could render them in separate layers and then composite them back in, but I wouldn't know too much about that. I've already pushed pretty far respective to what Blender allows for this as is, but I'll let you know if I figure anything else out.
Why I need them is an interesting question indeed :D
Without contact shadows I sometimes have these weird artifacts of light leaking into areas where light shouldn't be. Every tutorial I looked up on it just said to turn the contact shadows on, so I always enable them by default. Never had problems with it until now, hence why I never bothered even looking into other shadow settings
I experimented with it a little and it seems that for a smaller accent light close to other objects lowering shadow bias helps. Gotta play more with the flood light though. Thank you for the help (and for the original tutorial as well)
How do I affect the distribution of the grass if I want thick/thin patches or taller/shorter grass?
I think theres a "clump" option in particle hair settings
Hi, how could I export this to UE4 to use this as foliage grass ?
What do you mean by "export?" Export the grass' material, or the grass' particle system? Either way you can't directly export information of that sort into UE4 from Blender. UE4 does have it's own foliage system (which in many ways is FAR more efficient and developed,) however it requires learning how the system and material nodes in UE4 work; again they aren't 1 to 1 with Blender. There are a plethora of UE4 tutorials out there that produce similar stylized results, but idk if there is a 1 to 1 equivalent solution.
@@LanceBerylDev I’m talking about the grass material with foliage
WOW
in a good way? lol
@@LanceBerylDev oh yes sorry! In a very very good way!
@@NutyRiver oh, well very very thank you! (I know I could've done better with this tutorial, but I'm happy people overall found it insightful.)
dropbox link is down :(
what if I want more than 2 colors on the grass? yellow for example, besides green and dark green. Woudn't it be better to change the colors directly on the ColorRamp instead of using the MixRGB?
That's something you can do, but it looks kinda weird in practice. I was thinking about doing a revised tutorial that's more to the point and showcases how to make a more advanced and aesthetically favorable color result.
@@LanceBerylDev that would be great. In the mean time, is there an easy and simple way to achieve this without changing the ColorRamp? I've tried using another MixRGB but It didn't work as I expected.
Dude hope your hearing is ok. Thanks for this. Is it possible to use it in unity?
I am not very familiar with Unity, but based on what knowledge I have of Blender, UE4, and Unity to a lesser extent, no, the solution is based around Blender's particle system.
-How it works in Blender I can't definitively confirm, but based off of my knowledge it takes the particle emitter object's normal / incoming light data and applies it to the particles; overwriting their default normal / incoming light data.
I assume a similar solution *could* potentially exist in Unity or UE4 through materials, scripts, or nodes, but if you're asking if you could just export the Blender material, particle system, or related settings into unity, no. Blender, UE4, Unity have tools and node/operating languages specific to them and aren't compatible to that extent.
@@LanceBerylDev Thanks so much for getting back to me so quick. I will have to plough through the internet to find potentials then. Yours is so perfect that I haven't seen anything in Unity where you could add those all important blue shades as well. It's so remarkable.
I don't understand how the musgrave texture of the ground transfer to the grass to give different colors
It is a simple mask, the Musgrave texture comes in black and white values. Black determines one value (say 0) and white determines another value (say 100.) Any value between those two acts as a transition/blend of both colors.
We can use the value information from the Musgrave texture to determine what is one color of choice, and what is another color of choice by pluging it into the fac of a mix rgb node.
The mix rgb node has two colors by default, with either color representing one of the two extremes I just mentioned (0 and 100.) Using the b&w information it will set the output texture value of 0 as say light green, and the texture value of 100 to dark green. Plugging it in for yourself should be pretty self explanatory, it's one of the easiest masks to do. (Just make sure your texture coordinates and texture scale are set correctly)
Plugging in a color ramp between the Musgrave texture and the mix rgb node fac will allow you to better control the contrast/strength of the transition from one value to another.
@@LanceBerylDev I think I understand that part, what I tried to say (sorry, I'm not a native english speaker) is that I don't understand how the musgrave texture from the ground material is transferred to the grass material.
I tried on my computer and the musgrave of the ground works, but not on the grass.
@@LanceBerylDev I made it work by connecting the uv to the mapping.
Thanks for your quick reply.
I'm trying to add an environment map, but anything that I add just blows out the shadow. Anyway to make the shadows darker so they show up?
EDIT: just realized incoming light data is being collected from diffuse shader in toon shader node group, so yeah HDRIs would have an effect on the threshold. Big dummy I am. Simply the color ramp should fix.
ORIGINAL REPLY: environment map? like an HDRI? uh.. not sure the specifications of your scene or what you want specifically..
The material in this tutorial being an emission based shader in Eevee, I'd think the grass/material would be unaffected by an HDRI, unless you don't have a lamp in your scene? (Even if it's weak I still think you require a lamp for the effect to work.)
You can always plug the toon shader output into a Mix Shader (fac) instead of a Mix RGB/Color (Fac), and you can then have the grass base, and grass shadow as two seperate emission nodes within the material with varying strength levels.
-Again them being Emission nodes, I'd think they would be unaffected by HDRIs.. but perhaps the lack of a lamp or low lamp strength is contributing to the problem.
@@LanceBerylDev Thanks for your fast reply. I have a Sun light, casting a shadow on the grass just fine. But when I add a Sky Texture to the Background node in the world output, the shadows disappear. Other objects without the fancy grass texture still have shadows on them.
@@LanceBerylDev I figured it out. It was too simple. I just adjusted the coloramp on the shadow. I'm an idiot.
@@dougalias Glad you figured it out. And no no, I’M and idiot for forgetting an HDRI _does_ affect the material because of the diffuse shader gathering incoming light data. Big dum I am. But yeah you’re right, color ramp is the obv answer, that’s one reason it’s there.
How do you add the notes in a box in the shader editor?
I think it's called a "frame node." I recommend watching a tutorial somewhere to get a better idea of how they work / how you edit them, but yeah they are useful, and can be used to hold a title, and additional text (i think it requires the creation and pairing with a text file within Blender.)
What if I wanna m ake my shadow really nice and smooth and have a smooth transition between light and dark? :)
For some reason I can't find / answer your other comment, don't know if you deleted or what, but anyway as for this, yeah, you can slide the color ramp around to play with the transition, and you could probably even use that output information to alter the color of the shadow based on what is/isn't darker.
@@LanceBerylDev Ah the other comment was a problem I found the solution to (turned out I was being dumb).
The reason I'm asking about the shadow is that if I start playing with the transition in the color ramp in the toon-shader part of the material. It only works in a very narrow-range before turning the whole grass into the "shadow" color. Meaning I can't really soften the transition. Maybe there's some setting I've messed up somewhere. xD
Got a bit a problem the sky's(world) brightness interferes with the sun's lighting. Is there a way to turn of the world lighting shadows??
I'm using HDRI's usually.
Sorry, not sure exactly what you're asking? ..but if you're simply wanting to have the visible sky color and actual lighting itself to be controlled separately, you'd use a Light Path node "Is camera ray" socket and plug it into a Mix node "fac" socket.
Have your HDRI color plug into one Mix color to dictate the sky color, and the Background node color or whatever plugged into the other Mix color to dictate the scene lighting.
That way the lamps/lighting work independently of the background sky color/texture, and you can make the sky be as bright or as dim, or as colorful as you want without it affecting the scene's actual lighting or shadows.
Idk if that's what you wanted but let me know.
@@LanceBerylDev exactly that I used additional lights to make the scene a bit brighter....but it makes the shadows look funny .... I'll try what u mentioned here man thanks for the reply ❤️
@@ralstongrayson007 I also want to know the solution. Please inform me if you figure it out. Thanks
@@lightmanleaf3761 the color ramp for the shadows in the grass toon shader set..increase it up a lot, that seemed to work for me. Only issue is the corners of the shadows are too sharp.
@@ralstongrayson007 thanks and let me try
Would you mind posting the blend thats in the video so we can see it all upclose and follow it along with the video
NM just got to the bit in the vid you mention posting the blend lol
Yeah it’s now in the description.
Don’t think the blend file is necessary to follow along if you have a general understanding of Blender and nodes (yeah I probably should have specified this isn’t intended to be a beginners tutorial, my bad.)
Nevertheless it’s included in the description should anyone wish to play with it / read up on other miscellaneous details I glossed over.
@@LanceBerylDev Im not new to blender just shaders isnt my strong suite, The dl link is working :D
Did you catch my other bit long winded suggestion kinda, its not so much as a suggestion for you to do but rather a open conversation about what i think the next evolution step is to this grass shader. Just a theory really, shaders isnt my area of expertise , i could fiddle around for hours and get no where lol
BlueStar no I don’t know what your talking about when it comes to a suggestion, unless you happen to be JustQB from StackExchange? They mentioned utilizing billboards and did a tutorial on it. I haven’t had time to really look into any of it just yet, but I probably will when I get the time.
@@LanceBerylDev The suggestion i posted here as a separate comment, i posted after i was done watching the whole video :D
My opinion on billboards is they cost less verts but cost more in overdraw, vert count is less of an issue then shader cost these days
How to setup shadow with custom HDRI
Recent commenter asked the same thing. Just adjust the color ramp.
Don't mind if I yoink :)
TL;DR 26:00
Long video, bro.
how hard does this effect performance for lets say a game project?
Well to my knowledge this wouldn't even be compatible/exportable to any game project; hair/particle data and material data completely contained/proprietary to the Blender engine. Blender *had* a built in game engine at one point, but it was underdeveloped; being moreso experimental and (to my knowledge) isn't included or compatible with current Blender versions.
Something else Blender still has yet to implement is unique distance culling / LOD culling for particles, a *must* have in any game engine, as otherwise all particles would be rendered at all times. -This also affects Render times in general, and I'm desperately hoping they implement it just to improve overall performance as an animation program.
..But yeah if you're wanting grass for a game engine, this tutorial isn't for that. There are other plenty of tutorials on making stylized grass for UE4 and Unity. Some still require Blender in some regard (for modeling a static grass mesh,) but just "exporting" the grass system as seen in my tutorial is just not possible (but maybe replicatable.)
@@LanceBerylDev ok thank you for the answer I have been looking at a few different stylized grass styles and yours caught my attention . Keep up the beautiful art I know it has spurred on my creativity to try a few things for my own project.
would this work in cycles?
As is, no, but I have no doubt the potential for it to work (with currently unknown alterations.)
Though the nature of stylized shading lends itself to being far more efficient in Eevee anyways; as while Eevee is a physics-based rasterization engine, Cycles is relies on physics-based *raytracing,* which is far more taxing, to an unnecessary extent with what can be achieved in Eevee with far more ease and efficiency.