<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;">
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">World Welder now has GLSL Shader support , which brings us officially into the 21st century. Actually, it took about an hour to make the working prototype and another hour to fashion a nice API for it, so this is without a doubt the easiest "big" feature I have added so far.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">The immediate application of shader support is per-pixel lighting, which is now included as a demo (worlds/shader.cc). Before and after teapots are attached. Major difference, no? The whole demo is about 50 lines, 9 of which are actually shader code. This is a reasonably high quality implementation of per-pixel phong shading.</p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; "> </p>
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Per pixel lighting allows coarser tessellation on many kinds of objects, like the 3D subdivided fonts and the bumpmap demos I showed a while back, which is why I took a little detour to add it in now. And of course it opens up the whole world of shader effects and is something a game engine has to have, when we get back to it. There are also quality reasons for having it in a 3D modeler, as the images illustrate pretty well.</p></body></html>