OpenGL - shadow maps (for directional lights)
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.
So clear! Thanks a lot for the video.
Amazing explanation! Very clear!
This was a brilliant explanation, thank you very much!
Increadable explenation, big ups
Very nice stuff dear Brian. Thanks!
Hi linux pingu
@@retroscooter2119 hi to you too.
@@Vagelis_Prokopiou yo
This video truly needs more likes and comments 🙁
sooo shadow volumes next?
Is there a good way to calculate shadows (without using a temporary buffer), which consists of only the triangles projected on each other triangle?
Self-shadowing of a model without constructing a shadow map or shadow volume? Only other option I'm aware of is ray-casting.
@@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
@@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.
@@briantwill this could be a good topic for a video
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?
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.
Hi can you help me on shadow mapping pleasee for 330 version
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.
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]???
It's because of the fragments that extend beyond the frustum of the orthographic projection.
Please I need a link to the code to revise my code because I have a problem here