8283/4 WIP
parent
d71d656ba4
commit
32631f09a5
|
|
@ -64,9 +64,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>2679e9960e5a1c14e8c6a4e8baf70040</string>
|
||||
<string>722693009586e18aa4d611218c26c5e3</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21515/158137/libatmosphere-1.0.0.100-darwin-517661.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/23969/184338/libatmosphere-1.0.0.100-darwin-519274.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin</string>
|
||||
|
|
@ -76,9 +76,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>3b509a8b85a05c53fa19f5f06f0e546b</string>
|
||||
<string>9ecdbb77a18a5dea905ebd3d7faf1f8f</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21514/158129/libatmosphere-1.0.0.100-darwin64-517661.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/23968/184333/libatmosphere-1.0.0.100-darwin64-519274.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>darwin64</string>
|
||||
|
|
@ -88,9 +88,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>b0f7b131d0a7d8d6a6404f27f2697872</string>
|
||||
<string>05e113c2988bf77dcde7df0216c26481</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21517/158147/libatmosphere-1.0.0.100-windows-517661.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/23971/184350/libatmosphere-1.0.0.100-windows-519274.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows</string>
|
||||
|
|
@ -100,9 +100,9 @@
|
|||
<key>archive</key>
|
||||
<map>
|
||||
<key>hash</key>
|
||||
<string>a50d05abaca0ae167640171ab814a3db</string>
|
||||
<string>1b5fcfbc0123263d68843ac4570c8204</string>
|
||||
<key>url</key>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/21516/158140/libatmosphere-1.0.0.100-windows64-517661.tar.bz2</string>
|
||||
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/ct2/23970/184345/libatmosphere-1.0.0.100-windows64-519274.tar.bz2</string>
|
||||
</map>
|
||||
<key>name</key>
|
||||
<string>windows64</string>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,8 @@
|
|||
#include "llfasttimer.h"
|
||||
#include "v3colorutil.h"
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
//=========================================================================
|
||||
static const F32 NIGHTTIME_ELEVATION = -8.0f; // degrees
|
||||
static const F32 NIGHTTIME_ELEVATION_SIN = (F32)sinf(NIGHTTIME_ELEVATION * DEG_TO_RAD);
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
#include "llshadermgr.h"
|
||||
#include "llglslshader.h"
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
LLAtmosphere* gAtmosphere = nullptr;
|
||||
|
||||
// Values from "Reference Solar Spectral Irradiance: ASTM G-173", ETR column
|
||||
|
|
@ -78,6 +80,8 @@ const double kMieScaleHeight = 1200.0;
|
|||
const double kMieAngstromAlpha = 0.0;
|
||||
const double kMieAngstromBeta = 5.328e-3;
|
||||
const double kMieSingleScatteringAlbedo = 0.9;
|
||||
const double kGroundAlbedo = 0.1;
|
||||
|
||||
const double max_sun_zenith_angle = F_PI * 2.0 / 3.0;
|
||||
|
||||
AtmosphericModelSettings::AtmosphericModelSettings()
|
||||
|
|
@ -201,7 +205,7 @@ LLAtmosphere::LLAtmosphere()
|
|||
m_mie_scattering.push_back(mie * kMieSingleScatteringAlbedo);
|
||||
m_mie_extinction.push_back(mie);
|
||||
m_absorption_extinction.push_back(kMaxOzoneNumberDensity * kOzoneCrossSection[(l - kLambdaMin) / 10]);
|
||||
m_ground_albedo.push_back(0.6f);
|
||||
m_ground_albedo.push_back(kGroundAlbedo);
|
||||
}
|
||||
|
||||
AtmosphericModelSettings defaults;
|
||||
|
|
@ -268,7 +272,7 @@ bool LLAtmosphere::configureAtmosphericModel(AtmosphericModelSettings& settings)
|
|||
m_ground_albedo,
|
||||
max_sun_zenith_angle,
|
||||
1000.0,
|
||||
15,
|
||||
3,
|
||||
false,
|
||||
true);
|
||||
|
||||
|
|
|
|||
|
|
@ -8664,7 +8664,7 @@
|
|||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderLocalLights</key>
|
||||
<map>
|
||||
|
|
@ -10165,7 +10165,7 @@
|
|||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>RenderUseTriStrips</key>
|
||||
<map>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @file advancedAtmoF.glsl
|
||||
* @file class3/skyF.glsl
|
||||
*
|
||||
* $LicenseInfo:firstyear=2005&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@
|
|||
#include "llenvironment.h"
|
||||
#include "llatmosphere.h"
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
static LLStaticHashedString sCamPosLocal("camPosLocal");
|
||||
static LLStaticHashedString sCustomAlpha("custom_alpha");
|
||||
|
||||
|
|
@ -180,12 +182,12 @@ void LLDrawPoolWLSky::renderSkyHazeDeferred(const LLVector3& camPosLocal, F32 ca
|
|||
|
||||
sky_shader->uniformMatrix4fv(LLShaderMgr::INVERSE_PROJECTION_MATRIX, 1, FALSE, inv_proj.m);
|
||||
|
||||
// clouds are rendered along with sky in adv atmo
|
||||
/* clouds are rendered along with sky in adv atmo
|
||||
if (gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_CLOUDS) && gSky.mVOSkyp->getCloudNoiseTex())
|
||||
{
|
||||
sky_shader->bindTexture(LLShaderMgr::CLOUD_NOISE_MAP, gSky.mVOSkyp->getCloudNoiseTex());
|
||||
sky_shader->bindTexture(LLShaderMgr::CLOUD_NOISE_MAP_NEXT, gSky.mVOSkyp->getCloudNoiseTexNext());
|
||||
}
|
||||
}*/
|
||||
|
||||
sky_shader->uniform3f(sCamPosLocal, camPosLocal.mV[0], camPosLocal.mV[1], camPosLocal.mV[2]);
|
||||
|
||||
|
|
|
|||
|
|
@ -1628,13 +1628,14 @@ void LLEnvironment::DayInstance::setSky(const LLSettingsSky::ptr_t &psky)
|
|||
mSky->mReplaced |= different_sky;
|
||||
mSky->update();
|
||||
mBlenderSky.reset();
|
||||
|
||||
/*
|
||||
if (gAtmosphere)
|
||||
{
|
||||
AtmosphericModelSettings settings;
|
||||
LLEnvironment::getAtmosphericModelSettings(settings, psky);
|
||||
gAtmosphere->configureAtmosphericModel(settings);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void LLEnvironment::DayInstance::setWater(const LLSettingsWater::ptr_t &pwater)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,10 @@
|
|||
#include "llcolorswatch.h"
|
||||
#include "llvirtualtrackball.h"
|
||||
#include "llsettingssky.h"
|
||||
#include "llenvironment.h"
|
||||
#include "llatmosphere.h"
|
||||
|
||||
#pragma optimize("", off)
|
||||
|
||||
namespace
|
||||
{
|
||||
|
|
@ -75,18 +79,20 @@ namespace
|
|||
const std::string FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE("rayleigh_exponential_scale");
|
||||
const std::string FIELD_SKY_DENSITY_RAYLEIGH_LINEAR("rayleigh_linear");
|
||||
const std::string FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT("rayleigh_constant");
|
||||
const std::string FIELD_SKY_DENSITY_RAYLEIGH_MAX_ALTITUDE("rayleigh_max_altitude");
|
||||
|
||||
const std::string FIELD_SKY_DENSITY_MIE_EXPONENTIAL("mie_exponential");
|
||||
const std::string FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE("mie_exponential_scale");
|
||||
const std::string FIELD_SKY_DENSITY_MIE_LINEAR("mie_linear");
|
||||
const std::string FIELD_SKY_DENSITY_MIE_CONSTANT("mie_constant");
|
||||
const std::string FIELD_SKY_DENSITY_MIE_ANISO("mie_aniso_factor");
|
||||
const std::string FIELD_SKY_DENSITY_MIE_MAX_ALTITUDE("mie_max_altitude");
|
||||
|
||||
const std::string FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL("absorption_exponential");
|
||||
const std::string FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE("absorption_exponential_scale");
|
||||
const std::string FIELD_SKY_DENSITY_ABSORPTION_LINEAR("absorption_linear");
|
||||
const std::string FIELD_SKY_DENSITY_ABSORPTION_CONSTANT("absorption_constant");
|
||||
const std::string FIELD_SKY_DENSITY_MAX_ALTITUDE("max_altitude");
|
||||
const std::string FIELD_SKY_DENSITY_ABSORPTION_MAX_ALTITUDE("absorption_max_altitude");
|
||||
|
||||
const F32 SLIDER_SCALE_SUN_AMBIENT(3.0f);
|
||||
const F32 SLIDER_SCALE_BLUE_HORIZON_DENSITY(2.0f);
|
||||
|
|
@ -520,19 +526,21 @@ BOOL LLPanelSettingsSkyDensityTab::postBuild()
|
|||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighExponentialScaleChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighLinearChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighConstantChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_MAX_ALTITUDE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onRayleighMaxAltitudeChanged(); });
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieExponentialChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieExponentialScaleChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieLinearChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieConstantChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieAnisoFactorChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_MAX_ALTITUDE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMieMaxAltitudeChanged(); });
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onAbsorptionExponentialChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onAbsorptionExponentialScaleChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onAbsorptionLinearChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onAbsorptionConstantChanged(); });
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMaxAltitudeChanged(); });
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_MAX_ALTITUDE)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onAbsorptionMaxAltitudeChanged(); });
|
||||
|
||||
refresh();
|
||||
return TRUE;
|
||||
|
|
@ -546,19 +554,20 @@ void LLPanelSettingsSkyDensityTab::setEnabled(BOOL enabled)
|
|||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_MAX_ALTITUDE)->setEnabled(enabled);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_MAX_ALTITUDE)->setEnabled(enabled);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->setEnabled(enabled);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setEnabled(enabled);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_MAX_ALTITUDE)->setEnabled(enabled);
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::refresh()
|
||||
|
|
@ -582,34 +591,39 @@ void LLPanelSettingsSkyDensityTab::refresh()
|
|||
F32 rayleigh_exponential_scale = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
|
||||
F32 rayleigh_linear_term = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
|
||||
F32 rayleigh_constant_term = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM].asReal();
|
||||
F32 rayleigh_max_alt = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH].asReal();
|
||||
|
||||
F32 mie_exponential_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
|
||||
F32 mie_exponential_scale = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
|
||||
F32 mie_linear_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
|
||||
F32 mie_constant_term = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_CONSTANT_TERM].asReal();
|
||||
F32 mie_aniso_factor = mie_config[LLSettingsSky::SETTING_MIE_ANISOTROPY_FACTOR].asReal();
|
||||
F32 mie_max_alt = mie_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH].asReal();
|
||||
|
||||
F32 absorption_exponential_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
|
||||
F32 absorption_exponential_scale = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_SCALE_FACTOR].asReal();
|
||||
F32 absorption_linear_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_LINEAR_TERM].asReal();
|
||||
F32 absorption_constant_term = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_EXP_TERM].asReal();
|
||||
F32 max_alt = rayleigh_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH].asReal();
|
||||
F32 absorption_max_alt = absorption_config[LLSettingsSky::SETTING_DENSITY_PROFILE_WIDTH].asReal();
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL)->setValue(rayleigh_exponential_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->setValue(rayleigh_exponential_scale);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->setValue(rayleigh_linear_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->setValue(rayleigh_constant_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_RAYLEIGH_MAX_ALTITUDE)->setValue(rayleigh_max_alt);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->setValue(mie_exponential_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->setValue(mie_exponential_scale);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->setValue(mie_linear_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->setValue(mie_constant_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->setValue(mie_aniso_factor);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MIE_MAX_ALTITUDE)->setValue(mie_max_alt);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->setValue(absorption_exponential_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->setValue(absorption_exponential_scale);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->setValue(absorption_linear_term);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->setValue(absorption_constant_term);
|
||||
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->setValue(max_alt);
|
||||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ABSORPTION_MAX_ALTITUDE)->setValue(absorption_max_alt);
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::updateProfile()
|
||||
|
|
@ -618,26 +632,47 @@ void LLPanelSettingsSkyDensityTab::updateProfile()
|
|||
F32 rayleigh_exponential_scale = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_EXPONENTIAL_SCALE)->getValueF32();
|
||||
F32 rayleigh_linear_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_LINEAR)->getValueF32();
|
||||
F32 rayleigh_constant_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_CONSTANT)->getValueF32();
|
||||
F32 rayleigh_max_alt = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_RAYLEIGH_MAX_ALTITUDE)->getValueF32();
|
||||
|
||||
F32 mie_exponential_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL)->getValueF32();
|
||||
F32 mie_exponential_scale = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_EXPONENTIAL_SCALE)->getValueF32();
|
||||
F32 mie_linear_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_LINEAR)->getValueF32();
|
||||
F32 mie_constant_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_CONSTANT)->getValueF32();
|
||||
F32 mie_aniso_factor = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_ANISO)->getValueF32();
|
||||
F32 mie_max_alt = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MIE_MAX_ALTITUDE)->getValueF32();
|
||||
|
||||
F32 absorption_exponential_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL)->getValueF32();
|
||||
F32 absorption_exponential_scale = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_ABSORPTION_EXPONENTIAL_SCALE)->getValueF32();
|
||||
F32 absorption_linear_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_ABSORPTION_LINEAR)->getValueF32();
|
||||
F32 absorption_constant_term = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_ABSORPTION_CONSTANT)->getValueF32();
|
||||
F32 max_alt = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_MAX_ALTITUDE)->getValueF32();
|
||||
F32 absorption_max_alt = getChild<LLSliderCtrl>(FIELD_SKY_DENSITY_ABSORPTION_MAX_ALTITUDE)->getValueF32();
|
||||
|
||||
LLSD rayleigh_config = LLSettingsSky::createSingleLayerDensityProfile(max_alt, rayleigh_exponential_term, rayleigh_exponential_scale, rayleigh_linear_term, rayleigh_constant_term);
|
||||
LLSD mie_config = LLSettingsSky::createSingleLayerDensityProfile(max_alt, mie_exponential_term, mie_exponential_scale, mie_linear_term, mie_constant_term, mie_aniso_factor);
|
||||
LLSD absorption_config = LLSettingsSky::createSingleLayerDensityProfile(max_alt, absorption_exponential_term, absorption_exponential_scale, absorption_linear_term, absorption_constant_term);
|
||||
LLSD rayleigh_config = LLSettingsSky::createSingleLayerDensityProfile(rayleigh_max_alt, rayleigh_exponential_term, rayleigh_exponential_scale, rayleigh_linear_term, rayleigh_constant_term);
|
||||
LLSD mie_config = LLSettingsSky::createSingleLayerDensityProfile(mie_max_alt, mie_exponential_term, mie_exponential_scale, mie_linear_term, mie_constant_term, mie_aniso_factor);
|
||||
LLSD absorption_layer = LLSettingsSky::createSingleLayerDensityProfile(absorption_max_alt, absorption_exponential_term, absorption_exponential_scale, absorption_linear_term, absorption_constant_term);
|
||||
|
||||
static LLSD absorption_layer_ozone = LLSettingsSky::createDensityProfileLayer(0.0f, 0.0f, 0.0f, -1.0f / 15000.0f, 8.0f / 3.0f);
|
||||
|
||||
LLSD absorption_config;
|
||||
absorption_config.append(absorption_layer);
|
||||
absorption_config.append(absorption_layer_ozone);
|
||||
|
||||
mSkySettings->setRayleighConfigs(rayleigh_config);
|
||||
mSkySettings->setMieConfigs(mie_config);
|
||||
mSkySettings->setAbsorptionConfigs(absorption_config);
|
||||
|
||||
mSkySettings->update();
|
||||
setIsDirty();
|
||||
|
||||
/*
|
||||
if (gAtmosphere)
|
||||
{
|
||||
AtmosphericModelSettings atmospheric_settings;
|
||||
LLEnvironment::getAtmosphericModelSettings(atmospheric_settings, mSkySettings);
|
||||
gAtmosphere->configureAtmosphericModel(atmospheric_settings);
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onRayleighExponentialChanged()
|
||||
|
|
@ -660,6 +695,11 @@ void LLPanelSettingsSkyDensityTab::onRayleighConstantChanged()
|
|||
updateProfile();
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onRayleighMaxAltitudeChanged()
|
||||
{
|
||||
updateProfile();
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onMieExponentialChanged()
|
||||
{
|
||||
updateProfile();
|
||||
|
|
@ -685,6 +725,11 @@ void LLPanelSettingsSkyDensityTab::onMieAnisoFactorChanged()
|
|||
updateProfile();
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onMieMaxAltitudeChanged()
|
||||
{
|
||||
updateProfile();
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onAbsorptionExponentialChanged()
|
||||
{
|
||||
updateProfile();
|
||||
|
|
@ -705,7 +750,7 @@ void LLPanelSettingsSkyDensityTab::onAbsorptionConstantChanged()
|
|||
updateProfile();
|
||||
}
|
||||
|
||||
void LLPanelSettingsSkyDensityTab::onMaxAltitudeChanged()
|
||||
void LLPanelSettingsSkyDensityTab::onAbsorptionMaxAltitudeChanged()
|
||||
{
|
||||
updateProfile();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,19 +144,20 @@ protected:
|
|||
void onRayleighExponentialScaleChanged();
|
||||
void onRayleighLinearChanged();
|
||||
void onRayleighConstantChanged();
|
||||
void onRayleighMaxAltitudeChanged();
|
||||
|
||||
void onMieExponentialChanged();
|
||||
void onMieExponentialScaleChanged();
|
||||
void onMieLinearChanged();
|
||||
void onMieConstantChanged();
|
||||
void onMieAnisoFactorChanged();
|
||||
void onMieMaxAltitudeChanged();
|
||||
|
||||
void onAbsorptionExponentialChanged();
|
||||
void onAbsorptionExponentialScaleChanged();
|
||||
void onAbsorptionLinearChanged();
|
||||
void onAbsorptionConstantChanged();
|
||||
|
||||
void onMaxAltitudeChanged();
|
||||
void onAbsorptionMaxAltitudeChanged();
|
||||
|
||||
// update the settings for our profile type
|
||||
void updateProfile();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="true"
|
||||
height="16">
|
||||
height="14">
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
max_val="1"
|
||||
name="rayleigh_exponential"
|
||||
label="Rayleigh Exponential Term:"
|
||||
top_pad="8"
|
||||
top_pad="12"
|
||||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
|
|
@ -81,6 +81,20 @@
|
|||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
increment="1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
min_val="1000"
|
||||
max_val="40000"
|
||||
name="rayleigh_max_altitude"
|
||||
label="Rayleigh Max Altitude:"
|
||||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
border="true"
|
||||
|
|
@ -88,7 +102,7 @@
|
|||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="true"
|
||||
height="18">
|
||||
height="16">
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
|
|
@ -101,7 +115,7 @@
|
|||
max_val="3.0"
|
||||
name="mie_exponential"
|
||||
label="Mie Exponential Term:"
|
||||
top_pad="8"
|
||||
top_pad="12"
|
||||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
|
|
@ -161,6 +175,20 @@
|
|||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
height="14"
|
||||
increment="1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
min_val="1000"
|
||||
max_val="30000"
|
||||
name="mie_max_altitude"
|
||||
label="Mie Max Altitude:"
|
||||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
border="true"
|
||||
|
|
@ -168,7 +196,7 @@
|
|||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="true"
|
||||
height="16">
|
||||
height="14">
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
|
|
@ -227,14 +255,6 @@
|
|||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
border="true"
|
||||
bevel_style="in"
|
||||
auto_resize="true"
|
||||
user_resize="true"
|
||||
visible="true"
|
||||
height="10">
|
||||
<slider
|
||||
decimal_digits="2"
|
||||
follows="left|top"
|
||||
|
|
@ -242,12 +262,10 @@
|
|||
increment="1"
|
||||
initial_value="0"
|
||||
layout="topleft"
|
||||
left_delta="5"
|
||||
min_val="1000"
|
||||
max_val="40000"
|
||||
name="max_altitude"
|
||||
label="Max Altitude:"
|
||||
top_pad="8"
|
||||
max_val="25000"
|
||||
name="absorption_max_altitude"
|
||||
label="Absorption Max Altitude:"
|
||||
width="400"
|
||||
label_width="160"
|
||||
can_edit_text="true"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue