Backed out changeset: f73be0eb9d00
parent
71269ac1fc
commit
ffccd4a2ec
|
|
@ -4636,17 +4636,6 @@
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>IgnoreFOVZoomForLODs</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Ignore zoom effect(CTRL+0) when calculating lods.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>IgnoreAllNotifications</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -113,7 +113,6 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
|
|||
{
|
||||
calcProjection(getFar());
|
||||
mCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
|
||||
mPrevCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
|
||||
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
|
||||
mPixelMeterRatio = 0.f;
|
||||
mScreenPixelArea = 0;
|
||||
|
|
@ -883,15 +882,6 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads)
|
|||
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
|
||||
}
|
||||
|
||||
BOOL LLViewerCamera::isDefaultFOVChanged()
|
||||
{
|
||||
if(mPrevCameraFOVDefault != mCameraFOVDefault)
|
||||
{
|
||||
mPrevCameraFOVDefault = mCameraFOVDefault;
|
||||
return !gSavedSettings.getBOOL("IgnoreFOVZoomForLODs");
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)
|
||||
|
|
|
|||
|
|
@ -115,8 +115,6 @@ public:
|
|||
void setDefaultFOV(F32 fov) ;
|
||||
F32 getDefaultFOV() { return mCameraFOVDefault; }
|
||||
|
||||
BOOL isDefaultFOVChanged();
|
||||
|
||||
BOOL cameraUnderWater() const;
|
||||
BOOL areVertsVisible(LLViewerObject* volumep, BOOL all_verts);
|
||||
|
||||
|
|
@ -140,7 +138,6 @@ protected:
|
|||
mutable LLMatrix4 mProjectionMatrix; // Cache of perspective matrix
|
||||
mutable LLMatrix4 mModelviewMatrix;
|
||||
F32 mCameraFOVDefault;
|
||||
F32 mPrevCameraFOVDefault;
|
||||
F32 mCosHalfCameraFOV;
|
||||
LLVector3 mLastPointOfInterest;
|
||||
F32 mPixelMeterRatio; // Divide by distance from camera to get pixels per meter at that distance.
|
||||
|
|
|
|||
|
|
@ -1214,18 +1214,18 @@ void LLVOVolume::sculpt()
|
|||
}
|
||||
}
|
||||
|
||||
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius, F32 lod_factor)
|
||||
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius)
|
||||
{
|
||||
S32 cur_detail;
|
||||
if (LLPipeline::sDynamicLOD)
|
||||
{
|
||||
// We've got LOD in the profile, and in the twist. Use radius.
|
||||
F32 tan_angle = (lod_factor*radius)/distance;
|
||||
F32 tan_angle = (LLVOVolume::sLODFactor*radius)/distance;
|
||||
cur_detail = LLVolumeLODGroup::getDetailFromTan(ll_round(tan_angle, 0.01f));
|
||||
}
|
||||
else
|
||||
{
|
||||
cur_detail = llclamp((S32) (sqrtf(radius)*lod_factor*4.f), 0, 3);
|
||||
cur_detail = llclamp((S32) (sqrtf(radius)*LLVOVolume::sLODFactor*4.f), 0, 3);
|
||||
}
|
||||
return cur_detail;
|
||||
}
|
||||
|
|
@ -1241,7 +1241,6 @@ BOOL LLVOVolume::calcLOD()
|
|||
|
||||
F32 radius;
|
||||
F32 distance;
|
||||
F32 lod_factor = LLVOVolume::sLODFactor;
|
||||
|
||||
if (mDrawable->isState(LLDrawable::RIGGED))
|
||||
{
|
||||
|
|
@ -1277,18 +1276,12 @@ BOOL LLVOVolume::calcLOD()
|
|||
distance *= rampDist;
|
||||
}
|
||||
|
||||
|
||||
// DON'T Compensate for field of view changing on FOV zoom.
|
||||
distance *= F_PI/3.f;
|
||||
|
||||
static LLCachedControl<bool> ignore_fov_zoom(gSavedSettings,"IgnoreFOVZoomForLODs");
|
||||
if(!ignore_fov_zoom)
|
||||
{
|
||||
lod_factor *= DEFAULT_FIELD_OF_VIEW / LLViewerCamera::getInstance()->getDefaultFOV();
|
||||
}
|
||||
|
||||
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
|
||||
ll_round(radius, 0.01f),
|
||||
lod_factor);
|
||||
ll_round(radius, 0.01f));
|
||||
|
||||
|
||||
if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_LOD_INFO) &&
|
||||
mDrawable->getFace(0))
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ public:
|
|||
void clearRiggedVolume();
|
||||
|
||||
protected:
|
||||
S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
|
||||
S32 computeLODDetail(F32 distance, F32 radius);
|
||||
BOOL calcLOD();
|
||||
LLFace* addFace(S32 face_index);
|
||||
void updateTEData();
|
||||
|
|
|
|||
|
|
@ -3424,7 +3424,6 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
|
||||
{
|
||||
LLSpatialGroup* last_group = NULL;
|
||||
BOOL fov_changed = LLViewerCamera::getInstance()->isDefaultFOVChanged();
|
||||
for (LLCullResult::bridge_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i)
|
||||
{
|
||||
LLCullResult::bridge_iterator cur_iter = i;
|
||||
|
|
@ -3438,7 +3437,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
|
|||
|
||||
if (!bridge->isDead() && group && !group->isOcclusionState(LLSpatialGroup::OCCLUDED))
|
||||
{
|
||||
stateSort(bridge, camera, fov_changed);
|
||||
stateSort(bridge, camera);
|
||||
}
|
||||
|
||||
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD &&
|
||||
|
|
@ -3510,9 +3509,9 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
|
|||
|
||||
}
|
||||
|
||||
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed)
|
||||
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera)
|
||||
{
|
||||
if (bridge->getSpatialGroup()->changeLOD() || fov_changed)
|
||||
if (bridge->getSpatialGroup()->changeLOD())
|
||||
{
|
||||
bool force_update = false;
|
||||
bridge->updateDistance(camera, force_update);
|
||||
|
|
|
|||
|
|
@ -254,7 +254,7 @@ public:
|
|||
|
||||
void stateSort(LLCamera& camera, LLCullResult& result);
|
||||
void stateSort(LLSpatialGroup* group, LLCamera& camera);
|
||||
void stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed = FALSE);
|
||||
void stateSort(LLSpatialBridge* bridge, LLCamera& camera);
|
||||
void stateSort(LLDrawable* drawablep, LLCamera& camera);
|
||||
void postSort(LLCamera& camera);
|
||||
void forAllVisibleDrawables(void (*func)(LLDrawable*));
|
||||
|
|
|
|||
Loading…
Reference in New Issue