Procedural UV Mapping in Shaders
7:04
4K textures are USELESS!
5:31
Жыл бұрын
Пікірлер
@shkvadingerly
@shkvadingerly 3 сағат бұрын
bro looks like antony starr
@abelov001
@abelov001 2 күн бұрын
Thank you for the tutorial. Is there any way to use it with custom wheat mesh ?
@isaacolander8291
@isaacolander8291 4 күн бұрын
Is there a way to keep the color? So it's not replaced by black and white
@VisualTechArt
@VisualTechArt 4 күн бұрын
You can multiply it on the PostProcessInput0 :)
@alex-qn5xp
@alex-qn5xp 4 күн бұрын
Edit: I had a multiply node instead of a max node in the final section of nodes in the outlines. After finishing the video, the outlines aren't working. I've triple checked all nodes and connections as well as the Laplacian filter, no idea what's wrong as viewing just the outlines shows them to be working despite not being visible with the whole shader. On further inspection they seem to be "visible" but transparent, no idea what's wrong as every single parameter and node are the same. Any ideas?
@VisualTechArt
@VisualTechArt 4 күн бұрын
Maybe try to follow the video that is specific to that outline, so you can see it in more detail and figure out any mistakes :)
@alex-qn5xp
@alex-qn5xp 2 күн бұрын
@@VisualTechArt I did to double-check, and it still didn't work. After returning to this one, I realised that I had a multiply node instead of a max node, and after swapping them it worked. It looks awesome, thank you for making this video, all your videos are super helpful, especially the lighting one.
@Simon_Laserna
@Simon_Laserna 5 күн бұрын
Great video. I LOVE that you show things being implemented and pause to discuss things. Thank you both for spreading knowledge!
@-jxvi
@-jxvi 5 күн бұрын
Underrated tutorial, underrated youtuber
@MattInTheZone
@MattInTheZone 5 күн бұрын
Awesome, very in depth stuff! I just downloaded UE yesterday, so I'm jumping in the deep end a bit. I'm up to the 5:15 mark, but I'm having the jittering issue that others have mentioned. It looks like in 5.4 there's no longer an option to blend it before tonemapping. Is there any advice you could offer to get around that, or should I just use an earlier version of the engine?
@VisualTechArt
@VisualTechArt 5 күн бұрын
Set it to SceneColorAfterDOF :)
@MattInTheZone
@MattInTheZone 4 күн бұрын
@@VisualTechArt Great, thanks! I tried that and it looked different so I wasn't sure if that would mess with the math. But once I finished up everything it looked great (after turning off motion blur)! Awesome! Now experimenting with your implementation in the physical based cel shading video. I skipped to the part where you modify the outline, and was able to get the basic ones working using SceneDepth. Got the final one working by iteself, but just not sure how to combine it with the colour of the scene as it's not just multiplying the colours like the others. I should be able to figure that out after building the cel shader.
@user-xi1ic3tm1m
@user-xi1ic3tm1m 5 күн бұрын
trying to replicate the material function but it seems i fail. It always remains black and thef inished shader is nowhere soft in the viewport... and the outline gumroad file also renders awful. Whats with the settings.
@AglaeJuarez
@AglaeJuarez 6 күн бұрын
My mom has been telling me to learn how to code for years, I was sure that it was a waste of ti,e and energy, amd also that I would have to get a degree in computer science to be able to understand what I am doing. You some how proved my mom right and not make me mad in the process, LOL Thank you so much for holding my hand while navegating the most shallow (but still scary) waters of coding.
@VisualTechArt
@VisualTechArt 6 күн бұрын
If it can comfort you, I studied at the academy of fine arts, all the programming stuff is self taught xD I think the most important thing is to find an area of application that drives your interest and will to learn, like for me it has been creative coding and generative design ages ago :) And yeah, the key is also to find someone that is able to explain things in a way that resonates with you personally, for me it was Daniel Shiffman with his books :)
@Mcreator121
@Mcreator121 6 күн бұрын
this is amazing! Thank you for this tutorial 😍
@Helgrind44
@Helgrind44 8 күн бұрын
Hi-Fi Rush was made in Unreal and they made a really interesting GDC talk about how they did it (it's quite recent). Would love to see tutorials based on that talk.
@VisualTechArt
@VisualTechArt 7 күн бұрын
They also heavily modified the engine to get some of those things working :)
@michaeldawn8690
@michaeldawn8690 9 күн бұрын
How can I render the game at higher resolution so there's no blurry pixels?
@VisualTechArt
@VisualTechArt 7 күн бұрын
Increase the screen percentage
@michaeldawn8690
@michaeldawn8690 7 күн бұрын
@@VisualTechArt That's on the three bars in viewport right? Does that apply to packaged game?
@AltoAutismmo
@AltoAutismmo 9 күн бұрын
Am I crazy that I see a weird big line that follows the camera? it's at a somewhat 'far' enough distance to look like a shadow from something but its there all the time
@VisualTechArt
@VisualTechArt 7 күн бұрын
Not sure man
@AltoAutismmo
@AltoAutismmo 5 күн бұрын
@@VisualTechArt Do you genuinely not get a thick line in the horizon? is there maybe a setting to make the horizon view distance longer? Seems im not the only one that got it, no idea?
@geraldo.goncalves
@geraldo.goncalves 9 күн бұрын
This is Gold! thank you guys!
@3DModelingAnimationVFX
@3DModelingAnimationVFX 9 күн бұрын
So basically, to follow this tutorial, I need to purchase the file for 50€ + VAT?
@alex-qn5xp
@alex-qn5xp 7 күн бұрын
You can make the entire thing without any of the assets, just follow the video.
@VisualTechArt
@VisualTechArt 7 күн бұрын
Exactly, you don't need to pay anything to watch the video :)
@travisfarley6421
@travisfarley6421 9 күн бұрын
I'm noticing some shadows glitching when I put the shader together. It's like the shadows are rotated on alternating polys. I think my post keeps getting removed because I had a link to the picture, DM for it. I'm not sure if it's a DX11 issue but DX12 doesn't help.
@alex-qn5xp
@alex-qn5xp 7 күн бұрын
That's probably lumen with software raytracing, disable lumen or use hardware raytracing.
@travisfarley6421
@travisfarley6421 7 күн бұрын
@@alex-qn5xp I didn't use hardware raytracing. That helped a lot. I had tried it with and without lumen and still had the issue FWIW. Also, changing a few settings on the skylight seemed to help IMO. Disable real time capture, reduce intensity scale to .005, and disable cast shadows. It appears to me like the shader accentuates the directional light and skylight fighting with each other, so the shadows move in jagged and unusual ways. Maybe it's just my setup! Adjusting the skylight made them crispy and Wind Waker like.
@travisfarley6421
@travisfarley6421 7 күн бұрын
Awesome tutorial by the way! I learned so much about lighting and cel shading. I will probably continue to learn more once I rewatch your video for the fourth time! Lol. Then onto the outline vids. Thank you for sharing your knowledge and wisdom!
@mr.hamzik
@mr.hamzik 10 күн бұрын
The innermost secrets of the Epics have been merged!
@dovahfruit9503
@dovahfruit9503 10 күн бұрын
the sample project is gone 💀
@VisualTechArt
@VisualTechArt 10 күн бұрын
What do you mean?
@dovahfruit9503
@dovahfruit9503 9 күн бұрын
@@VisualTechArt maybe its just the formatting, i thought there would be a link immediately after "Sample Project:" but it seems thats not the case
@Derjyn
@Derjyn 11 күн бұрын
So I implemented bicubic filtering via a custom HLSL node, and find that the visual pros sink against the performance cons. I had a nifty and optimized material that transitioned between nearest neighbor, bilinear (default) and bicubic based on distance. The extra taps for many textures in an actual game scene? More costly than using a better looking 64x64 detail texture or other techniques. As much as I love my alternative filtering - I've also got Lanzcos, Gaussian, etc for other uses - anyone that I had take a blind taste test of bicubic closeup versus detail texture closeup, chose detail every time. There IS however a valley in the distance blending, where bicubic looks slightly sharper, but again, there are cheap/free alternatives to the extra taps/samples required for bicubic with any variation of algos behind it. Awesome video, not shredding it with the above statements by any means. Just blathering on ;)
@VisualTechArt
@VisualTechArt 11 күн бұрын
Nah that's a fair point! Also because, for example, the bilinear has been around so much that GPUs have a dedicated HW module that does it, which makes it much faster :) Moreover you should consider Anisotropic filtering in the equation, which nowadays is enabled by default. Maybe you could try to repeat your test but first set your texture to Nearest Neighbour Filter in the asset itself and see what are the results! I would be curious :D It all depends on the use case, as always, I saw on my Discord server a guy that is making a PS1 retro looking game (so textures with no filtering and huge pixels) that added the Bicubic as graphics option and in that case it works incredibly well!
@Derjyn
@Derjyn 10 күн бұрын
@@VisualTechArt I actually came back to say that bicubic and friends would always have a place in artistic drive, haha... Every now and then I do an audit, search for whitepapers, etc, to see if I can revamp old stuff. I swear somewhere, I have a paper on optimizing filtering. I wanna say it was by Nvidia, maybe one of the old GPU Gems editions? At any rate, if I can get a version of bicubic that was stupid fast, I'd have that in my master materials for non-deco, non-distant type meshes in a heartbeat. It *does* add just the tiniest amount of extra sharpness in different viewing scenarios, after all... Anyhow, keep up the great work! And if you could figure out how to handle an approximation of cavity/crevice mapping in HLSL (I have some hacky thing, but it's sampling a normal map 4 times, gross), that'd make for a great video I think. We can obviously bake these types of maps/masks, but with procedural being the wave right now, figuring out clever ways to handle some of our baked maps is going to be popular I'd guess ;)
@AltoAutismmo
@AltoAutismmo 11 күн бұрын
Jesus christ man. This feels like youtube premium. I will single handedly give you props if I get a job around this.
@IbtesamSadiq
@IbtesamSadiq 11 күн бұрын
Is this more expensive than texture sample?
@VisualTechArt
@VisualTechArt 11 күн бұрын
It depends on the size of the Texture and what else the shader is doing :)
@KindTom1
@KindTom1 13 күн бұрын
Just use Octane Render, use Lino Grandi's method. I dont understand why NPR artists are trying ot reinvent the wheel, when there's one perfect method for NPR and CGI.
@VisualTechArt
@VisualTechArt 13 күн бұрын
Let me know when you'll release your game running on Octane then :)
@jacobst-pierre2849
@jacobst-pierre2849 15 күн бұрын
does this work for world space normals?
@VisualTechArt
@VisualTechArt 14 күн бұрын
When you're combining normals it's always better to be in a space that simplifies the task by giving you a known reference point :) These methods are all thought for Tangent Space mostly
@jacobst-pierre2849
@jacobst-pierre2849 11 күн бұрын
@@VisualTechArt thanks
@pmanlio
@pmanlio 16 күн бұрын
Hai il pisello enorme, i material (e la matematica che ci sta dietro) sono già un mondo enorme, ma capire e spiegare i limiti dell'engine è qualcosa di più della semplice conoscenza del framework. Davvero, complimenti
@VisualTechArt
@VisualTechArt 14 күн бұрын
Grazie xD
@ILIZIUM
@ILIZIUM 16 күн бұрын
OBIVAN_KENOBI_!!!!!!!
@Hozq3D
@Hozq3D 16 күн бұрын
Works great, however when this is placed on randomly rotated tree instances it doesn't override the original rotation. So a lot of them are facing the wrong way or are misaligned. I'm looking to I guess reset the rotation of all the billboards to face +X in the material before doing the point towards camera operation. But I'm not sure how, any ideas?
@VisualTechArt
@VisualTechArt 14 күн бұрын
You have to add a rotation before the billboard logic in that case that resets your rotation :) You have to find the 3 vectors that identify your rotated space axis and then use an InverseTransformMatrix to reset it
@Hassan12567
@Hassan12567 17 күн бұрын
I wanted to know if this is applicable to games or is it maybe too hard on the performance for stable fps while playing? also: Do I need to credit you if I publish the game?
@VisualTechArt
@VisualTechArt 14 күн бұрын
Credits would be nice :) Performance wise, you'll have to take your own measurements as always :D
@tamasfodor2312
@tamasfodor2312 17 күн бұрын
Hey it is a great tutorial and you explaining everything well, I had one problem which I hope you can help me when I am trying to choose the blendable location I don't have the option Scene color after DOF. I am using unreal engine 5.3. If anyone could tell me how to fix it it would be great thank you :)
@VisualTechArt
@VisualTechArt 16 күн бұрын
Set it to Before Tonemapper :)
@mostafabalboul3966
@mostafabalboul3966 17 күн бұрын
I actually do want to see the details of how you derived the sigmoid equation at 21:34 -- I'm fond of sigmoid equations in general (I love 1/(1+e^x) because of how simple it is and how easy it is to modify its parameters, and how easy it is to differentiate and get a bell curve, which even if this isn't a normal distribution, is a nice reminder that the integral of the normal bell curve IS a sigmoid curve) so when I saw a sigmoid curve that can be tweaked to become completely flat in that way, I got super eager to analyze why it works the way it does.
@VisualTechArt
@VisualTechArt 14 күн бұрын
I didn't follow any crazy mathematical procedure for that, it was more of a visual and logic process in this case :) I've just centered around 0.5 two mirrored exponential curves
@mobiusteapot
@mobiusteapot 19 күн бұрын
Incredible content. Thank you for breaking everything down and explaining why certain things work or wouldn't work, instead of just showing nodes. Wonderful content.
@Balai_823
@Balai_823 20 күн бұрын
how did you create the yellow node at 8:41 ?
@VisualTechArt
@VisualTechArt 19 күн бұрын
Named Reroute Node :)
@Balai_823
@Balai_823 17 күн бұрын
@@VisualTechArt thanks
@CanadianCrowDev
@CanadianCrowDev 22 күн бұрын
I was giving this a go and also got the sample project from your gumroad, and an issue I'm having is that all of the cast/ground shadows have "banding"; after looking at the engine.ini files I realized my test project (where I am following the video step by step) was in DirectX 11, while your sample project is in DirectX 12. Do you happen to know if its possible to fix the shadows in directx 11? Edit: Another issue I may have found, maybe it involves the exposure settings, but any Unlit materials I add to the scene turn black without trying to compensate for Exposure in the material?
@VisualTechArt
@VisualTechArt 21 күн бұрын
Can't help you with the first issue as I haven't tested it But for the second one I can tell you that when you have a PB Lit scene, you have to set an emissive intensity in line with those HDR values :) I recommend you to watch the relative part in my follow up video on lighting
@Kkurox
@Kkurox 22 күн бұрын
Has anyone implemented it in their game? I was about to buy it on gumroad, but I would like to be able to see how it behaves on different colored characters, for example a dragon. I've bought too many assets that aren't what they seem, so I always want to go totally certain....
@alex-qn5xp
@alex-qn5xp 7 күн бұрын
Stop buying assets then.
@Kkurox
@Kkurox 5 күн бұрын
​@@alex-qn5xp using your logic, then create your own game engine. 🤦‍♂
@alex-qn5xp
@alex-qn5xp 4 күн бұрын
@@Kkurox Straw man argument right there. 3D isn't that hard, it's way easier than coding or even following this video.
@Kkurox
@Kkurox 3 күн бұрын
@@alex-qn5xp and my question would still be valid. buy or not, that's not what i was asking. i was asking about the final result.
@DazzlingAction
@DazzlingAction 23 күн бұрын
The rounded voronoi instantly reminded me of pomegranate seeds.
@CooliticX
@CooliticX 23 күн бұрын
27:55 **laughs in pain as a programmer**
@Danny3vans
@Danny3vans 23 күн бұрын
Hey guys, I'm new in UE5 making a game with some friends, and I'm interested in Shaders and stuff even though my Math don't math sometimes. On 21:52 I don't quite understand the Smoothstep he shows, is he saying that Smoothstep can also work instead of the function he made? If so, how does it actually work then?
@VisualTechArt
@VisualTechArt 23 күн бұрын
The SmoothStep is still an S shaped curve, of which you can't control the slope, tho :)
@Danny3vans
@Danny3vans 23 күн бұрын
​@@VisualTechArt Okay cool, and UE5 wise (of which I'm still learning about) I saw the screenshot of what the material function you made instead of the Smoothstepper and I thought, I think I could make that! (I couldn't 💀) And how do you group nodes to create the SceneTextures in Pink that are the SceneTextures + Mask? I have no clue how to group those into what you make 🥲 Sorry for all the questions, I find the video fascinating and the Shader itself is incredible and fits the game I'm making super well, so I wanna try and make it myself and learn while at it 🙌🏼 Thanks in advance and for replying 😊
@VisualTechArt
@VisualTechArt 23 күн бұрын
@@Danny3vans I'd suggest you to join my Discord Server and ask for help there :) So you can also post images to better explain yourself and is easier to chat
@code-72
@code-72 24 күн бұрын
Canny edge detection please!
@skyty0
@skyty0 24 күн бұрын
Physically Cringe Cel Shading tutorial when
@Zephyr314
@Zephyr314 24 күн бұрын
I've followed the tutorial but I have noisy/grainy shadow edges/artefacts. I've tried turning the lumen settings on and off as well as changing the source angle of the light. I'm on version 5.3.2. Thanks for any help.
@VisualTechArt
@VisualTechArt 24 күн бұрын
You're not the first one that talks about this but from here I can't tell you much, try to ask in my Discord Server
@Zephyr314
@Zephyr314 24 күн бұрын
@@VisualTechArt ok thanks
@Twitch177
@Twitch177 25 күн бұрын
If I followed this tutorial is it the same as the gumroad item?
@VisualTechArt
@VisualTechArt 24 күн бұрын
Yes
@robertbobertjr
@robertbobertjr 25 күн бұрын
This is super cool and exactly what im looking for, Its sad that someone making such high-quality content doesn't have more subscribers! Im following the tutorial, but at 9:15, when you set the light to 120,000 lux, my scene gets completely blown out. I tried messing with auto-exposure settings, but I can't figure it out, do you know what could be causing this? Im on version 5.0, as that's the highest my machine can handle.
@robertbobertjr
@robertbobertjr 25 күн бұрын
Im also having trouble finding the RGBtoHSV and HSVtoRGB nodes you use. I have 2 options for RGBtoHSV, but neither one looks like what you're using, and i cant find any nodes at all for HSVtoRGB, are those custom nodes or am I looking in the wrong places?
@VisualTechArt
@VisualTechArt 25 күн бұрын
For the Exposure, there's a setting in the Project that should be turned on, something like "use extended exposure rage" (I don't remember the name exactly) For the Hsl nodes, they're relatively new, it might be they've been added later, you should have two material functions tho, they should work the same :)
@unrealcreation07
@unrealcreation07 26 күн бұрын
This really is the mother of all Materials tutorials
@cfc758
@cfc758 26 күн бұрын
Any chance you'd go into detail on the math nodes (?) behind creating the dynamic S-curve? I've been trying to create something a lot like that for awhile now.
@VisualTechArt
@VisualTechArt 26 күн бұрын
I'm about to start using my Patreon to add "extensions" to my videos :) This will be one of them
@milddiffuse
@milddiffuse 27 күн бұрын
I'm very interested in seeing this with actually textured assets
@Sacred6T4
@Sacred6T4 27 күн бұрын
I really like this material. Is there a way to have more than 3 colors? And, can I change the color of the outline?
@VisualTechArt
@VisualTechArt 27 күн бұрын
You can nest more lerps with more colour bands and yes, you can use a colour for the outline :)
@AltoAutismmo
@AltoAutismmo 27 күн бұрын
Dude this is like a master level course. Most tutorials end up with a shitty end product for the "sake of simplicity" but I suspect they just don't know how to make it truly great. What you produced is AAA level cel shading
@666nevermore
@666nevermore 28 күн бұрын
Love the quality and the thinking behind your work. - In Unreal custom node you are indeed able to output more informations than the one single return, instead of packing your return to a (float3, float) in the custom node, you can add output pin (as you can add input pin), just give it a name, then in the hlsl code you use that name. For instance in the custom node add output, give name OutNormal, in the hlsl code towards the end, you just write OutNormal = LaplacianNormal / CenterWeigth; - Also looping in the gpu is never considered a good idea, if statements also are a bad idea. Since you are directly writing in hlsl code, the compiler will literally copy and paste your hlsl code, without optimizing for the compilation part (usually the compiler knows better then us). The matrix loop can be optimized heavily by not making it if checking every iteration of the nested loop. The center of your kernel is always 0,0 you can check it outside the loop and make the loop iterating by dodging the center. Hope these information can be useful, love you works. Edit: literally just saw 1.5 hahaha mb
@VisualTechArt
@VisualTechArt 27 күн бұрын
Yes, I didn't add multiple outputs for compatibility with older versions :) The for loop is pasted in the hlsl translation of the nodes, but then the compiler decides what to do with it, that's one of the reasons to use an hard coded kernel size, for example: by knowing exactly the amount of iterations, and if they're not too many, the compiler will most likely unroll the loop :) Same with ifs, it's up to it to decide if it's better to branch or create a ternary operation and so on. Unless you specifically tell it to do a certain thing, even though from what I understood it can still ignore you xD
@666nevermore
@666nevermore 27 күн бұрын
@@VisualTechArtI just pointed that out because at a point you said that you can only return one variable. In the CPU programming this add output is the corrispettive of “out” arguments of a function. float Func(out x).