<!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.16525" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff background="">
<DIV><FONT face=Arial size=2>In fact I was puzzled by the fact that if no 
directional Light is set in the scene graph, the one set transversally onto the 
draw traversal by the osgViewer (through the cull visitor, ie not in the 
scenegraph) becomes active. I was unsure about that indeed, but a</FONT><FONT 
face=Arial size=2>s you say it's not as soon as at least one light is present in 
the scene graph (GL_LIGHT0 == Viewer's HEADLIGHT if and only if no LightSource 
is present in the scene).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Debugging a light effect where you can have to 
deactivate diffuse lights appear tricky not knowing that. Maybe a default 
behaviour of the viewer where lighting is OFF would have been 
clearer.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Now I have the whole picture thanks to you and 
Robert, thanks.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>-> Effectively, you can merely work into the 
scenegraph with osgViewer, since <FONT face="Times New Roman" size=3><FONT 
face=Arial 
size=2>viewer.getCamera()->getOrCreateStateSet()->setMode(..)</FONT> <FONT 
face=Arial size=2>only activate things on attributes and modes not encountered 
in the loaded scenegraph ; those who are set in the scenegraph aren't reset by 
osgViewer. So does the osglight example work.</FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2>-> Debugging peacefully an ambient effect can be 
done : passing through 
viewer.getCamera()->getOrCreateStateSet()->setMode(..)<FONT 
face="Times New Roman" size=3><FONT face=Arial size=2> works to disable the 
'transversal' diffuse light established by the 
viewer.</FONT></FONT></FONT></DIV>
<DIV><FONT><FONT><FONT face=Arial size=2>-> viewer.setLightingMode() doesn't 
seem too work well, in v.2.</FONT></FONT></FONT><FONT><FONT><FONT face=Arial 
size=2>0.0 nor 2.1.10 (it's not vital to me).</FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Christophe</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=pmartz@skew-matrix.com href="mailto:pmartz@skew-matrix.com">Paul 
  Martz</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=osg-users@lists.openscenegraph.org 
  href="mailto:osg-users@lists.openscenegraph.org">'OpenSceneGraph Users'</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, September 13, 2007 4:41 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [osg-users] Lighting 
  behavior and osgViewer::osgViewer</DIV>
  <DIV><BR></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2>Hi Christophe --</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN> </DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2>If I'm reading your email right, you have two 
  concerns:</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN> </DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2> 1. You don't understand how SceneView uses its 
  _light member variable. Without digging into the code, I'm not sure either. 
  But I suspect it circumvents the typical update/cull traversals and slaps the 
  light state directly into the positional state of the draw traversal. As 
  _light just controls GL_LIGHT_0, you don't need to access _light or even its 
  StateSet -- you just need to specify your own alternate values for 
  GL_LIGHT_0.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN> </DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2> 2. You seem to be unsure that you can fully control 
  lighting and simultaneously use osgViewer. This is not the case, and again I 
  direct you to the osglight example program, which uses osgViewer and overrides 
  lighting effects directly in the scene graph.</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2></FONT></SPAN> </DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2>Hope that helps,</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  color=#0000ff size=2>   -Paul</FONT></SPAN></DIV>
  <DIV dir=ltr align=left><SPAN class=578023114-13092007><FONT face=Arial 
  size=2></FONT></SPAN> </DIV></BLOCKQUOTE>
<DIV align=left><SPAN class=578023114-13092007><FONT face=Arial 
color=#0000ff></FONT></SPAN> </DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px"><SPAN 
  class=578023114-13092007>
  <DIV dir=ltr align=left><FONT face=Arial size=2>----- Original Message ----- 
  </FONT>
  <DIV><FONT face=Arial size=2><STRONG>From:</STRONG> "Robert Osfield" 
  <</FONT><A href="mailto:robert.osfield@gmail.com"><FONT face=Arial 
  size=2>robert.osfield@gmail.com</FONT></A><FONT face=Arial 
  size=2>></FONT></DIV>
  <DIV><FONT face=Arial size=2><STRONG>To:</STRONG> "OpenSceneGraph Users" 
  <</FONT><A href="mailto:osg-users@lists.openscenegraph.org"><FONT 
  face=Arial size=2>osg-users@lists.openscenegraph.org</FONT></A><FONT 
  face=Arial size=2>></FONT></DIV>
  <DIV><FONT face=Arial size=2><STRONG>Sent:</STRONG> Thursday, September 13, 
  2007 3:28 PM</FONT></DIV>
  <DIV><FONT face=Arial size=2><STRONG>Subject:</STRONG> Re: [osg-users] 
  Lighting behavior and osgViewer::osgViewer</FONT></DIV></DIV>
  <DIV dir=ltr align=left><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV>
  <DIV dir=ltr align=left><FONT face=Arial size=2>Hi Christophe,<BR><BR>I 
  wouldn't recommended messing with SceneView unless you really have 
  to.<BR><BR>osgViewer now honours the Camera's StateSet, and this acts as 
  the<BR>global StateSet.  You can simply sets modes and attributes you 
  want on<BR>the camera 
  i.e.<BR><BR>viewer.getCamera()->getOrCreateStateSet()->setMode(..);<BR><BR>Robert.<BR></DIV></FONT></SPAN></BLOCKQUOTE></BODY></HTML>