Jonas Wagner publishes browser-based graphics experiments, the Forensically photo analysis tool, and the smartcrop.js image cropping library.
HN links it for visual toys like Neonflames, WebGL demos with slides explaining them, photo forensics, and smartcrop.js.
Preface: I have no experience in 3D graphics.
This is a very cool technique. I have been thinking about how to generate normal maps for traditionally drawn 2D images ever since seeing the normal mapped canvas demo[1]. This seems to be an answer.
Drawing lighting profiles that are coherent however does not seem simple. One of the uses of this technique "Depth maps for stereoscopic 3D" appears much more complicated to me that drawing a depth map by hand in the first place. I drew a depth map for my drawing Starry Venice[2] as a step in making it into a wigglegif. Drawing multiple correct light profiles to generate the depth map for a scene such as Starry Venice seems almost impossible to me. This is far from the base use-case, but still.
It will be interesting to see how forgiving the creation of the normal map will be on imperfect light profile inputs. Also, it will be interesting to see if any artists who are masters of this technique will emerge.
[1] http://29a.ch/2010/3/24/normal-mapping-with-javascript-and-canvas-tag
[2] http://fooladder.tumblr.com/post/61216111704/starry-venice
Pretty cool, but I got lost in the credits.
"Inspired by and based on Jonas Wagner's work which is based on this paper."
http://29a.ch/2010/2/10/hand-drawn-lines-algorithm-javascript-canvas-html5
https://www.rug.nl/research/portal/files/2743863/2008ProcCAGVIMeraj.pdf
From the abstract:
"We found that an observational analysis of human lines made a bigger impact on the algorithm than a statistical analysis. "
Can someone explain what that means?
Also, the University of Groningen is located in the Netherlands. Cool. Thanks Dutch computer scientists!
> the test cases look just as good as I could do
I think you can do better than it did on these:
http://29a.ch/sandbox/2014/smartcrop/examples/images/65344435.jpg
http://29a.ch/sandbox/2014/smartcrop/examples/images/65309527.jpg
http://29a.ch/sandbox/2014/smartcrop/examples/images/65443239.jpg
http://29a.ch/sandbox/2014/smartcrop/examples/images/28155975.jpg
http://29a.ch/sandbox/2014/smartcrop/examples/images/64843515.jpg
http://29a.ch/sandbox/2014/smartcrop/examples/images/64765319.jpg
I played with this for ages in the peak of an LSD trip once... It was quite the experience.
Some other fun "art toys" I like are:
1. https://29a.ch/sandbox/2011/neonflames/
2. https://codepen.io/davidpanik/full/myMrLx/
3. https://codepen.io/jackrugile/full/DGenc
Not much newer, but I like the in-depth slides that cover how it was done:
The effect: https://29a.ch/sandbox/2012/terrain/
The slides that explain: https://29a.ch/slides/2012/webglwater/
Deferring a Phong shader gives 'good enough' dynamic lighting for 2D dynamic sprite lighting and is fast.
https://29a.ch/2010/3/24/normal-mapping-with-javascript-and-canvas-tag