<div dir="ltr"><div>Hey Martin,</div><div><br></div>You are not interpreting the parameters properly. Look at the header for Matrixd.cpp:<div><br></div><div><div><font face="monospace, monospace">  /** Set the position and orientation to be a view matrix, </font></div><div><font face="monospace, monospace">    * using the same convention as gluLookAt.</font></div><div><font face="monospace, monospace">  */</font></div><div><font face="monospace, monospace">  void makeLookAt(const Vec3d& eye,const Vec3d& center,const Vec3d& up    );</font></div></div><div><br></div><div>It follows the same convention and algorithm as gluLookAt(), so you can look at the many online reference pages for that (<a href="https://docs.microsoft.com/en-us/windows/desktop/opengl/glulookat" target="_blank">microsoft</a>, <a href="https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/gluLookAt.xml" target="_blank">khronos</a>). There is no question about its correctness or compatibility with OpenGL, since OSG has been used with OpenGL in hundreds of projects for like 20 years. :D</div><div><br></div><div>To very directly answer your question, "eye" is the eye position (or camera if you prefer), "center" is a point towards which the eye is looking, and therefore the look vector points from eye towards center. This look vector is the negative z-axis of OpenGL. The "up" vector specifies the direction of the positive y-axis. The x-axis is then defined as y-cross-z, which is the default OpenGL right-handed system. HOWEVER, OSG takes it a step further and maps the y-axis to the look vector (into the screen). With this simple rotation, x points right and z points up, which remains right-handed. I'm guessing this is done because many OSG applications represent physical (real-world) systems, in which the z-axis often does point up. (Robert or someone else can correct me if that's not the reason)</div><div><br></div><div>Ravi</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Aug 13, 2018 at 10:07 AM Rowley, Marlin R <<a href="mailto:marlin.r.rowley@lmco.com" target="_blank">marlin.r.rowley@lmco.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="m_4618417125473015712m_4382851675941503044WordSection1">
<p class="MsoNormal">All,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’m very confused by the parameters passed into this function.  I am going over some of the legacy code and saw this line of code:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">osg::</span><span style="font-size:9.5pt;font-family:Consolas;color:#2b91af">Matrixd</span><span style="font-size:9.5pt;font-family:Consolas;color:black">
 frustumView;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">frustumView.makeLookAt(VIEW_POS, mDirection, mUp);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal">saw the docs, it’s described like this:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">void makeLookAt(const Vec3d& eye,const Vec3d& center,const Vec3d& up);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">So in this context, I would think that “eye” represents the look vector.  However, it seems to work like a position vector.  The “center” parameter expects a direction vector
 (0, -1, 0) where the look vector is along the -yaxis.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">This matrix will not translate to OpenGL properly since it’s coordinate system is based off of a right handed coordinate frame.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">Questions:<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="m_4618417125473015712m_4382851675941503044MsoListParagraph" style="margin-left:0in">Am I interpreting these parameters properly?<u></u><u></u></li><li class="m_4618417125473015712m_4382851675941503044MsoListParagraph" style="margin-left:0in">How would I convert this system to the OpenGL right-handed system?<u></u><u></u></li></ol>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">----------------------------------------<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">Marlin Rowley<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">Software Engineer, Staff<u></u><u></u></span></p>
<p class="MsoNormal"><img width="156" height="40" style="width:1.625in;height:.4166in" id="m_4618417125473015712m_4382851675941503044Picture_x0020_1" alt="cid:image002.jpg@01D39374.DEC5A2E0"><span style="font-size:10.0pt;font-family:"Times New Roman",serif;color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><i><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:#1f497d">Missiles and Fire Control</span></i><span style="color:#1f497d"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">972-603-1931 (office)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:#1f497d">214-926-0622 (mobile)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><a href="mailto:marlin.r.rowley@lmco.com" target="_blank"><span style="color:#0563c1">marlin.r.rowley@lmco.com</span></a></span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org" target="_blank">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" rel="noreferrer" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
</blockquote></div></div>