From 8a0cf5ca0f9e80002b0af012be0615fffbea40eb Mon Sep 17 00:00:00 2001 From: minerjr Date: Wed, 5 Mar 2025 09:49:12 -0400 Subject: [PATCH] Added storing the full Cos FOV for the camera Added storing the full Cos FOV for the camera --- indra/newview/llviewercamera.cpp | 8 ++++++++ indra/newview/llviewercamera.h | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp index 0df185e716..b995fccada 100644 --- a/indra/newview/llviewercamera.cpp +++ b/indra/newview/llviewercamera.cpp @@ -69,6 +69,7 @@ LLViewerCamera::LLViewerCamera() : LLCamera() mCameraFOVDefault = DEFAULT_FIELD_OF_VIEW; mPrevCameraFOVDefault = DEFAULT_FIELD_OF_VIEW; mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f); + mCosCameraFOV = cosf(mCameraFOVDefault); mPixelMeterRatio = 0.f; mScreenPixelArea = 0; mZoomFactor = 1.f; @@ -143,6 +144,10 @@ void LLViewerCamera::updateCameraLocation(const LLVector3 ¢er, const LLVecto mAverageSpeed = (F32)LLTrace::get_frame_recording().getPeriodMeanPerSec(sVelocityStat, 50); mAverageAngularSpeed = (F32)LLTrace::get_frame_recording().getPeriodMeanPerSec(sAngularVelocityStat); mCosHalfCameraFOV = cosf(0.5f * getView() * llmax(1.0f, getAspect())); + // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // Store the full Cos FOV value + mCosCameraFOV = cosf(getView() * llmax(1.0f, getAspect())); + // [FIRE-35081] // update pixel meter ratio using default fov, not modified one mPixelMeterRatio = (F32)(getViewHeightInPixels()/ (2.f*tanf(mCameraFOVDefault*0.5f))); @@ -822,6 +827,9 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads) setView(vertical_fov_rads); mCameraFOVDefault = vertical_fov_rads; mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f); + // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + mCosCameraFOV = cosf(mCameraFOVDefault); + // [FIRE-35081] } bool LLViewerCamera::isDefaultFOVChanged() diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h index b202f0812a..6fa3d3c6f2 100644 --- a/indra/newview/llviewercamera.h +++ b/indra/newview/llviewercamera.h @@ -81,6 +81,7 @@ public: static LLTrace::CountStatHandle<>* getVelocityStat() {return &sVelocityStat; } static LLTrace::CountStatHandle<>* getAngularVelocityStat() {return &sAngularVelocityStat; } F32 getCosHalfFov() {return mCosHalfCameraFOV;} + F32 getCosFov() {return mCosCameraFOV;} F32 getAverageSpeed() {return mAverageSpeed ;} F32 getAverageAngularSpeed() {return mAverageAngularSpeed;} @@ -120,6 +121,10 @@ protected: F32 mCameraFOVDefault; F32 mPrevCameraFOVDefault; F32 mCosHalfCameraFOV; + // [FIRE-35081] Blurry prims not changing with graphics settings, not happening with SL Viewer + // Store the Cos of the full FOV + F32 mCosCameraFOV; + // [FIRE-35081] LLVector3 mLastPointOfInterest; F32 mPixelMeterRatio; // Divide by distance from camera to get pixels per meter at that distance. S32 mScreenPixelArea; // Pixel area of entire window