forked from speed-dreams/speed-dreams-code
update SDRender with good fog parameter
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5409 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: 5547e4310afd78da87c13c68c56c8d2bd4cdb46b Former-commit-id: a18aeebd835df7863b4c971e2382a8882690a546
This commit is contained in:
parent
c64a3d83c2
commit
caa89dbdaf
1 changed files with 8 additions and 6 deletions
|
@ -93,7 +93,8 @@ SDRender::~SDRender(void)
|
|||
delete thesky;
|
||||
}
|
||||
|
||||
SDSky * SDRender::getSky(){
|
||||
SDSky * SDRender::getSky()
|
||||
{
|
||||
return thesky;
|
||||
}
|
||||
|
||||
|
@ -179,7 +180,7 @@ osg::ref_ptr<osg::Node> SDRender::Init(osg::Group *m_sceneroot, tTrack *track)
|
|||
double r_WrldX = SDScenery::getWorldX();
|
||||
double r_WrldY = SDScenery::getWorldY();
|
||||
double r_WrldZ = SDScenery::getWorldZ();
|
||||
osg::Vec3 viewPos(r_WrldX / 2, r_WrldY/ 2, 0 );
|
||||
osg::Vec3 viewPos(r_WrldX / 2, r_WrldY/ 2, r_WrldZ / 2 );
|
||||
//osg::Vec3 viewPos(0.0, 0.0, 0.0 );
|
||||
|
||||
thesky->reposition( viewPos, 0, 0);
|
||||
|
@ -364,16 +365,17 @@ void SDRender::UpdateLight( void )
|
|||
|
||||
osg::ref_ptr< osg::StateSet> SDRender::setFogState()
|
||||
{
|
||||
static const double m_log01 = -log( 0.01 );
|
||||
static const double sqrt_m_log01 = sqrt( m_log01 );
|
||||
const GLfloat fog_exp2_density = sqrt_m_log01 / thesky->get_visibility();
|
||||
SceneFog[0] = FogColor[0];
|
||||
SceneFog[1] = FogColor[1];
|
||||
SceneFog[2] = FogColor[2];
|
||||
SceneFog[3] = 0.5f;
|
||||
SceneFog[3] = 1.0f;
|
||||
osg::ref_ptr<osg::Fog> fog = new osg::Fog(); //The fog object
|
||||
fog->setMode(osg::Fog::EXP2); //Fog type
|
||||
fog->setDensity(0.0005); //Fog density
|
||||
fog->setDensity(fog_exp2_density); //Fog density
|
||||
fog->setColor(SceneFog); //Fog color
|
||||
fog->setStart(8000); //Start position of the fog - distance from the camera to the fog
|
||||
fog->setEnd(12000); // maximum distance - where the fog terminates.
|
||||
osg::ref_ptr< osg::StateSet> fogState (new osg::StateSet);
|
||||
fogState->setAttributeAndModes(fog.get(),osg::StateAttribute::ON);
|
||||
fogState->setMode(GL_FOG,osg::StateAttribute::ON);
|
||||
|
|
Loading…
Reference in a new issue