stackgl / shader-school

:mortar_board: A workshopper for GLSL shaders and graphics programming
Other
4.28k stars 252 forks source link

Lighting questions deliberately obfuscated or difficult? #106

Open drewlustro opened 9 years ago

drewlustro commented 9 years ago

I want to preface this by saying THANK YOU for this learning tool. I have a bachelors Computer Science from UC Berkeley, but never took graphics in college so it has been a great ride thus far. I appreciate the authors' work and efforts to make this a robust suite to learn about shaders.


That said, I've had serious trouble solving the lighting problems, particularly diffuse lighting, phong lighting, and so forth.

I feel that the instructions are decent for the provided code snippets, definition of uniforms provided, and outlining the problem's goal to me, the student.

However, the difference between the hints and guidance provided and what the actual answer is to the question is leaps and bounds beyond the scope of intuitive understanding. I feel I am not alone in this.

Issues pertaining to highly difficult light questions

mikolalysenko commented 9 years ago

There were some bugs in previous versions of the lighting lessons which made things way harder than necessary. The next version of shader-school should fix this. If you get a chance, take a look and give it a try.

dhcoder commented 9 years ago

I agree with this issue. I just installed shader-school a few days ago and really enjoyed it until getting to the lighting shaders. The difficulty cliff was enough that it has prevented me from recommending this to others at this time.

These questions feel less like I'm learning something and more that I'm hammering against the problem with trial and error - it's hard to get meaningful visual feedback as I code if I'm getting closer to the answer or not. What's worse is that followup questions build on previous questions, so if you don't get the first one right, then you're screwed on subsequent problems that otherwise seem interesting.

Perhaps the problem's writeups should link to external pages more? Also, sometimes they offer hints I'm not sure I even need. Do I really need the half angle between the view vector and surface normal hinted at by the phong shader? No online article seems to mention it. Why does the diffuse shader tell me about transposing an inverse vector but then not provide a transpose method? I can write it myself, but I'm already trying to focus on learning diffuse shading which is difficult enough. After a while, I was able to solve the diffuse problem without calculating parallel distance - was it just that there were more than one way to solve the problem? Or was the parallel distance method a red herring?

As one approach to mitigate this problem, I think a way to look at the answers to all shader-school questions would be great, for example if there was a solutions folder somewhere downloaded with shader-school, something like:

answers/19-light-3/
    hint1
    hint2
    hint3
    full

P.S. Before the lighting questions, I found the earlier "reflections" question was the first such unexpected jump in difficulty, but that one was much easier to skip without worrying about it too much. Everything else has been a top notch experience.

drewlustro commented 9 years ago

+1 DH 💯

My sentiments exactly back when I filed this issue.

On Wednesday, June 10, 2015, dhcoder notifications@github.com wrote:

I agree with this issue. I just installed shader-school a few days ago and really enjoyed it until getting to the lighting shaders. The difficulty cliff was enough that it has prevented me from recommending this to others at this time.

These questions feel less like I'm learning something and more that I'm hammering against the problem with trial and error - it's hard to get meaningful visual feedback as I code if I'm getting closer to the answer or not. What's worse is that followup questions build on previous questions, so if you don't get the first one right, then you're screwed on subsequent problems that otherwise seem interesting.

Perhaps the problem's writeups should link to external pages more? Also, sometimes they offer hints I'm not sure I even need. Do I really need the half angle between the view vector and surface normal hinted at by the phong shader? No online article seems to mention it. Why does the diffuse shader tell me about transposing an inverse vector but then not provide a transpose method? I can write it myself, but I'm already trying to focus on learning diffuse shading which is difficult enough. After a while, I was able to solve the diffuse problem without calculating parallel distance - was it just that there were more than one way to do things? Or was that a red herring?

As one approach to mitigate this problem, I think a way to look at the answers to all shader-school questions would be great. It would be great if there was a solutions folder somewhere downloaded with shader-school, something like:

answers/19-light-3/ hint1 hint2 hint3 full

P.S. Before the lighting questions, I found the earlier "reflections" question was the first such unexpected jump in difficulty, but that one was much easier to skip without worrying about it too much. Everything else has been a top notch experience.

— Reply to this email directly or view it on GitHub https://github.com/stackgl/shader-school/issues/106#issuecomment-110592548 .