mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-04 03:40:14 +00:00
fix #1
This commit is contained in:
parent
30d27fa83f
commit
f8d45eae52
@ -55,20 +55,21 @@ OcclusionQuery::OcclusionQuery(OEngine::Render::OgreRenderer* renderer, SceneNod
|
|||||||
mBBNode = mSunNode->getParentSceneNode()->createChildSceneNode();
|
mBBNode = mSunNode->getParentSceneNode()->createChildSceneNode();
|
||||||
|
|
||||||
mObjectNode = mRendering->getScene()->getRootSceneNode()->createChildSceneNode();
|
mObjectNode = mRendering->getScene()->getRootSceneNode()->createChildSceneNode();
|
||||||
|
mBBNodeReal = mRendering->getScene()->getRootSceneNode()->createChildSceneNode();
|
||||||
|
|
||||||
mBBQueryTotal = mRendering->getScene()->createBillboardSet(1);
|
mBBQueryTotal = mRendering->getScene()->createBillboardSet(1);
|
||||||
mBBQueryTotal->setDefaultDimensions(150, 150);
|
mBBQueryTotal->setDefaultDimensions(150, 150);
|
||||||
mBBQueryTotal->createBillboard(Vector3::ZERO);
|
mBBQueryTotal->createBillboard(Vector3::ZERO);
|
||||||
mBBQueryTotal->setMaterialName("QueryTotalPixels");
|
mBBQueryTotal->setMaterialName("QueryTotalPixels");
|
||||||
mBBQueryTotal->setRenderQueueGroup(queue);
|
mBBQueryTotal->setRenderQueueGroup(queue);
|
||||||
mBBNode->attachObject(mBBQueryTotal);
|
mBBNodeReal->attachObject(mBBQueryTotal);
|
||||||
|
|
||||||
mBBQueryVisible = mRendering->getScene()->createBillboardSet(1);
|
mBBQueryVisible = mRendering->getScene()->createBillboardSet(1);
|
||||||
mBBQueryVisible->setDefaultDimensions(150, 150);
|
mBBQueryVisible->setDefaultDimensions(150, 150);
|
||||||
mBBQueryVisible->createBillboard(Vector3::ZERO);
|
mBBQueryVisible->createBillboard(Vector3::ZERO);
|
||||||
mBBQueryVisible->setMaterialName("QueryVisiblePixels");
|
mBBQueryVisible->setMaterialName("QueryVisiblePixels");
|
||||||
mBBQueryVisible->setRenderQueueGroup(queue);
|
mBBQueryVisible->setRenderQueueGroup(queue);
|
||||||
mBBNode->attachObject(mBBQueryVisible);
|
mBBNodeReal->attachObject(mBBQueryVisible);
|
||||||
|
|
||||||
mBBQuerySingleObject = mRendering->getScene()->createBillboardSet(1);
|
mBBQuerySingleObject = mRendering->getScene()->createBillboardSet(1);
|
||||||
/// \todo ideally this should occupy exactly 1 pixel on the screen
|
/// \todo ideally this should occupy exactly 1 pixel on the screen
|
||||||
@ -178,6 +179,8 @@ void OcclusionQuery::update(float duration)
|
|||||||
dist /= 1000.f;
|
dist /= 1000.f;
|
||||||
mBBNode->setPosition(mSunNode->getPosition() * dist);
|
mBBNode->setPosition(mSunNode->getPosition() * dist);
|
||||||
mBBNode->setScale(dist, dist, dist);
|
mBBNode->setScale(dist, dist, dist);
|
||||||
|
mBBNodeReal->setPosition(mBBNode->_getDerivedPosition());
|
||||||
|
mBBNodeReal->setScale(mBBNode->getScale());
|
||||||
|
|
||||||
// Stop occlusion queries until we get their information
|
// Stop occlusion queries until we get their information
|
||||||
// (may not happen on the same frame they are requested in)
|
// (may not happen on the same frame they are requested in)
|
||||||
|
@ -65,6 +65,7 @@ namespace MWRender
|
|||||||
|
|
||||||
Ogre::SceneNode* mSunNode;
|
Ogre::SceneNode* mSunNode;
|
||||||
Ogre::SceneNode* mBBNode;
|
Ogre::SceneNode* mBBNode;
|
||||||
|
Ogre::SceneNode* mBBNodeReal;
|
||||||
float mSunVisibility;
|
float mSunVisibility;
|
||||||
|
|
||||||
Ogre::SceneNode* mObjectNode;
|
Ogre::SceneNode* mObjectNode;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user