]> git.mxchange.org Git - simgear.git/commitdiff
Fixes from Mark Harris.
authorcurt <curt>
Thu, 3 Oct 2002 19:00:01 +0000 (19:00 +0000)
committercurt <curt>
Thu, 3 Oct 2002 19:00:01 +0000 (19:00 +0000)
simgear/scene/sky/clouds3d/SkyCloud.cpp
simgear/scene/sky/clouds3d/SkyTextureState.cpp

index dedd804453fdcc02c1aba245d6e35ead8c0114cf..e682030ced5c67813bfac9b9820869cfbe187561 100644 (file)
@@ -190,11 +190,12 @@ SKYRESULT SkyCloud::Display(const Camera &camera, SkyRenderableInstance *pInstan
     // don't just use the camera position -- if it is too far away from the cloud, then
     // precision limitations may cause the STL sort to hang.  Instead, put the sort position
     // just outside the bounding sphere of the cloud in the direction of the camera.
-    Vec3f vecSortPos = -cam.ViewDir();
-    vecSortPos *= (1.1 * _boundingBox.GetRadius());
+    _vecSortPos = -cam.ViewDir();
+    _vecSortPos *= (1.1 * _boundingBox.GetRadius());
+    _vecSortPos += _boundingBox.GetCenter();
     
     // sort the particles from back to front wrt the camera position.
-    _SortParticles(cam.ViewDir(), vecSortPos, SKY_CLOUD_SORT_TOWARD);
+    _SortParticles(cam.ViewDir(), _vecSortPos, SKY_CLOUD_SORT_TOWARD);
 
     //_vecLastSortViewDir = GLVU::GetCurrent()->GetCurrentCam()->ViewDir();
     //_vecLastSortCamPos = GLVU::GetCurrent()->GetCurrentCam()->Orig;
@@ -292,6 +293,7 @@ SKYRESULT SkyCloud::DisplaySplit(const Camera           &camera,
     // just outside the bounding sphere of the cloud in the direction of the camera.
     _vecSortPos = -cam.ViewDir();
     _vecSortPos *= (1.1 * _boundingBox.GetRadius());
+    _vecSortPos += _boundingBox.GetCenter();
     
     // sort the particles from back to front wrt the camera position.
     _SortParticles(cam.ViewDir(), _vecSortPos, SKY_CLOUD_SORT_TOWARD);
@@ -299,7 +301,8 @@ SKYRESULT SkyCloud::DisplaySplit(const Camera           &camera,
     // we can't use the view direction optimization when the cloud is split, or we get a lot
     // of popping of objects in and out of cloud cover.  For consistency, though, we need to update
     // the cached sort direction, since we just sorted the particles.
-    ///_vecLastSortViewDir = GLVU::GetCurrent()->GetCurrentCam()->ViewDir(); 
+    // _vecLastSortViewDir = GLVU::GetCurrent()->GetCurrentCam()->ViewDir(); 
+    // _vecLastSortCamPos = GLVU::GetCurrent()->GetCurrentCam()->Orig;
 
     // compute the split distance.
     vecCloudSpaceSplit  -= _vecSortPos;
index 16d33704540385810cb2c0c492f2d88c53dc3fd7..3c9b2a78499d2ec2b198c64f35059f440f36bbf9 100644 (file)
@@ -145,7 +145,7 @@ SKYRESULT SkyTextureState::Activate()
       if (pCurrent->GetTextureParameter(i, GL_TEXTURE_MAG_FILTER) != paramValue) 
       {
         FAIL_RETURN(pCurrent->SetTextureParameter(i, GL_TEXTURE_MAG_FILTER, paramValue));
-        glTexParameteri(eTarget, GL_TEXTURE_MIN_FILTER, paramValue);
+        glTexParameteri(eTarget, GL_TEXTURE_MAG_FILTER, paramValue);
       }
       //GLVU::CheckForGLError("SkyTextureState::Activate()");
     }