OpenGL - shadow maps (for directional lights)

Sdílet
Vložit
  • čas přidán 27. 07. 2019
  • Code samples derived from work by Joey de Vries, @joeydevries, author of learnopengl.com/
    All code samples, unless explicitly stated otherwise, are licensed under the terms of the CC BY-NC 4.0 license as published by Creative Commons, either version 4 of the License, or (at your option) any later version.

Komentáře • 22

  • @phyyl
    @phyyl Před 3 lety +6

    So clear! Thanks a lot for the video.

  • @ciberman
    @ciberman Před 3 lety +3

    Amazing explanation! Very clear!

  • @iamarugin
    @iamarugin Před 8 měsíci +1

    This was a brilliant explanation, thank you very much!

  • @DMmaster335
    @DMmaster335 Před 3 lety +1

    Increadable explenation, big ups

  • @Vagelis_Prokopiou
    @Vagelis_Prokopiou Před 4 lety +3

    Very nice stuff dear Brian. Thanks!

  • @nandukrishna8142
    @nandukrishna8142 Před 2 lety

    This video truly needs more likes and comments 🙁

  • @andrewh111
    @andrewh111 Před 4 lety +1

    sooo shadow volumes next?

  • @cmdlp4178
    @cmdlp4178 Před 4 lety +3

    Is there a good way to calculate shadows (without using a temporary buffer), which consists of only the triangles projected on each other triangle?

    • @briantwill
      @briantwill  Před 4 lety +2

      Self-shadowing of a model without constructing a shadow map or shadow volume? Only other option I'm aware of is ray-casting.

    • @cmdlp4178
      @cmdlp4178 Před 4 lety +1

      @@briantwill I heard/read about a game engine, which does the shadow calculations on the CPU. It projects each triangle onto other triangles, it splits each triangle into dark and light triangles and simply sends these to the GPU and renders these. No shaders needed. I think this was done years ago, before shaders even were added to OpenGL. But I forgot where I heard/read about it and how the engine was called

    • @briantwill
      @briantwill  Před 4 lety +1

      @@cmdlp4178 Huh, that kinda sounds like shadow volumes, but probably less efficient. Doesn't seem like it would scale well for today's typical triangle counts.

    • @cmdlp4178
      @cmdlp4178 Před 4 lety +1

      @@briantwill this could be a good topic for a video

  • @RJC65__
    @RJC65__ Před 3 lety

    I really don't know why my code isnt working, when I got up to the point of where you had shadow acne, I didn't have any shadow acne and my shadows are all random and no where near the correct places they should be, I made sure to follow your code exactly, any reasons why this is happening?

    • @douggale5962
      @douggale5962 Před 2 lety

      Do you create a debug rendering context? It helps, a lot, with that kind of issue. If it goes nuts, most likely there is a call with an invalid parameter somewhere, a properly initialized debug context will report it. Really check your matrix code, make sure you are transposing or not, as appropriate. Vector multiplication with a matrix is not commutative, the order of multiplication makes a huge difference.

  • @ps_lol
    @ps_lol Před 4 lety

    Hi can you help me on shadow mapping pleasee for 330 version

  • @cmedia425
    @cmedia425 Před 9 měsíci

    Since this is for directional lights why is there a lightPosition variable needed for the glm::lookat function? My interpretation of the directional light was that it only needed a direction.

  • @WowPlusWow
    @WowPlusWow Před 3 lety

    The explanation you gave at 11:45 makes no sense. How would the z coordinate of the position relative to the light be higher than 1 when we multiplied it by the view matrix, effectively converting it into NDC space, which ranges from [-1,1]???

    • @WowPlusWow
      @WowPlusWow Před 3 lety +1

      It's because of the fragments that extend beyond the frustum of the orthographic projection.

  • @Al-Hebri
    @Al-Hebri Před 3 lety +1

    Please I need a link to the code to revise my code because I have a problem here