<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>

<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoNoSpacing, li.MsoNoSpacing, div.MsoNoSpacing
        {mso-style-priority:1;
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoNoSpacing>Dear vtk community,<o:p></o:p></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><span lang=EN-US>For my research project I want to use
the Cg shader support of VTK. I can load a VTK included XML-material file into a
vtkProperty object, which reads the shader code correctly. However, if I add
uniform shader variables, which are used within the shader code, it has no
influence for the rendering. Below I present the xml-material file (provided by
VTK), my vtk-code and the cg-shader code (provided by VTK). <o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>Does anybody know what I have done wrong
or missed?<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>Thanks in advanced and best regards,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>Rocco Gasteiger</span><o:p></o:p></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>--------------------------------------------------</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>Dipl.-Ing. Rocco Gasteiger</span><span lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>Otto-von-Guericke University<br>
Faculty of Computer Science<br>
Department of Simulation and Graphics<br>
Universit&auml;tsplatz 2, 39106 Magdeburg, Germany<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>Office:&nbsp; G29-223<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>Phone:&nbsp;&nbsp; +49 391 67 127 59<br>
Fax:&nbsp;&nbsp;&nbsp;&nbsp; +49 391 67 111 64</span><span lang=EN-US
style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>Website: http://wwwisg.cs.uni-magdeburg.de/cvcms/&nbsp; <o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>--------------------------------------------------</span><o:p></o:p></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>********************</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing>XML-Material file:<o:p></o:p></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>********************</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><span lang=EN-US>&lt;?xml version=&quot;1.0&quot;
encoding=&quot;UTF-8&quot;?&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&lt;Material
name=&quot;CgTestMaterial&quot;&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp; &lt;Property
name=&quot;Property1&quot;&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;Member
name=&quot;DiffuseColor&quot; number_of_elements=&quot;3&quot;
type=&quot;Float&quot; value=&quot;1.0 1.0 1.0&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;Member
name=&quot;Ambient&quot; number_of_elements=&quot;3&quot;
type=&quot;Float&quot; value=&quot;1.0 0.0 1.0&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp; &lt;/Property&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp; &lt;Shader
scope=&quot;Vertex&quot; name=&quot;CGVertexLighting&quot;
location=&quot;Library&quot; language=&quot;Cg&quot;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp;
entry=&quot;main&quot; args=&quot;-DVERTEX_PROGRAM&quot;&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;MatrixUniform
name=&quot;ModelViewProj&quot; type=&quot;State&quot;
number_of_elements=&quot;2&quot; <o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
value=&quot;CG_GL_MODELVIEW_PROJECTION_MATRIX CG_GL_MATRIX_IDENTITY&quot;&gt; <o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp;
&lt;/MatrixUniform&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;Ka&quot; value=&quot;Ambient&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;AmbientColor&quot; value=&quot;AmbientColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;Kd&quot; value=&quot;Diffuse&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;DiffuseColor&quot; value=&quot;DiffuseColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;Ks&quot; value=&quot;Specular&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;Ksp&quot; value=&quot;SpecularPower&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;PropertyUniform
name=&quot;SpecularColor&quot; value=&quot;SpecularColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;LightUniform
name=&quot;lightPosition&quot; value=&quot;Position&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;LightUniform
name=&quot;lightDiffuseColor&quot; value=&quot;DiffuseColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;LightUniform
name=&quot;lightSpecularColor&quot; value=&quot;SpecularColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;LightUniform
name=&quot;lightAmbientColor&quot; value=&quot;AmbientColor&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp;&nbsp;&nbsp; &lt;CameraUniform
name=&quot;eyePosition&quot; value=&quot;Position&quot; /&gt;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>&nbsp; </span>&lt;/Shader&gt;<o:p></o:p></p>

<p class=MsoNoSpacing>&lt;/Material&gt;<o:p></o:p></p>

<p class=MsoNoSpacing><o:p>&nbsp;</o:p></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>********************</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US>My vtk-Code:<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>********************</span><span
lang=EN-US><o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New";color:#010001'>vtkSphereSource</span><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>* <span style='color:#010001'>sphere</span>
= <span style='color:#010001'>vtkSphereSource</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>vtkPolyDataMapper</span> *<span
style='color:#010001'>sphereMapper</span> = <span style='color:#010001'>vtkPolyDataMapper</span>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>sphereMapper</span>-&gt;<span
style='color:#010001'>SetInput</span>(<span style='color:#010001'>sphere</span>-&gt;<span
style='color:#010001'>GetOutput</span>());<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>vtkActor</span> *<span
style='color:#010001'>sphereActor</span> = <span style='color:#010001'>vtkActor</span>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>sphereActor</span>-&gt;<span
style='color:#010001'>SetMapper</span>(<span style='color:#010001'>sphereMapper</span>);&nbsp;
<span style='color:#010001'><o:p></o:p></span></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New";color:#010001'>&nbsp; sphereActor</span><span lang=EN-US
style='font-size:10.0pt;font-family:"Courier New"'>-&gt;<span style='color:
#010001'>GetProperty</span>()-&gt;<span style='color:#010001'>LoadMaterial</span>(<span
style='color:#A31515'>&quot;D:\\Bibliotheken\\VTK\\VTKSource\\Utilities\\MaterialLibrary\\Materials\\CgLighting.xml&quot;</span>);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp;&nbsp;<span style='color:#010001'>sphereActor</span>-&gt;<span
style='color:#010001'>GetProperty</span>()-&gt;<span style='color:#010001'>ShadingOn</span>();&nbsp;
<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; // I also tried the different version of &#8220;AddShaderVariable()&#8221;
but it didn&#8217;t help.<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New";color:blue'>&nbsp; float</span><span lang=EN-US style='font-size:
10.0pt;font-family:"Courier New"'> <span style='color:#010001'>color</span> =
(0.0, 0.0, 0.0);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>sphereActor</span>-&gt;<span
style='color:#010001'>GetProperty</span>()-&gt;<span style='color:#010001'>AddShaderVariable</span>(<span
style='color:#A31515'>&quot;DiffuseColor&quot;</span>, 3, &amp;<span
style='color:#010001'>color</span>);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; </span><span style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
<span style='color:#010001'>vtkRenderer</span> *<span style='color:#010001'>renderer</span>
= <span style='color:#010001'>vtkRenderer</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
<span style='color:#010001'>vtkRenderWindow</span> *<span style='color:#010001'>renWin</span>
= <span style='color:#010001'>vtkRenderWindow</span>::<span style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
</span><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New";
color:#010001'>renWin</span><span lang=EN-US style='font-size:10.0pt;
font-family:"Courier New"'>-&gt;<span style='color:#010001'>AddRenderer</span>(<span
style='color:#010001'>renderer</span>);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>vtkRenderWindowInteractor</span>
*<span style='color:#010001'>iren</span> = <span style='color:#010001'>vtkRenderWindowInteractor</span>::<span
style='color:#010001'>New</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>iren</span>-&gt;<span
style='color:#010001'>SetRenderWindow</span>(<span style='color:#010001'>renWin</span>);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>renderer</span>-&gt;<span
style='color:#010001'>AddActor</span>(<span style='color:#010001'>sphereActor</span>);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <span style='color:#010001'>renderer</span>-&gt;<span
style='color:#010001'>ResetCamera</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; <o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New";
color:#010001'>&nbsp; renWin</span><span style='font-size:10.0pt;font-family:
"Courier New"'>-&gt;<span style='color:#010001'>Render</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
<span style='color:#010001'>iren</span>-&gt;<span style='color:#010001'>Start</span>();<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>********************<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>The Cg-Shader code:<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>******************** <o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>struct vertin<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>{<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float4 Position: POSITION;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 Normal: NORMAL;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>};<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>struct vertout<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>{<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float4 Position : POSITION;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float4 Color&nbsp;&nbsp;&nbsp; : COLOR;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>};<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>vertout main(vertin IN,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float4x4 ModelViewProj,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float Ka,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 AmbientColor,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float Kd,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 DiffuseColor,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float Ks,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float Ksp,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 SpecularColor,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 lightPosition,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 eyePosition,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 lightDiffuseColor,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 lightAmbientColor,<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; uniform float3 lightSpecularColor<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>)<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>{<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
float3 N = IN.Normal; //invert(IN.Normal);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>&nbsp;
</span><span lang=EN-US style='font-size:10.0pt;font-family:"Courier New"'>vertout
OUT;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; OUT.Position = mul(ModelViewProj, IN.Position);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; // Computer Ambient intensity.<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 ambient = Ka * AmbientColor * lightAmbientColor;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; // Comput Diffuse intensity.<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 L = normalize(lightPosition - IN.Position);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float diffuseLight = max(dot(N, L), 0);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 diffuse = Kd * DiffuseColor * lightDiffuseColor *
diffuseLight;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; // Compute Specular intensity.<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 V = normalize(eyePosition - IN.Position);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 H = normalize(L + V);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float specularLight = pow(max(dot(N, H), 0), Ksp);<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; if (diffuseLight &lt;= 0) specularLight = 0;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; float3 specular = Ks * SpecularColor * lightSpecularColor
* specularLight;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; OUT.Color.xyz = ambient + diffuse + specular;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; OUT.Color.w = 1;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US style='font-size:10.0pt;font-family:
"Courier New"'>&nbsp; return OUT;<o:p></o:p></span></p>

<p class=MsoNoSpacing><span style='font-size:10.0pt;font-family:"Courier New"'>}<o:p></o:p></span></p>

<p class=MsoNoSpacing><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

</div>

</body>

</html>