<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16674" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff 
size=2></FONT> </DIV>
<DIV><SPAN class=710081613-19072008></SPAN><FONT face=Arial><FONT 
color=#0000ff><FONT size=2>The reason you need <FONT 
face="Times New Roman">GL_RESCALE_NORMAL<SPAN class=710081613-19072008> 
</SPAN></FONT>is bec<SPAN 
class=710081613-19072008>a</SPAN>use you have scaled your terrain.<SPAN 
class=710081613-19072008> OpenGL by default does NOT scale normal on a scale 
matrix because the act of rescale requires the use of sqr roots and this is 
expensive. when you have a lot of them every frame ( see any good 
OpenGL book for details)</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=710081613-19072008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=710081613-19072008>I would recommend that you create your terrain to the 
correct size and not scale at run time,</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT 
size=2></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT color=#0000ff><FONT size=2><SPAN 
class=710081613-19072008></SPAN></FONT></FONT></FONT> </DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> osg-users-bounces@lists.openscenegraph.org 
[mailto:osg-users-bounces@lists.openscenegraph.org] <B>On Behalf Of </B>▄mit 
Uzun<BR><B>Sent:</B> Saturday, July 19, 2008 9:06 AM<BR><B>To:</B> 
OpenSceneGraph Users<BR><B>Subject:</B> Re: [osg-users] osg::Light Simple 
Question ?<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV dir=ltr>Hi Jean,<BR><BR>Thanks for reply. You are right, my model hasn't 
normals :) So "terrainScaleMAT->getOrCreateStateSet()->setMode( 
GL_RESCALE_NORMAL, osg::StateAttribute::ON );" pattern doesn't work on terrain 
lightening. Like your advice I can use osgUtil::SmoothingVisitor but I choose 
easier way which is gathering model which has normals in it. So I use new model 
with adding GL_RESCALE_NORMAL control and result is perfect like added 
screenshot:)<BR><BR>I have a last question about why my model's lightening 
operation related with normals rescaling process? I can't understand backgroud 
of this command. <BR><BR>Thanks for helps Jean and Gordon :)<BR>Best 
Regards.<BR><BR>▄mit UZUN<BR><BR>
<DIV class=gmail_quote>2008/7/19 Jean-SÚbastien Guay <<A 
href="mailto:jean-sebastien.guay@cm-labs.com">jean-sebastien.guay@cm-labs.com</A>>:<BR>
<BLOCKQUOTE class=gmail_quote 
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">Hello 
  ▄mit,
  <DIV class=Ih2E3d><BR><BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">I 
    have tried "terrainScaleMAT->getOrCreateStateSet()->setMode( 
    GL_RESCALE_NORMAL, osg::StateAttribute::ON );" pattern but the result is 
    same. There is no light effect on the terrain. I don't understand 
  why?<BR></BLOCKQUOTE><BR></DIV>As Gordon said, check if your terrain has 
  normals in the first place... Rescaling non-existing normals won't do anything 
  :-)<BR><BR>In your .osg file, check for normalArray under your Geometry, and 
  check that normalBinding is set to PER_VERTEX. If the model has no normals, 
  you can generate them with a modeling tool or use the 
  osgUtil::SmoothingVisitor to create smooth normals across the 
  surface.<BR><BR>And BTW, yes you're right that the two suggestions I gave 
  before were mutually exclusive, i.e. if you checked your model and changed the 
  TexEnv in it you don't need a NodeVisitor to do the same thing...<BR><BR>Oh, 
  just another little thing, are you sure you're reloading the .osg model and 
  not the original one without your changes?
  <DIV class=Ih2E3d><BR><BR>J-S<BR>-- 
  <BR>______________________________________________________<BR>Jean-Sebastien 
  Guay    <A href="mailto:jean-sebastien.guay@cm-labs.com" 
  target=_blank>jean-sebastien.guay@cm-labs.com</A><BR>      
                        
    <A href="http://www.cm-labs.com/" 
  target=_blank>http://www.cm-labs.com/</A><BR></DIV>        
                 <A 
  href="http://whitestar02.webhop.org/" 
  target=_blank>http://whitestar02.webhop.org/</A>
  <DIV>
  <DIV></DIV>
  <DIV 
  class=Wj3C7c><BR>_______________________________________________<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" 
  target=_blank>http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</A><BR></DIV></DIV></BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>