GLSL & Shaders Tutorial - Understanding The Syntax And The Idea Behind The Vertex & Fragment Shaders

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ธ.ค. 2024

ความคิดเห็น • 83

  • @WaelYasmina
    @WaelYasmina  ปีที่แล้ว +5

    Written version of this tutorial: waelyasmina.net/articles/glsl-and-shaders-tutorial-for-beginners-webgl-threejs/
    A few mistakes I made in the video:
    05:58 there's a missing dot.
    wrong: float f = matB[0]y;
    correct: float f = matB[0].y;
    08:12 wrong function return.
    wrong: return vec2(1.0, 2.0);
    correct: return vec2(x, y);
    10:38 we can't set precision to vectors and matrices.
    wrong: precision highp vec2;
    correct: precision highp int;
    correct: precision highp sampler2D;

    • @salim444
      @salim444 4 หลายเดือนก่อน

      thank you so much ❤

  • @dougjord7833
    @dougjord7833 2 ปีที่แล้ว +26

    I've struggling to learn GLSL for some years by now.
    Your tutorial was the best I've seen in this time.
    Very concise and didactic.
    Not only that, it really inspired me to take another chance.
    Thank you so much for this, dude.
    Excellent work!

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว +1

      I'm so thankful for these kind words, thank you Doug I really appreciate it!

    • @HuynhLuong227
      @HuynhLuong227 ปีที่แล้ว

      me too

  • @fayboyun4262
    @fayboyun4262 11 หลายเดือนก่อน +1

    you are a great instructor! I am a mechanical engineer with limited js knowledge and your videos helped me build a fun website thank you so much!

  • @denisblack9897
    @denisblack9897 9 หลายเดือนก่อน +2

    Dude, I had this wet dream of me drawing tasty animations with shaders and this video got me to a “good enough” level in 20minutes! Thank you!

  • @leomardo2285
    @leomardo2285 ปีที่แล้ว +1

    @4:44 What are the components for vect.w, vect.a, and vect.q?
    You explained the other components for position, Color and Textures, but not for above. TIA

  • @Cargren18
    @Cargren18 ปีที่แล้ว +2

    Honestly,this was a very simple and easy to understand tutorial. It really helped me and good video. I wanted to code shaders on glsl but I didn't understand it properly now because of the tutorial I have no confusions

  • @gamelab1990
    @gamelab1990 ปีที่แล้ว +3

    Man this tutorial was the best one ever! You have done a tremendous job! 👍

  • @shanebenlolo3160
    @shanebenlolo3160 2 ปีที่แล้ว +2

    Thank you so much for this video! Have been looking for something like this for weeks, there is surprisingly little content about GLSL on youtube.

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว +2

      You're welcome!
      Yes there's a shortage in terms of GLSL tutorials but I'll try to make more whenever I learn or come up with something worth making a tutorial on.

  • @cardboardspecciesOLD
    @cardboardspecciesOLD 6 หลายเดือนก่อน

    this is very useful, thank you!
    i watched the whole thing with only some vague knowledge of c and c# but your teaching style made it pretty easy to digest :)

    • @WaelYasmina
      @WaelYasmina  6 หลายเดือนก่อน

      Great to hear!

  • @huynguyen-cy8ig
    @huynguyen-cy8ig 2 ปีที่แล้ว +1

    great tutorial, I'm stuck with glsl for weeks. This video is really helpful

  • @luqal7112
    @luqal7112 2 ปีที่แล้ว

    Omg.. the most outstanding explanation ever.. been trying to understand shader from other video but this top it all.. tq very much sir

  • @stevansanchez5788
    @stevansanchez5788 10 วันที่ผ่านมา

    your voice is better than anyone who does shader videos...no hate to others but this did not give me a headache listening to

  • @diansong1394
    @diansong1394 2 ปีที่แล้ว +1

    Thank you Wael, very concise and organized presentation!

  • @Burak-ls5yd
    @Burak-ls5yd ปีที่แล้ว

    I love this tutorial! It's so clear and informative.

  • @AndreLaBranche
    @AndreLaBranche 2 ปีที่แล้ว

    Nice work, very lucid. The depth and breadth is just right.

  • @mohitkumartoshniwal
    @mohitkumartoshniwal 2 ปีที่แล้ว

    Thanks a lot for this tutorial. Cleared a lot of confusions I had with glsl.

  • @mcemgunes
    @mcemgunes ปีที่แล้ว

    Thanks for the clear explaination!

  • @Splntxx
    @Splntxx ปีที่แล้ว

    Thank you so much for this video - exactly what I was looking for!

  • @wisdomcube7789
    @wisdomcube7789 2 ปีที่แล้ว

    Finally a good tutorial

  • @ruffaldimarco
    @ruffaldimarco 2 ปีที่แล้ว +1

    Good tutorial, gave me all the info I need 👍

  • @opeyemiogunsina248
    @opeyemiogunsina248 2 ปีที่แล้ว +1

    Great job!

  • @gaborkovacs
    @gaborkovacs 2 ปีที่แล้ว +1

    great tutorial, thank you!

  • @artemaltufiev1045
    @artemaltufiev1045 2 ปีที่แล้ว

    What an awesome video. Keep going!

  • @hubert1623
    @hubert1623 2 ปีที่แล้ว

    Thanks , That tutorial very clear and prefect.

  • @supTE
    @supTE ปีที่แล้ว

    Great video!

  • @jituraiyan
    @jituraiyan ปีที่แล้ว +1

    Thank you so much for this awesome tutorial😍 One problem: when there are different aspect ratio for the mesh and the image.. that image texture got squeezed/stretched. Do you know any solution of that?

  • @nickaxworthy3236
    @nickaxworthy3236 2 ปีที่แล้ว

    Really excellent - thank you

  • @JavaScripting64
    @JavaScripting64 2 ปีที่แล้ว

    Thank you! Helped a ton

  • @ishaq9607
    @ishaq9607 5 หลายเดือนก่อน

    you are a gem.....

  • @Imetalh
    @Imetalh ปีที่แล้ว

    All love brother

  • @theman7050
    @theman7050 2 ปีที่แล้ว

    Thanks for making shaders a let harrowing concept :)
    At 24:10, how come the vec4 know that float effect is v3? I mean we are only putting a sin function in float effect, so isnt it a single value?

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว +1

      effect is actually a single float value since abs(sin(texture.x + u_time)) returns a single float value. You know sin() returns a value between -1 and 1.
      vec3(effect) is the same as vec3(effect, effect, effect).

    • @theman7050
      @theman7050 2 ปีที่แล้ว

      @@WaelYasmina yea I do a lot of p5 animations and sin cos is totally fine with me bro. Thank you very much, again :D

    • @theman7050
      @theman7050 2 ปีที่แล้ว

      @@WaelYasmina why I was worried is in oneof the shader videos I saw, the uploader got an error in console that was something like, 3 arguments expected 2 supplied.
      Something like this.

  • @dartneer
    @dartneer 10 หลายเดือนก่อน

    You da champ!

  • @ndanzzid566
    @ndanzzid566 2 ปีที่แล้ว

    thankyou for the tutorial!

  • @penggreat5992
    @penggreat5992 2 ปีที่แล้ว

    Very Good Tutorial, you help me understand that vertex shader will execute the same times of the count of the vertices.That is very important.So, how much times will the fragment shader execute? Does it depends on the resolution of the canvas?

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว +1

      Thank you!
      Generally speaking 1 fragment = 1 pixel. Thus the fragment shader is executed the number of pixels times.
      Sometimes 1 pixel > 1 fragment. Thus the fragment shader is executed more times than the number of pixels.
      To understand the logic behind the 2nd case check these out:
      stackoverflow.com/questions/68426777/how-many-times-does-the-glsl-fragment-shader-execute-for-one-draw (The answer)
      th-cam.com/video/uH1ES8LOrlM/w-d-xo.html

  • @xu2593
    @xu2593 ปีที่แล้ว

    thanks , so good video

  •  2 ปีที่แล้ว +1

    Excellent content Wael! Quick question about usage of GLSL: couldn't we simply use Three to do most of what you've created in this video ? Thanks

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว +4

      Thank you Oliver!
      You mean the examples? I think it's possible to replicate the 1st example without using GLSL. However when it comes to the color gradient and masking I don't think it is possible as far as I know.
      Anyways even though we have the ability to create cool things without GLSL & shaders they still a must learn if you want to create some high level stuff.

  • @HuynhLuong227
    @HuynhLuong227 ปีที่แล้ว

    maybe, this lession is WebGL (vertex and shader...)?

  • @live-in-clouds
    @live-in-clouds ปีที่แล้ว

    Thank you

  • @helloWorld432Hz
    @helloWorld432Hz 2 ปีที่แล้ว

    Wael do you have courses at udemy or any othre platform?? because u should... i want to support you!! Also for anyone trying, on 17:19 substitute like this for a cool example vec3 newPosition = vec3(position.x, position.y, newZ)

  • @ColinRichardson
    @ColinRichardson 9 หลายเดือนก่อน

    Okay, I know MUCH MUCH more than I did...
    But.. I am still lost..
    I just seem to have some mental block when it comes to the GL shader stuff..
    I might be able to understand it more if there was a "copy/paste GL stuff" and be able to see what the equivalent code would be in JS.. Though, if half of the stuff is doing what I think it's doing, that may not help.

  • @ahmedfarooq7253
    @ahmedfarooq7253 ปีที่แล้ว

    PLEASE PLEASE PLEASE DO A FULL COURSEE ON THISS ONEEE

  • @watchingwolf8092
    @watchingwolf8092 9 หลายเดือนก่อน

    You have an amazing font in this video, source may be appreciated

  • @_dense
    @_dense ปีที่แล้ว +1

    //good vid

  • @niklaskeul7457
    @niklaskeul7457 2 ปีที่แล้ว

    Sad that i can give only one thumb´s up

    • @WaelYasmina
      @WaelYasmina  2 ปีที่แล้ว

      But your sweet comment is worth dozens of them. Thank you Niklas!

  • @StellarWeb008
    @StellarWeb008 ปีที่แล้ว

    Example 1 shows the power of math in 4 lines of code.

  • @ifecojahs8151
    @ifecojahs8151 2 ปีที่แล้ว

    OH MY GOD!

  • @antoniofuller2331
    @antoniofuller2331 2 ปีที่แล้ว

    I'm probably the best learner here lol

  • @theman7050
    @theman7050 2 ปีที่แล้ว

    You need to be protected at all costs. 😁

  • @FacePalmProduxtnsFPP
    @FacePalmProduxtnsFPP ปีที่แล้ว

    NOT restricted AT ALL to javascript... glsl is online or offline, has nothing to do with Javascript really.. it's its own language...

    • @WaelYasmina
      @WaelYasmina  ปีที่แล้ว +1

      Did I say something other than that?

    • @antoniofuller2331
      @antoniofuller2331 ปีที่แล้ว +2

      @WaelYasmina No, don't listen to that fool lol

  • @ares106
    @ares106 ปีที่แล้ว

    I feel like I need autism to understand this material.

  • @dievas_
    @dievas_ 7 หลายเดือนก่อน

    Man, the tutorial is just amazing, but my IQ is jut too low... :D