Osg: correcting car shader and parameters sended to it.
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5466 30fe4595-0a0c-4342-8851-515496e4dcbd Former-commit-id: e37469a20ec88dc2325d0069c2979296a4115fbf Former-commit-id: dadd54d8fc8339e03c797427f6150a2789e7f669
This commit is contained in:
parent
80538129e7
commit
aa7ebec367
2 changed files with 21 additions and 10 deletions
|
@ -83,7 +83,7 @@ public :
|
||||||
stateset->addUniform(shininess);
|
stateset->addUniform(shininess);
|
||||||
}
|
}
|
||||||
|
|
||||||
void update(osg::Vec3f c, osg::Matrixf modelview){
|
void update(osg::Vec3f c, osg::Matrixf view){
|
||||||
|
|
||||||
|
|
||||||
SDRender * ren = (SDRender *)getRender();
|
SDRender * ren = (SDRender *)getRender();
|
||||||
|
@ -98,11 +98,16 @@ public :
|
||||||
//SDScreens * scr= (SDScreens *)getScreens();
|
//SDScreens * scr= (SDScreens *)getScreens();
|
||||||
//osg::Vec3 c = scr->getActiveView()->getCameras()->getSelectedCamera()->getCameraPosition();
|
//osg::Vec3 c = scr->getActiveView()->getCameras()->getSelectedCamera()->getCameraPosition();
|
||||||
// osg::Matrix modelview = scr->getActiveView()->getOsgCam()->getViewMatrix();
|
// osg::Matrix modelview = scr->getActiveView()->getOsgCam()->getViewMatrix();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//Wil have to check space coordinates !
|
||||||
osg::Vec4f v = osg::Vec4f(c.x(),c.y(),c.z(),1.0f);
|
osg::Vec4f v = osg::Vec4f(c.x(),c.y(),c.z(),1.0f);
|
||||||
osg::Vec4f pv = v*modelview;
|
osg::Vec4f pv = v*view;
|
||||||
osg::Vec4f lv = osg::Vec4(sun_pos.x(),sun_pos.y(),sun_pos.z(),0.0f);
|
osg::Vec4f lv = osg::Vec4(sun_pos.x(),sun_pos.y(),sun_pos.z(),0.0f);
|
||||||
lv =lv*modelview;
|
lv = lv*view;
|
||||||
/*
|
|
||||||
|
/*
|
||||||
GfOut("View Point : %f %f %f\n",pv.x(),pv.y(),pv.z());
|
GfOut("View Point : %f %f %f\n",pv.x(),pv.y(),pv.z());
|
||||||
GfOut("Light Vector : %f %f %f\n",lv.x(),lv.y(),lv.z());
|
GfOut("Light Vector : %f %f %f\n",lv.x(),lv.y(),lv.z());
|
||||||
*/
|
*/
|
||||||
|
@ -114,6 +119,8 @@ public :
|
||||||
this->lightVector->set(osg::Vec3f(lv.x(),lv.y(),lv.z()));
|
this->lightVector->set(osg::Vec3f(lv.x(),lv.y(),lv.z()));
|
||||||
this->lightPower->set(sun_color);
|
this->lightPower->set(sun_color);
|
||||||
this->ambientColor->set(scene_color);
|
this->ambientColor->set(scene_color);
|
||||||
|
//this->mvmatrix->set(mvm);
|
||||||
|
// this->normalmatrix->set(m);
|
||||||
|
|
||||||
//osg::StateSet* stateset = pCar->getOrCreateStateSet();
|
//osg::StateSet* stateset = pCar->getOrCreateStateSet();
|
||||||
//stateset->setAttributeAndModes( program.get() );
|
//stateset->setAttributeAndModes( program.get() );
|
||||||
|
@ -136,7 +143,7 @@ SDCar::loadCar(tCarElt *car)
|
||||||
char buf[nMaxTexPathSize];
|
char buf[nMaxTexPathSize];
|
||||||
int index;
|
int index;
|
||||||
void *handle;
|
void *handle;
|
||||||
//const char *param;
|
//const char *param;,car_branch->getMatrix()
|
||||||
int lg =0;
|
int lg =0;
|
||||||
char path[256];
|
char path[256];
|
||||||
|
|
||||||
|
@ -319,6 +326,8 @@ void SDCar::updateCar()
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDCar::updateShadingParameters(osg::Vec3f eye,osg::Matrixf modelview){
|
void SDCar::updateShadingParameters(osg::Vec3f eye,osg::Matrixf modelview){
|
||||||
|
|
||||||
|
|
||||||
shader->update(eye,modelview);
|
shader->update(eye,modelview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -362,7 +362,7 @@ void SDRender::Init(tTrack *track)
|
||||||
sceneGroup->addChild(m_scene);
|
sceneGroup->addChild(m_scene);
|
||||||
//sceneGroup->addChild(scenery->getScene());
|
//sceneGroup->addChild(scenery->getScene());
|
||||||
//m_CarRoot->addChild(cars->getCarsNode());
|
//m_CarRoot->addChild(cars->getCarsNode());
|
||||||
m_CarRoot->setNodeMask(castShadowMask);
|
//m_CarRoot->setNodeMask(castShadowMask);
|
||||||
sceneGroup->addChild(m_CarRoot.get());
|
sceneGroup->addChild(m_CarRoot.get());
|
||||||
stateSet = new osg::StateSet;
|
stateSet = new osg::StateSet;
|
||||||
stateSet = m_scene->getOrCreateStateSet();
|
stateSet = m_scene->getOrCreateStateSet();
|
||||||
|
@ -433,7 +433,7 @@ void SDRender::Init(tTrack *track)
|
||||||
|
|
||||||
void SDRender::ShadowedScene()
|
void SDRender::ShadowedScene()
|
||||||
{
|
{
|
||||||
/*osg::ref_ptr<osgShadow::ShadowMap> vdsm = new osgShadow::ShadowMap;
|
osg::ref_ptr<osgShadow::ShadowMap> vdsm = new osgShadow::ShadowMap;
|
||||||
vdsm->setLight(sunLight.get());
|
vdsm->setLight(sunLight.get());
|
||||||
vdsm->setTextureSize(osg::Vec2s(2048, 2048));
|
vdsm->setTextureSize(osg::Vec2s(2048, 2048));
|
||||||
vdsm->setTextureUnit(3);
|
vdsm->setTextureUnit(3);
|
||||||
|
@ -444,21 +444,23 @@ void SDRender::ShadowedScene()
|
||||||
shadowRoot->setCastsShadowTraversalMask(castShadowMask);
|
shadowRoot->setCastsShadowTraversalMask(castShadowMask);
|
||||||
shadowRoot->addChild(m_scene.get());
|
shadowRoot->addChild(m_scene.get());
|
||||||
shadowRoot->addChild(m_CarRoot.get());
|
shadowRoot->addChild(m_CarRoot.get());
|
||||||
|
shadowRoot->addChild(sunLight.get());
|
||||||
|
|
||||||
m_RealRoot->addChild(shadowRoot.get());*/
|
|
||||||
|
m_RealRoot->addChild(shadowRoot.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDRender::addCars(osg::Node* cars)
|
void SDRender::addCars(osg::Node* cars)
|
||||||
{
|
{
|
||||||
//m_CarRoot = new osg::Group;
|
//m_CarRoot = new osg::Group;
|
||||||
m_CarRoot->addChild(cars);
|
m_CarRoot->addChild(cars);
|
||||||
//m_CarRoot->setNodeMask(castShadowMask);
|
m_CarRoot->setNodeMask(castShadowMask);
|
||||||
|
|
||||||
osgUtil::Optimizer optimizer;
|
osgUtil::Optimizer optimizer;
|
||||||
optimizer.optimize(m_CarRoot.get());
|
optimizer.optimize(m_CarRoot.get());
|
||||||
optimizer.optimize(m_scene.get());
|
optimizer.optimize(m_scene.get());
|
||||||
|
|
||||||
//ShadowedScene();
|
ShadowedScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SDRender::UpdateLight( void )
|
void SDRender::UpdateLight( void )
|
||||||
|
|
Loading…
Reference in a new issue