
Pixel Shaders: Proposal for an Interactive Introduction to Graphics Programming - msvan
http://pixelshaders.com/
======
overgard
"Wants to use your webcam"

Just a suggestion, if it's going to do that it should explain why. I'm not
hitting yes to that without a good reason.

If it's using it as source data for the pixel shaders... I get you're trying
to go for a wow factor, but from experience I think a lot of people are
creeped out when their likeness is used for something they don't have direct
control over.

~~~
Narishma
You do have direct control over it in this case. You can just change the
fragment shader code to do with it whatever you want.

------
robbles
This is really cool! Would you consider adding a "Sign up for mailing list"
form and sending out occasional updates (for new chapters, etc.)?

I often find and bookmark interesting learning resources like this, but I
don't remember to come back later and check for new additions.

------
kilovoltaire
Bret Victor points out a cool part:

[https://twitter.com/worrydream/status/257915809131819008](https://twitter.com/worrydream/status/257915809131819008)

------
kilovoltaire
Previous HN discussion of Recursive Drawing, another very cool project by the
same guy:

[https://news.ycombinator.com/item?id=3951255](https://news.ycombinator.com/item?id=3951255)

------
c3d
If you want to play with shaders interactively, take a look at Tao
Presentations. Will let you combine shaders and real-time 2D/3D animations.
[http://www.taodyne.com/shop/en/blog/67-real-time-
stereoscopi...](http://www.taodyne.com/shop/en/blog/67-real-time-stereoscopic-
raytracing) for an example,
[http://www.taodyne.com/shop/en/blog/60-screencast-
building-a...](http://www.taodyne.com/shop/en/blog/60-screencast-building-an-
animated-clock-in-10-minutes) for another one.

------
msvan
I'd like to add that I didn't make this. I only found it. Let's all send the
author an email and encourage him to continue his work!

------
dbsierra
This is super useful, and I hope to see many many more examples of this kind
of approach to teaching programming and math concepts, especially in graphics
where real time visual feedback is so important. As he says, there is a lot of
material for the already advanced out there, but not much that fills the gap
for people already used to coding but that lack the experience for digesting
dense packets of information relevant to the topic. I hope he can finish this.
Does anyone know of other interactive learning projects such as this?

~~~
abecedarius
[http://www.crunchzilla.com/code-maven](http://www.crunchzilla.com/code-maven)
[https://www.khanacademy.org/cs](https://www.khanacademy.org/cs)

------
FraKtus
[https://www.shadertoy.com](https://www.shadertoy.com) is a nice community to
share ideas about shaders...

------
almost
This looks fantastic.

One small thing I'd suggest is to show errors in the editor. I changed some
things which worked great then I tried some other syntax I thought might work
which didn't. The line with the editor went red (good) but there was no way of
seeing the exact error (bad).

Another request: a mailing list for updates on the project. I'd love to be
emailed when new stuff comes out as I'd like to keep an eye on the project but
will probably forget...

~~~
ucarion
I think hovering over the line number will give the error message. I just
stumbled on that by accident.

~~~
almost
That doesn't work for me, not sure why...

------
guycook
This is really neat - already knew everything here but if it ramps up I'll be
coming back.

For those who want to dig into pixel shaders, I recently wrote a tutorial
going from no-knowledge to intermediate on this very topic:

[http://ivorydungeon.net/2013/zero-to-glsl-spectrum-
analyser-...](http://ivorydungeon.net/2013/zero-to-glsl-spectrum-analyser-in-
one-hour/) HN -
[https://news.ycombinator.com/item?id=6159240](https://news.ycombinator.com/item?id=6159240)

------
mharju
A fantastic tool! I couldn't help but notice when I did the first exercise
that the way of live editing did distract me from observing the code deeper
than fiddling with the actual values needed.

So if one would now ask me how do I do a full-yellow box I would not know how
to do it from scratch. However, I would know that the RGBA values were 1, 1, 0
and 1, which is the most important part to learn.

That's why I think there is a lot of work to be done when making proper
abstractions around this for human programmers in the future.

This is however just an observation on my part, I think this is definitely the
way to go forward. Making learning more interactive just makes so much sense.

------
bencoder
Really great. Struggled to get the last one on the same chapter. Might be
useful to have a hint feature.

Loved the demos, especially the webcam ones.. I'm still surprised by what is
possible with 'javascript' now.

------
symr
Really good. Reminded me about Bret victor's
[http://worrydream.com/#!/LearnableProgramming](http://worrydream.com/#!/LearnableProgramming)

------
teawrecks
I've been looking for a shader guide that ramps up in complexity just like
this. The interactiveness is just the cherry on top! Can't wait to see the
rest.

------
andreros
Wow, this is great. Looking forward to the completed book!

------
tholman
The demo chapter is fantastic, I'd definitely be on board to buy/fund this if
it came up.

Is there a way I can subscribe for updates?

------
silverlight
Fantastic!

