@article{Loviscach_2004, title={Shader Programming: An Introduction Using the Effect Framework}, volume={11}, url={https://seer.ufrgs.br/index.php/rita/article/view/rita_v11_n1_p125-164}, DOI={10.22456/2175-2745.5964}, abstractNote={Current commodity graphics cards offer programmability through vertex shaders and pixel shaders to create special effects by deformation, lighting, texturing, etc. The Effect framework introduced by Microsoft allows to store shader program code, settings, and a limited graphical user interface within a single .fx text file. This supports a division of labor between programmers writing the code and designers using the GUI elements to control settings. Furthermore, the Effect framework proves to be ideal for experimenting with shader programming — be it for learning purposes or for rapid prototyping. In this tutorial, we employ the Effect framework for an exploratory, hands-on approach, introducing first principles only as needed, not in advance. Simple shader programs are used to review basic 3D techniques such as homogeneous coordinates and the Phong shading model. Then we turn to basic deformation effects employing vertex shaders and the use of texture maps as decals or reflected environments inside pixel shaders. To create bump mapping and related effects, tangent space coordinates and normal maps are introduced. Finally, we treat more complex effects such as anisotropic specular highlights. <b>Keywords</b>: Pixel shader, Vertex shader, HLSL, Effect framework}, number={1}, journal={Revista de Informática Teórica e Aplicada}, author={Loviscach, Jörn}, year={2004}, month={Jun.}, pages={125–164} }