<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 http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Arial-BoldMT-TT;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></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="EN-CA" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sorry to bother you guys... but I was wondering if you can help identify why my pass through vertex shader isn't working. In essence, if I enable the vertex shader, then the scene disappears (I only see that blue background color). If I
 disable it then the scene appears correctly. No errors are generated by OSG after linking the vertex shader. I know that my fragment shader is working because if I set the gl_FragColor to red then the scene is completely red.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Here are my pass-thru shaders:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[code]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">VERTEX SHADER<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">=============<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">attribute vec4 osg_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_Position = osg_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">FRAGMENT SHADER<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">===============<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">uniform sampler2D tRttTexture;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     vec3 vColor = texture2D( tRttTexture, gl_TexCoord[0].st ).rgb;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     // Output color.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_FragColor = vec4( vColor, 1.0 );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[/code]<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The shader is applied on a fullscreen quad using typical Ortho2D projection. Here is the code that loads the shader which is applied to the post process geode containing a single geometry quad:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[code]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void loadShaders( )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    osg::StateSet* pStateSet = g_pPolyGeode->getOrCreateStateSet( );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    osg::ref_ptr<osg::Program> pProgram = new osg::Program;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    pProgram->setName( "PostProcessProgram" );
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    osg::ref_ptr<osg::Shader> pVertShader = osg::Shader::readShaderFile( osg::Shader::VERTEX, osgDB::findDataFile( "shaders/osgprerender.vert" ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    if( pVertShader )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        pVertShader->setName( "osgprerender.vert" );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        pProgram->addShader( pVertShader );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        pProgram->addBindAttribLocation( "osg_Vertex", 0 );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    osg::ref_ptr<osg::Shader> pFragShader = osg::Shader::readShaderFile( osg::Shader::FRAGMENT, osgDB::findDataFile( "shaders/osgprerender.frag" ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    if( pFragShader )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    {<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        pFragShader->setName( "osgprerender.frag" );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">        pProgram->addShader( pFragShader );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    }<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    // RTT texture.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    pStateSet->addUniform( new osg::Uniform( "tRttTexture", 0 ) );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">    pStateSet->setAttributeAndModes( pProgram, osg::StateAttribute::ON );<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[/code]<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">What am I doing wrong? I tried different variation of the shader but nothing works. Here are the variations that I tried:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[code]<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">VARIATION #1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">===========<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_Position = gl_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">VARIATION #2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">===========<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">VARIATION #3<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">===========<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">attribute vec4 osg_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_Position = gl_ModelViewProjectionMatrix * osg_Vertex;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New""><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">VARIATION #4<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">===========<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">void main( void )<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">{<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">     gl_Position = ftransform();<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family:"Courier New"">[/code]<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Any help would be really appreciated... The full source code is attached.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thank you!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Cheers,<o:p></o:p></p>
<p class="MsoNormal">Guy<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Guy Volckaert</span></b><b><span style="color:#1F497D;mso-fareast-language:EN-CA">, ing.</span></b><span style="color:#1F497D;mso-fareast-language:EN-CA"><br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Snr Software Engineer</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA"> </span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><b><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Meggitt Training Systems (Quebec) Inc.</span></b><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><b><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Systèmes d’entraînement Meggitt (Québec) Inc.</span></b><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">6140 Henri Bourassa West</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Montreal, Quebec, H4R 3A6</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Canada</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA"> </span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Tel: 1 (514) 339 9938 Ext 617</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Fax: 1 (514) 339 2641</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">Cell: 1 (514) 928-5641</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">email: </span><span style="color:#1F497D;mso-fareast-language:EN-CA"><a href="mailto:brian.bakker@meggitt.com"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:blue">guy.volckaert@meggitt.com</span></a>
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">url;
</span><span style="color:#1F497D;mso-fareast-language:EN-CA"><a href="http://www.meggitt.com"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:blue">www.meggitt.com</span></a>
<br>
</span><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA">skype: guy.volckaert</span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><span style="font-family:"Arial",sans-serif;color:#1F497D;mso-fareast-language:EN-CA"> </span><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><b><span style="font-size:7.5pt;font-family:Arial-BoldMT-TT;color:#287739;mso-fareast-language:EN-CA">Svp. Considérez l’environnement avant d’imprimer</span></b><span style="color:#1F497D;mso-fareast-language:EN-CA">
<br>
</span><b><span style="font-size:7.5pt;font-family:Arial-BoldMT-TT;color:#287739;mso-fareast-language:EN-CA">Please consider the environment before printing this e-mail.</span></b><span style="color:#1F497D;mso-fareast-language:EN-CA">
<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<br>
<hr>
<font face="Arial" color="Gray" size="1"></font><font face="Arial" color="Gray" size="1"><br>
<br>
<font></font></font><font face="Arial" color="Gray" size="1">This e-mail may contain proprietary information and/or copyright material. This e-mail is intended for the use of the addressee only. Any unauthorized use may be unlawful. If you receive this e-mail
 by mistake, please advise the sender immediately by using the reply facility in your e-mail software.<br>
<br>
Information contained in and/or attached to this document may be subject to export control regulations of the European Community, USA, or other countries. Each recipient of this document is responsible to ensure that usage and/or transfer of any information
 contained in this document complies with all relevant export control regulations. If you are in any doubt about the export control restrictions that apply to this information, please contact the sender immediately.<br>
<br>
Be aware that Meggitt may monitor incoming and outgoing e-mails to ensure compliance with the Meggitt IT Use policy.<br>
<br>
<font></font></font>
</body>
</html>