diff options
| author | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2026-05-18 13:40:59 -0400 |
|---|---|---|
| committer | Jonathan "Geenz" Goodman <geenz@geenzo.com> | 2026-05-18 13:40:59 -0400 |
| commit | 1b1f59c1e21581c4c1968b9206b9d9c0dc8513a1 (patch) | |
| tree | e86d63fdd61d96a416a7e89cae30142291b8cbd8 /indra/newview/llviewercontrol.cpp | |
| parent | 97bcc7816d7084b4aaed67cdb90a5b7ae0ec1126 (diff) | |
Break out texture channel priorities.
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 3a6e4e2e2d..a4a7f1fd20 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -114,36 +114,42 @@ static bool handleRenderAvatarMouselookChanged(const LLSD& newvalue) static bool handleRenderTextureQualityChanged(const LLSD& newvalue) { - // 0=Low, 1=Medium, 2=High, 3=Ultra. Drives max-resolution and the - // per-channel TextureChannelPriority + TextureDistanceDiscardPower - // exponents. Channel order: X=normals, Y=diffuse, Z=spec, W=emissive. + // 0=Low, 1=Medium, 2=High, 3=Ultra. Drives RenderMaxTextureResolution, + // the four TextureChannel* exponents (Normal/BaseColor/Spec/Emissive), + // and TextureDistanceDiscardPower. U32 quality = (U32)newvalue.asInteger(); U32 max_res = 2048; - LLVector4 channel_priority(1.f, 0.75f, 0.5f, 0.75f); + F32 ch_normal = 1.0f; + F32 ch_basecolor = 0.75f; + F32 ch_specular = 0.5f; + F32 ch_emissive = 0.75f; F32 distance_power = 0.5f; switch (quality) { case 0: // Low max_res = 1024; - channel_priority.setVec(0.5f, 0.75f, 0.1f, 0.5f); + ch_normal = 0.5f; ch_basecolor = 0.75f; ch_specular = 0.1f; ch_emissive = 0.5f; distance_power = 0.15f; break; case 1: // Medium - channel_priority.setVec(0.75f, 0.75f, 0.3f, 0.75f); + ch_normal = 0.75f; ch_basecolor = 0.75f; ch_specular = 0.3f; ch_emissive = 0.75f; distance_power = 0.25f; break; case 2: // High - // channel defaults above (1, 0.75, 0.5, 0.75) + // channel defaults above distance_power = 0.35f; break; case 3: // Ultra default: - channel_priority.setVec(1.f, 1.f, 1.f, 1.f); + ch_normal = 1.f; ch_basecolor = 1.f; ch_specular = 1.f; ch_emissive = 1.f; distance_power = 0.5f; break; } gSavedSettings.setU32("RenderMaxTextureResolution", max_res); - gSavedSettings.setVector4("TextureChannelPriority", channel_priority); + gSavedSettings.setF32("TextureChannelNormal", ch_normal); + gSavedSettings.setF32("TextureChannelBaseColor", ch_basecolor); + gSavedSettings.setF32("TextureChannelSpecular", ch_specular); + gSavedSettings.setF32("TextureChannelEmissive", ch_emissive); gSavedSettings.setF32("TextureDistanceDiscardPower", distance_power); return true; } |
