<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        text-align:right;
        direction:rtl;
        unicode-bidi:embed;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1064451627;
        mso-list-type:hybrid;
        mso-list-template-ids:-1808136072 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1 dir=RTL>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Hello,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> I
have a problem with GL_LINEAR filtering of a float texture.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
created a 2D float image with the values<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>100
100<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>200
200<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
stretched this image over 300x300 float buffer.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
results are defiantly not a linear interpolation of these values.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<ol style='margin-top:0in' start=1 type=1>
 <li class=MsoNormal dir=LTR style='margin-right:0in;margin-left:.5in;
     text-align:left;mso-list:l0 level1 lfo1;direction:ltr;unicode-bidi:embed'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
     upper and lower quarters of the image are constants. The constant value is
     the value that should have been only in the upper most and lower most
     rows. It seems the interpolation of a pixel with 0.001 coordinates for
     example, takes into consideration values with negative texture
     coordinates. (I can't find any other explanation).<o:p></o:p></span></font></li>
 <li class=MsoNormal dir=LTR style='margin-right:0in;margin-left:.5in;
     text-align:left;mso-list:l0 level1 lfo1;direction:ltr;unicode-bidi:embed'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Between
     these quarters, the image SEEMS to be linearly interpolated, but it is
     not. I would expect the differences between two sequential pixels to be
     constant, but the differences are not the same.<o:p></o:p></span></font></li>
</ol>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
had this problem both with OSG1.2 and OSG2.0. I don't believe it has anything
to do with the OSG code, but with the hardware implementation.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>I
used the following code to create the texture:<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>image</span></font>-><font
color=black><span style='color:black'>setImage</span></font>(<font color=black><span
style='color:black'>  width</span></font>, <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    <font
color=black><span style='color:black'>height</span></font>,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    1,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    <font
color=black><span style='color:black'>GL_RGBA16F_ARB</span></font>, <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    <font
color=black><span style='color:black'>GL_RGBA</span></font>, <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    <font
color=black><span style='color:black'>GL_FLOAT</span></font>,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    (<font
color=blue><span style='color:blue'>unsigned</span></font> <font color=blue><span
style='color:blue'>char</span></font>*)(<font color=blue><span
style='color:blue'>new</span></font> <font color=blue><span style='color:blue'>float</span></font>[4*<font
color=black><span style='color:black'>width</span></font>*<font color=black><span
style='color:black'>height</span></font>]),<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                                    <font
color=black><span style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Image</span></font>::<font color=black><span
style='color:black'>USE_NEW_DELETE</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>* <font color=black><span
style='color:black'>rtexture</span></font> = <font color=blue><span
style='color:blue'>new</span></font> <font color=black><span style='color:black'>osg</span></font>::<font
color=black><span style='color:black'>Texture2D</span></font>;<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=green><span style='color:green'>//------------------------------------------------------------------------<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=green><span style='color:green'>// make the texture float texture<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=green><span style='color:green'>//------------------------------------------------------------------------<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setInternalFormat</span></font>(<font
color=black><span style='color:black'>GL_RGBA16F_ARB</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setWrap</span></font>(<font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>WRAP_S</span></font>, <font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>CLAMP_TO_EDGE</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setWrap</span></font>(<font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>WRAP_T</span></font>, <font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>CLAMP_TO_EDGE</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>      <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setFilter</span></font>(<font
color=black><span style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>MIN_FILTER</span></font>,<font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>LINEAR</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setFilter</span></font>(<font
color=black><span style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>MAG_FILTER</span></font>,<font color=black><span
style='color:black'>osg</span></font>::<font color=black><span
style='color:black'>Texture2D</span></font>::<font color=black><span
style='color:black'>LINEAR</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setSourceFormat</span></font>(<font
color=black><span style='color:black'>GL_RGBA</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setSourceType</span></font>(<font
color=black><span style='color:black'>GL_FLOAT</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=green><span style='color:green'>//========================================================================<o:p></o:p></span></font></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setImage</span></font>(<font color=black><span
style='color:black'>image</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setTextureSize</span></font>(<font
color=black><span style='color:black'>image</span></font>-><font
color=black><span style='color:black'>s</span></font>(), <font color=black><span
style='color:black'>image</span></font>-><font color=black><span
style='color:black'>t</span></font>());<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <font
color=black><span style='color:black'>rtexture</span></font>-><font
color=black><span style='color:black'>setResizeNonPowerOfTwoHint</span></font>(<font
color=blue><span style='color:blue'>false</span></font>);<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>                  <o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>I also tried it with 32 bit
float image.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>I'm using windows XP and
nvidia 8800.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>Any ideas how to apply a
true linear mapping for textures?<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>Thanks,<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;text-autospace:none;
direction:ltr;unicode-bidi:embed'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'> <st1:PersonName w:st="on">Guy</st1:PersonName>.<o:p></o:p></span></font></p>

<p class=MsoNormal dir=LTR style='text-align:left;direction:ltr;unicode-bidi:
embed'><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></font></p>

</div>

</body>

</html>