<div dir="ltr">Alberto,<br><br>I presume that your skydome has some sort of camera centred transform over it (as per osghangglide's example use); your code doesn't show it.<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
    osg::ClearNode* clearNode = new osg::ClearNode;<br>
<br>
    clearNode->setRequiresClear(false);</blockquote><div><br>This is odd. If your camera is the first thing to draw (implied by PRE_RENDER) then something needs to be clearing the colour and depth buffer. In any case, you can use camera's setClearMask method to control this without needing a clearNode. For example camera->setClearMask(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT) clears everyhing, setClearMask(0) clears nothing.<br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">   osg::TexEnv* te = new osg::TexEnv;<br>
    te->setMode(osg::TexEnv::REPLACE);<br>
    stateset->setTextureAttributeAndModes(0, te, osg::StateAttribute::ON);<br>
</blockquote><div><br>Slightly surprised to see this, but if your skydome needs it, then OK.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>  
 stateset->setMode( GL_CULL_FACE, osg::StateAttribute::ON );<br>
<br>
    osg::Depth* depth = new osg::Depth;<br>
    depth->setFunction(osg::Depth::ALWAYS);<br>
    depth->setRange(1.0,1.0);<br>
    stateset->setAttributeAndModes(depth, osg::StateAttribute::ON );<br>
</blockquote><div><br>Again, not wrong (as the depth testing is always passed) but not really necessary, as you are ensuring that your skydome is drawn first. I would tend to prevent depth writing with<br><br><div style="margin-left: 40px;">
osg::Depth* depth = new osg::Depth;<br>depth->setWriteMask(false); // don't bother writing the depth buffer<br>stateset->setAttributeAndModes(depth, osg::StateAttribute::ON );<br></div><br>and also disable depth testing with<br>
<div style="margin-left: 40px;">stateSet->setMode(GL_DEPTH_TEST, osg::StateAttribute::OFF)<br></div><br>I looked at my code and noticed that I also do camera->setCullingMode(osg::CullSettings::NO_CULLING), but can't remember at the moment whether it's relevant.<br>
<br>Lastly, what OSG version are you using?<br><br>Hope that helps,<br><br>David<br></div></div><br></div>