Merge branch 'DRTVWR-559' of https://github.com/secondlife/viewer
# Conflicts: # doc/contributions.txt # indra/newview/app_settings/settings.xml # indra/newview/lldrawpoolalpha.cpp # indra/newview/llfilepicker.cpp # indra/newview/llpanelface.cpp # indra/newview/skins/default/xui/en/notifications.xmlmaster
commit
e85546fc3d
|
|
@ -1419,8 +1419,8 @@ Sovereign Engineer
|
|||
SL-18497
|
||||
SL-18525
|
||||
SL-18534
|
||||
SL-19336
|
||||
SL-19690
|
||||
SL-19336
|
||||
SpacedOut Frye
|
||||
VWR-34
|
||||
VWR-45
|
||||
|
|
|
|||
|
|
@ -1306,8 +1306,9 @@ void LLShaderMgr::initAttribsAndUniforms()
|
|||
mReservedUniforms.push_back("warmthAmount");
|
||||
mReservedUniforms.push_back("glowStrength");
|
||||
mReservedUniforms.push_back("glowDelta");
|
||||
mReservedUniforms.push_back("glowNoiseMap");
|
||||
|
||||
llassert(mReservedUniforms.size() == LLShaderMgr::GLOW_DELTA+1);
|
||||
llassert(mReservedUniforms.size() == LLShaderMgr::GLOW_NOISE_MAP+1);
|
||||
|
||||
|
||||
mReservedUniforms.push_back("minimum_alpha");
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@ public:
|
|||
GLOW_WARMTH_AMOUNT, // "warmthAmount"
|
||||
GLOW_STRENGTH, // "glowStrength"
|
||||
GLOW_DELTA, // "glowDelta"
|
||||
GLOW_NOISE_MAP, // "glowNoiseMap"
|
||||
|
||||
MINIMUM_ALPHA, // "minimum_alpha"
|
||||
EMISSIVE_BRIGHTNESS, // "emissive_brightness"
|
||||
|
|
|
|||
|
|
@ -12318,6 +12318,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderPostProcessingHDR</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enable HDR for post processing buffer</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderMaxOpenGLVersion</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -13234,6 +13245,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>9</integer>
|
||||
</map>
|
||||
<key>RenderGlowHDR</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enable HDR for glow map</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>RenderGlowStrength</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
@ -13282,6 +13304,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<real>1.3</real>
|
||||
</map>
|
||||
<key>RenderGlowNoise</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Enables glow noise (dithering). Reduces banding from glow in certain cases.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<real>1</real>
|
||||
</map>
|
||||
<key>DisableAllRenderTypes</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@
|
|||
out vec4 frag_color;
|
||||
|
||||
uniform sampler2D diffuseMap;
|
||||
#if HAS_NOISE
|
||||
uniform sampler2D glowNoiseMap;
|
||||
uniform vec2 screen_res;
|
||||
#endif
|
||||
uniform float minLuminance;
|
||||
uniform float maxExtractAlpha;
|
||||
uniform vec3 lumWeights;
|
||||
|
|
@ -44,7 +48,16 @@ void main()
|
|||
float lum = smoothstep(minLuminance, minLuminance+1.0, dot(col.rgb, lumWeights ) );
|
||||
float warmth = smoothstep(minLuminance, minLuminance+1.0, max(col.r * warmthWeights.r, max(col.g * warmthWeights.g, col.b * warmthWeights.b)) );
|
||||
|
||||
frag_color.rgb = col.rgb;
|
||||
#if HAS_NOISE
|
||||
float TRUE_NOISE_RES = 128; // See mTrueNoiseMap
|
||||
// *NOTE: Usually this is vary_fragcoord not vary_texcoord0, but glow extraction is in screen space
|
||||
vec3 glow_noise = texture(glowNoiseMap, vary_texcoord0.xy * (screen_res / TRUE_NOISE_RES)).xyz;
|
||||
// Dithering. Reduces banding effects in the reduced precision glow buffer.
|
||||
float NOISE_DEPTH = 64.0;
|
||||
col.rgb += glow_noise / NOISE_DEPTH;
|
||||
col.rgb = max(col.rgb, vec3(0));
|
||||
#endif
|
||||
frag_color.rgb = col.rgb;
|
||||
frag_color.a = max(col.a, mix(lum, warmth, warmthAmount) * maxExtractAlpha);
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,11 +214,11 @@ BOOL LLFilePicker::setupFilter(ELoadFilter filter)
|
|||
mOFN.lpstrFilter = ANIM_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
case FFLOAD_GLTF:
|
||||
mOFN.lpstrFilter = GLTF_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
case FFLOAD_COLLADA:
|
||||
case FFLOAD_GLTF:
|
||||
mOFN.lpstrFilter = GLTF_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
case FFLOAD_COLLADA:
|
||||
mOFN.lpstrFilter = COLLADA_FILTER \
|
||||
L"\0";
|
||||
break;
|
||||
|
|
@ -849,7 +849,6 @@ void set_nav_save_data(LLFilePicker::ESaveFilter filter, std::string &extension,
|
|||
creator = "\?\?\?\?";
|
||||
extension = "xaf";
|
||||
break;
|
||||
|
||||
case LLFilePicker::FFSAVE_GLTF:
|
||||
type = "\?\?\?\?";
|
||||
creator = "\?\?\?\?";
|
||||
|
|
|
|||
|
|
@ -475,6 +475,8 @@ void LLFloaterEditExtDayCycle::refresh()
|
|||
void LLFloaterEditExtDayCycle::setEditSettingsAndUpdate(const LLSettingsBase::ptr_t &settings)
|
||||
{
|
||||
setEditDayCycle(std::dynamic_pointer_cast<LLSettingsDay>(settings));
|
||||
|
||||
showHDRNotification(std::dynamic_pointer_cast<LLSettingsDay>(settings));
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::setEditDayCycle(const LLSettingsDay::ptr_t &pday)
|
||||
|
|
@ -1710,6 +1712,28 @@ void LLFloaterEditExtDayCycle::onPickerCommitSetting(LLUUID item_id, S32 track)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::showHDRNotification(const LLSettingsDay::ptr_t &pday)
|
||||
{
|
||||
for (U32 i = LLSettingsDay::TRACK_GROUND_LEVEL; i <= LLSettingsDay::TRACK_MAX; i++)
|
||||
{
|
||||
LLSettingsDay::CycleTrack_t &day_track = pday->getCycleTrack(i);
|
||||
|
||||
LLSettingsDay::CycleTrack_t::iterator iter = day_track.begin();
|
||||
LLSettingsDay::CycleTrack_t::iterator end = day_track.end();
|
||||
|
||||
while (iter != end)
|
||||
{
|
||||
LLSettingsSky::ptr_t sky = std::static_pointer_cast<LLSettingsSky>(iter->second);
|
||||
if (sky && sky->canAutoAdjust())
|
||||
{
|
||||
LLNotificationsUtil::add("AutoAdjustHDRSky");
|
||||
return;
|
||||
}
|
||||
iter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterEditExtDayCycle::onAssetLoadedForInsertion(LLUUID item_id, LLUUID asset_id, LLSettingsBase::ptr_t settings, S32 status, S32 source_track, S32 dest_track, LLSettingsBase::TrackPosition frame)
|
||||
{
|
||||
std::function<void()> cb = [this, settings, frame, source_track, dest_track]()
|
||||
|
|
|
|||
|
|
@ -188,6 +188,8 @@ private:
|
|||
bool isRemovingFrameAllowed();
|
||||
bool isAddingFrameAllowed();
|
||||
|
||||
void showHDRNotification(const LLSettingsDay::ptr_t &pday);
|
||||
|
||||
LLSettingsDay::ptr_t mEditDay; // edited copy
|
||||
LLSettingsDay::Seconds mDayLength;
|
||||
U32 mCurrentTrack;
|
||||
|
|
|
|||
|
|
@ -1327,9 +1327,7 @@ void LLMaterialEditor::createInventoryItem(const std::string &buffer, const std:
|
|||
[](LLUUID item_id, LLUUID new_asset_id, LLUUID new_item_id, LLSD response)
|
||||
{
|
||||
// done callback
|
||||
LL_INFOS("Material") << "inventory item uploaded. item: " << item_id << " asset: " << new_asset_id << " new_item_id: " << new_item_id << " response: " << response << LL_ENDL;
|
||||
LLSD params = llsd::map("ASSET_ID", new_asset_id);
|
||||
LLNotificationsUtil::add("MaterialCreated", params);
|
||||
LL_INFOS("Material") << "inventory item uploaded. item: " << item_id << " new_item_id: " << new_item_id << " response: " << response << LL_ENDL;
|
||||
},
|
||||
nullptr // failure callback, floater already closed
|
||||
);
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ void LLPanelSettingsSkyAtmosTab::refresh()
|
|||
getChild<LLUICtrl>(FIELD_SKY_DENSITY_ICE_LEVEL)->setValue(ice_level);
|
||||
getChild<LLUICtrl>(FIELD_REFLECTION_PROBE_AMBIANCE)->setValue(rp_ambiance);
|
||||
|
||||
updateGammaLabel();
|
||||
updateGammaLabel(should_auto_adjust);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
|
|
@ -335,10 +335,10 @@ void LLPanelSettingsSkyAtmosTab::onReflectionProbeAmbianceChanged()
|
|||
}
|
||||
|
||||
|
||||
void LLPanelSettingsSkyAtmosTab::updateGammaLabel()
|
||||
void LLPanelSettingsSkyAtmosTab::updateGammaLabel(bool auto_adjust)
|
||||
{
|
||||
if (!mSkySettings) return;
|
||||
F32 ambiance = mSkySettings->getReflectionProbeAmbiance();
|
||||
F32 ambiance = mSkySettings->getReflectionProbeAmbiance(auto_adjust);
|
||||
if (ambiance != 0.f)
|
||||
{
|
||||
childSetValue("scene_gamma_label", getString("hdr_string"));
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ private:
|
|||
void onDropletRadiusChanged();
|
||||
void onIceLevelChanged();
|
||||
void onReflectionProbeAmbianceChanged();
|
||||
void updateGammaLabel();
|
||||
void updateGammaLabel(bool auto_adjust = false);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1146,7 +1146,7 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
|
|||
|
||||
mComboMatMedia->setEnabled(editable);
|
||||
|
||||
//LLRadioGroup* radio_mat_type = getChild<LLRadioGroup>("radio_material_type");
|
||||
//LLRadioGroup* radio_mat_type = getChild<LLRadioGroup>("radio_material_type");
|
||||
if (mRadioMatType->getSelectedIndex() < MATTYPE_DIFFUSE)
|
||||
{
|
||||
mRadioMatType->selectNthItem(MATTYPE_DIFFUSE);
|
||||
|
|
@ -1170,7 +1170,7 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
|
|||
// *NOTE: The "identical" variable is currently only used to decide if
|
||||
// the texgen control should be tentative - this is not used by GLTF
|
||||
// materials. -Cosmic;2022-11-09
|
||||
bool identical = true; // true because it is anded below
|
||||
bool identical = true; // true because it is anded below
|
||||
bool identical_diffuse = false;
|
||||
bool identical_norm = false;
|
||||
bool identical_spec = false;
|
||||
|
|
|
|||
|
|
@ -1105,12 +1105,16 @@ void LLToolDragAndDrop::dropMaterialOneFace(LLViewerObject* hit_obj,
|
|||
LL_WARNS() << "LLToolDragAndDrop::dropTextureOneFace no material item." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
// SL-20013 must save asset_id before handleDropMaterialProtections since our item instance
|
||||
// may be deleted if it is moved into task inventory
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
BOOL success = handleDropMaterialProtections(hit_obj, item, source, src_id);
|
||||
if (!success)
|
||||
{
|
||||
return;
|
||||
}
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
|
||||
if (asset_id.isNull())
|
||||
{
|
||||
// use blank material
|
||||
|
|
@ -1136,13 +1140,17 @@ void LLToolDragAndDrop::dropMaterialAllFaces(LLViewerObject* hit_obj,
|
|||
LL_WARNS() << "LLToolDragAndDrop::dropTextureAllFaces no material item." << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
// SL-20013 must save asset_id before handleDropMaterialProtections since our item instance
|
||||
// may be deleted if it is moved into task inventory
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
BOOL success = handleDropMaterialProtections(hit_obj, item, source, src_id);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LLUUID asset_id = item->getAssetUUID();
|
||||
if (asset_id.isNull())
|
||||
{
|
||||
// use blank material
|
||||
|
|
|
|||
|
|
@ -1148,6 +1148,7 @@ void settings_setup_listeners()
|
|||
setting_setup_signal_listener(gSavedSettings, "RenderUIBuffer", handleWindowResized);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderDepthOfField", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderFSAASamples", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderPostProcessingHDR", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderSpecularResX", handleLUTBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderSpecularResY", handleLUTBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderSpecularExponent", handleLUTBufferChanged);
|
||||
|
|
@ -1156,6 +1157,8 @@ void settings_setup_listeners()
|
|||
setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleSetShaderChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderGlowResolutionPow", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderGlowHDR", handleReleaseGLBufferChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderGlowNoise", handleSetShaderChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderGammaFull", handleSetShaderChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderVolumeLODFactor", handleVolumeLODChanged);
|
||||
setting_setup_signal_listener(gSavedSettings, "RenderAvatarLODFactor", handleAvatarLODChanged);
|
||||
|
|
|
|||
|
|
@ -1695,7 +1695,7 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam
|
|||
LLFloaterReg::showInstance("preview_sound", LLSD(obj_id), take_focus);
|
||||
break;
|
||||
case LLAssetType::AT_MATERIAL:
|
||||
LLFloaterReg::showInstance("material editor", LLSD(obj_id), take_focus);
|
||||
LLFloaterReg::showInstance("material_editor", LLSD(obj_id), take_focus);
|
||||
break;
|
||||
default:
|
||||
LL_DEBUGS("Messaging") << "No preview method for previewable asset type : " << LLAssetType::lookupHumanReadable(asset_type) << LL_ENDL;
|
||||
|
|
|
|||
|
|
@ -900,11 +900,20 @@ BOOL LLViewerShaderMgr::loadShadersEffects()
|
|||
|
||||
if (success)
|
||||
{
|
||||
gGlowExtractProgram.mName = "Glow Extract Shader (Post)";
|
||||
const bool use_glow_noise = gSavedSettings.getBOOL("RenderGlowNoise");
|
||||
const std::string glow_noise_label = use_glow_noise ? " (+Noise)" : "";
|
||||
|
||||
gGlowExtractProgram.mName = llformat("Glow Extract Shader (Post)%s", glow_noise_label.c_str());
|
||||
gGlowExtractProgram.mShaderFiles.clear();
|
||||
gGlowExtractProgram.mShaderFiles.push_back(make_pair("effects/glowExtractV.glsl", GL_VERTEX_SHADER));
|
||||
gGlowExtractProgram.mShaderFiles.push_back(make_pair("effects/glowExtractF.glsl", GL_FRAGMENT_SHADER));
|
||||
gGlowExtractProgram.mShaderLevel = mShaderLevel[SHADER_EFFECT];
|
||||
|
||||
if (use_glow_noise)
|
||||
{
|
||||
gGlowExtractProgram.addPermutation("HAS_NOISE", "1");
|
||||
}
|
||||
|
||||
success = gGlowExtractProgram.createShader(NULL, NULL);
|
||||
if (!success)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1213,6 +1213,8 @@ void LLVOCache::initCache(ELLPath location, U32 size, U32 cache_version)
|
|||
|
||||
readCacheHeader();
|
||||
|
||||
LL_INFOS() << "Viewer Object Cache Versions - expected: " << cache_version << " found: " << mMetaInfo.mVersion << LL_ENDL;
|
||||
|
||||
if( mMetaInfo.mVersion != cache_version
|
||||
|| mMetaInfo.mAddressSize != expected_address)
|
||||
{
|
||||
|
|
@ -1223,7 +1225,8 @@ void LLVOCache::initCache(ELLPath location, U32 size, U32 cache_version)
|
|||
clearCacheInMemory();
|
||||
}
|
||||
else //delete the current cache if the format does not match.
|
||||
{
|
||||
{
|
||||
LL_INFOS() << "Viewer Object Cache Versions unmatched. clearing cache." << LL_ENDL;
|
||||
removeCache();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,6 +168,7 @@ S32 LLPipeline::RenderGlowResolutionPow;
|
|||
S32 LLPipeline::RenderGlowIterations;
|
||||
F32 LLPipeline::RenderGlowWidth;
|
||||
F32 LLPipeline::RenderGlowStrength;
|
||||
bool LLPipeline::RenderGlowNoise;
|
||||
bool LLPipeline::RenderDepthOfField;
|
||||
bool LLPipeline::RenderDepthOfFieldInEditMode;
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
|
|
@ -556,6 +557,7 @@ void LLPipeline::init()
|
|||
connectRefreshCachedSettingsSafe("RenderGlowIterations");
|
||||
connectRefreshCachedSettingsSafe("RenderGlowWidth");
|
||||
connectRefreshCachedSettingsSafe("RenderGlowStrength");
|
||||
connectRefreshCachedSettingsSafe("RenderGlowNoise");
|
||||
connectRefreshCachedSettingsSafe("RenderDepthOfField");
|
||||
connectRefreshCachedSettingsSafe("RenderDepthOfFieldInEditMode");
|
||||
connectRefreshCachedSettingsSafe("CameraFocusTransitionTime");
|
||||
|
|
@ -925,7 +927,9 @@ bool LLPipeline::allocateScreenBuffer(U32 resX, U32 resY, U32 samples)
|
|||
mSceneMap.allocate(resX, resY, GL_RGB, true);
|
||||
}
|
||||
|
||||
mPostMap.allocate(resX, resY, GL_RGBA);
|
||||
const bool post_hdr = gSavedSettings.getBOOL("RenderPostProcessingHDR");
|
||||
const U32 post_color_fmt = post_hdr ? GL_RGBA16F : GL_RGBA;
|
||||
mPostMap.allocate(resX, resY, post_color_fmt);
|
||||
|
||||
//HACK make screenbuffer allocations start failing after 30 seconds
|
||||
if (gSavedSettings.getBOOL("SimulateFBOFailure"))
|
||||
|
|
@ -1098,6 +1102,7 @@ void LLPipeline::refreshCachedSettings()
|
|||
RenderGlowIterations = gSavedSettings.getS32("RenderGlowIterations");
|
||||
RenderGlowWidth = gSavedSettings.getF32("RenderGlowWidth");
|
||||
RenderGlowStrength = gSavedSettings.getF32("RenderGlowStrength");
|
||||
RenderGlowNoise = gSavedSettings.getBOOL("RenderGlowNoise");
|
||||
RenderDepthOfField = gSavedSettings.getBOOL("RenderDepthOfField");
|
||||
RenderDepthOfFieldInEditMode = gSavedSettings.getBOOL("RenderDepthOfFieldInEditMode");
|
||||
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
|
||||
|
|
@ -1268,9 +1273,11 @@ void LLPipeline::createGLBuffers()
|
|||
|
||||
// allocate screen space glow buffers
|
||||
const U32 glow_res = llmax(1, llmin(512, 1 << gSavedSettings.getS32("RenderGlowResolutionPow")));
|
||||
const bool glow_hdr = gSavedSettings.getBOOL("RenderGlowHDR");
|
||||
const U32 glow_color_fmt = glow_hdr ? GL_RGBA16F : GL_RGBA;
|
||||
for (U32 i = 0; i < 3; i++)
|
||||
{
|
||||
mGlow[i].allocate(512, glow_res, GL_RGBA);
|
||||
mGlow[i].allocate(512, glow_res, glow_color_fmt);
|
||||
}
|
||||
|
||||
allocateScreenBuffer(resX, resY);
|
||||
|
|
@ -7030,6 +7037,19 @@ void LLPipeline::generateGlow(LLRenderTarget* src)
|
|||
warmthWeights.mV[2]);
|
||||
gGlowExtractProgram.uniform1f(LLShaderMgr::GLOW_WARMTH_AMOUNT, warmthAmount);
|
||||
|
||||
if (RenderGlowNoise)
|
||||
{
|
||||
S32 channel = gGlowExtractProgram.enableTexture(LLShaderMgr::GLOW_NOISE_MAP);
|
||||
if (channel > -1)
|
||||
{
|
||||
gGL.getTexUnit(channel)->bindManual(LLTexUnit::TT_TEXTURE, mTrueNoiseMap);
|
||||
gGL.getTexUnit(channel)->setTextureFilteringOption(LLTexUnit::TFO_POINT);
|
||||
}
|
||||
gGlowExtractProgram.uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES,
|
||||
mGlow[2].getWidth(),
|
||||
mGlow[2].getHeight());
|
||||
}
|
||||
|
||||
{
|
||||
LLGLEnable blend_on(GL_BLEND);
|
||||
|
||||
|
|
|
|||
|
|
@ -1022,6 +1022,7 @@ public:
|
|||
static S32 RenderGlowIterations;
|
||||
static F32 RenderGlowWidth;
|
||||
static F32 RenderGlowStrength;
|
||||
static bool RenderGlowNoise;
|
||||
static bool RenderDepthOfField;
|
||||
static bool RenderDepthOfFieldInEditMode;
|
||||
// <FS:Beq> FIRE-16728
|
||||
|
|
|
|||
|
|
@ -4945,9 +4945,6 @@ Falls Sie dieses Objekt sehen möchten, nehmen Sie es ab und hängen es an einem
|
|||
<usetemplate ignoretext="Warnen, falls geriggtes Mesh an einem HUD-Punkt angehängt ist." name="okignore" yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification name="MaterialCreated">
|
||||
Material erfolggreich erstellt. Asset ID: [ASSET_ID]
|
||||
</notification>
|
||||
<notification name="ReflectionProbeApplied">
|
||||
WARNUNG: Sie haben aus Ihrem Objekt einen Reflexionstest erzeugt. Dieser verändert implizit das Objekt, um dessen Einflusskörper nachzuahmen. Diese Änderungen sind nicht umkehrbar. Möchten Sie fortfahren?
|
||||
<usetemplate ignoretext="Hinweis zum Reflexionstest" name="okcancelignore" yestext="OK" notext="Abbrechen"/>
|
||||
|
|
|
|||
|
|
@ -14030,13 +14030,6 @@ If you want to see this object, remove it and re-attach it to an avatar attachme
|
|||
yestext="OK"/>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="MaterialCreated"
|
||||
type="notifytip">
|
||||
Material successfully created. Asset ID: [ASSET_ID]
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
icon="notifytip.tga"
|
||||
name="ReflectionProbeApplied"
|
||||
|
|
|
|||
Loading…
Reference in New Issue