Watched a second time and followed along step by step. Great video.
@jasminerojas55316 күн бұрын
Great video!
@nicholasmaniccia100516 күн бұрын
This is fucking nuts.
@user-zq6pg1be2k16 күн бұрын
Bro i cant see any shaders on the website theres just loads of rectangles with black screens with them
@takyon2417 күн бұрын
7 years in and these are still the best shader tutorials on youtube that I've seen lol
@user-dg5uo9ht4v22 күн бұрын
Hello, I really enjoyed your fantastic video. I have a question: How can I modify a rain shader so that it loops seamlessly and naturally without any interruptions? Thank you!😀
@user-xm5px6zf8c25 күн бұрын
Great Work,Thank you
@Manu-lc4obАй бұрын
Why using a 3D space for this effect ? Is this only for the raindrop effect at the end ? Couldn't it be achieved in 2D ?
@shellchen5184Ай бұрын
Please continue !!
@ralvarezb78Ай бұрын
What about (1+tanh(k*x))/2 ?
@TheArtofCodeIsCoolАй бұрын
That function looks nice but it is asymtotic, which makes it that you never get to 0, or 1, which is not ideal.
@knowercoderАй бұрын
Thank you for these valuable tutorials
@sharahbarnett186Ай бұрын
where do i find it
@uvrgbАй бұрын
Adding .5 in the formula is to make the smooth function unrelated to a and b. When expanding h*a + (1-h)*b, adding .5 ensures the equation has symmetry. The equation becomes 1/k(b-a)(a-b) + 0.5a + 0.5b.
@mrpinkdevАй бұрын
id buy your udemy course on this topic
@Yerevan-yl5ohАй бұрын
Wow ✨
@Yerevan-yl5ohАй бұрын
Impressive, thank you for explanation
@JustYesntManАй бұрын
Please come baaack
@0megaSapphire2 ай бұрын
I'm just wondering how it can work with a single buffer. The reason for this is that as we process each pixel, a subset of its neighbouring pixels in the texture have already been updated to new state whereas the others still have previous state. Shouldn't we use two buffers so that each pixel can be updated based only on previous state of all neighbouring pixels?
@TheArtofCodeIsCool2 ай бұрын
The buffer we are reading from was completed the previous frame so all pixels read have already been processed.
@aalperbayram2 ай бұрын
I don't understand why multiplying x with x divided by y works so perfectly. What's the logic behind it? Or is there a formula name for it so I can look up? I currently suck at math btw.
@TheArtofCodeIsCool2 ай бұрын
You are getting the aspect ratio of the viewport by dividing the width by the height of the viewport. Then, to calculate the height, you multiply the width by this ratio.
@huseyinpehlivan60722 ай бұрын
Hi how we calculate shadow
@blueyc4rter2 ай бұрын
Can someone explain the extra stuff when you click the + symbol? i.e. BufferA, sound, common, cubemapA?
@WoWUndad2 ай бұрын
As a threejs dev, watching these webgl chads is like watching my dad get remarried to a hotter woman i get really jealous but deep inside im more than happy for you
@KaranArjun-xf3uy2 ай бұрын
Wow,nice explanation! Can I use this noise for a commercial project?
@jacobtinkle96862 ай бұрын
Great tutorial, great visualisation! Thanks a lot!
@miguelmyers89292 ай бұрын
did he stop making tutorials?!
@phatbuihong40142 ай бұрын
Thank you so much, it's very helpful.
@hightidesed2 ай бұрын
Please come back :(
@xaoaos2 ай бұрын
How to get the depth for comparison to interact mesh objects?
@pixel-eyes2 ай бұрын
21:35 "fuck it. why not add both..." 😂 ¯\_(ツ)_/¯
@mania79272 ай бұрын
@The Art of Code Hi Martijn, Just saw one of your videos . How long actually takes before you could make animated visual like 2:54 imaging you are good with softwares etc ? Thanks
@ackmanstein2 ай бұрын
This tutorial is great, the way you reason your way through everything so fast amazes me. I learned some stuff! Thanks a bunch!
@ChenHuang2 ай бұрын
Hi BigWings, I'm dying to know how those folds + abs resulted in the geometry. I know how simple folds work but ... that particular series of combination of folds and abs made no sense to me. Is there anywhere I can consult? float c = cos(3.1415/5.0), s=sqrt(0.75-c*c); vec3 n = vec3(-0.5, -c, s); p = abs(p); p -= 2.*min(0., dot(p, n))*n; p.xy = abs(p.xy); p -= 2.*min(0., dot(p, n))*n; p.xy = abs(p.xy); p -= 2.*min(0., dot(p, n))*n; float d = p.z-1.; the abs in between folds seem to be doing something ... can't wrap my head around it though
@williamiiifarquhar43453 ай бұрын
Great video! Very easy to follow.
@taylor.matson3 ай бұрын
Excellent video covering a lot of the basics! Should be the first video in any Raymarching playlist ;)
@agysin3 ай бұрын
Fantastic explanation, clear and calm. Thank you!
@JohnnyTwoFingers3 ай бұрын
I would very much like to talk to you about a UI for a next gen ~"social media" platform that would have portions rendered in threeJS or some equivalent...the Terence McKenna script was just too much synchronicity haha...hopefully you read comments on your old videos.
@gregmark16883 ай бұрын
Years later, and this is still one of the absolute best shaders I have ever seen. It is, indeed, a classic. So simple, yet so profoundly and emotionally evocative. Really, just the best.
@WilliRittmann-iq5bu3 ай бұрын
You made it with shaders... yeah, I've a long way ahead 😅
@saege11733 ай бұрын
of course it is tea
@wolpumba40993 ай бұрын
*Abstract* This video explores the use of hexagonal tiling in shader programming. It covers how to draw a single hexagon, how to create a seamless hexagonal grid, and how to manipulate individual hexagons within the grid. The video concludes by demonstrating how to use these techniques to create a visually interesting effect. *Summary* *Folding and Drawing the Hexagon (**0:22**)* * The video starts by folding the hexagon over its symmetrical quadrants to simplify the drawing process. * It then utilizes the absolute value of UV coordinates to define the boundaries of the hexagon within a single quadrant. * A dot product is used to create lines with specific angles, which are then normalized to ensure consistent size. * The video explains how to calculate the correct slope for the hexagon's edges by analyzing its internal triangles and applying the Pythagorean theorem. *Hexagonal Distance Function (**7:16**)* * A function called `hexDist` is created to calculate the hexagonal distance to a point in 2D space. * This function takes a UV coordinate as input and returns the distance to the closest edge of the hexagon. *Creating a Hexagonal Grid (**10:04**)* * The video explains how to create a hexagonal grid by offsetting two square grids. * By checking the distance to the center of each grid cell, the shader determines which grid a pixel belongs to, resulting in a hexagonal pattern. * The video then adjusts the grid dimensions to account for the non-square aspect ratio of hexagons. *Input/Output and UV Coordinates (**18:07**)* * A function called `hexCoords` is created to return both the UV coordinate and the ID of the corresponding hexagon cell. * This allows for individual manipulation of each hexagon within the grid. * The video discusses different types of UV coordinates that can be used for different effects, such as blending between cells or creating textures within each hexagon. *Example Effect (**24:37**)* * The video demonstrates how to use the developed functions to create a visually interesting effect with scaled and smoothly blended hexagons. * It emphasizes the potential for further creative exploration using these techniques. i used gemini 1.5 pro to summarize the transcript Token count 8,571 / 1,048,576
@leonardvanduuren87083 ай бұрын
Grandmaster !
@rokchoi68273 ай бұрын
wow
@moonhowler6674 ай бұрын
Since sin/cos algorithms have been optimized to Agrippa and back, wouldn't it be better to just lerp over a cos? You've essentially built an offset quarter cycle cosine, though not incredibly accurate for that purpose. If this were in any way faster than current sin/cos algos, it'd have been adapted into one by now. The upshot is, even if a given cos function is less efficient than this, you'd actually get a proper *smooth* step.
@robrau87954 ай бұрын
Thanks---that was very helpful! 🙂
@miquelsunyerroda96384 ай бұрын
wouldn't be this very useful to create "impostors"?
@GonzoGonschi4 ай бұрын
thanks a lot buddy, that you make this nerd wisdom accessible for all us mortals
@trifonstatkov4774 ай бұрын
This is one of those moments in which I am looking at a code and I am not confident that I will EVER be able to fully understand it. Massive respect! This is truly an art!