settings update and launcher option

macos-builds-only-for-openmw
glassmancody.info 3 years ago
parent 40b6bbbdf3
commit 4461366761

@ -78,6 +78,7 @@
Feature #6017: Separate persistent and temporary cell references when saving
Feature #6032: Reverse-z depth buffer
Feature #6078: First person should not clear depth buffer
Feature #6128: Soft Particles
Feature #6161: Refactor Sky to use shaders and GLES/GL3 friendly
Feature #6162: Refactor GUI to use shaders and to be GLES and GL3+ friendly
Feature #6199: Support FBO Rendering

@ -117,6 +117,7 @@ bool Launcher::AdvancedPage::loadSettings()
loadSettingBool(autoUseTerrainSpecularMapsCheckBox, "auto use terrain specular maps", "Shaders");
loadSettingBool(bumpMapLocalLightingCheckBox, "apply lighting to environment maps", "Shaders");
loadSettingBool(radialFogCheckBox, "radial fog", "Shaders");
loadSettingBool(softParticlesCheckBox, "soft particles", "Shaders");
loadSettingBool(magicItemAnimationsCheckBox, "use magic item animations", "Game");
connect(animSourcesCheckBox, SIGNAL(toggled(bool)), this, SLOT(slotAnimSourcesToggled(bool)));
loadSettingBool(animSourcesCheckBox, "use additional anim sources", "Game");
@ -270,6 +271,7 @@ void Launcher::AdvancedPage::saveSettings()
saveSettingBool(autoUseTerrainSpecularMapsCheckBox, "auto use terrain specular maps", "Shaders");
saveSettingBool(bumpMapLocalLightingCheckBox, "apply lighting to environment maps", "Shaders");
saveSettingBool(radialFogCheckBox, "radial fog", "Shaders");
saveSettingBool(softParticlesCheckBox, "soft particles", "Shaders");
saveSettingBool(magicItemAnimationsCheckBox, "use magic item animations", "Game");
saveSettingBool(animSourcesCheckBox, "use additional anim sources", "Game");
saveSettingBool(weaponSheathingCheckBox, "weapon sheathing", "Game");

@ -557,19 +557,26 @@ namespace Shader
updateAddedState(*writableUserData, addedState);
}
if (auto partsys = dynamic_cast<osgParticle::ParticleSystem*>(&node))
bool softParticles = false;
if (mOpaqueDepthTex)
{
defineMap["softParticles"] = "1";
auto depth = SceneUtil::createDepth();
depth->setWriteMask(false);
writableStateSet->setAttributeAndModes(depth, osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
writableStateSet->addUniform(new osg::Uniform("particleSize", partsys->getDefaultParticleTemplate().getSizeRange().maximum));
writableStateSet->addUniform(new osg::Uniform("opaqueDepthTex", 2));
writableStateSet->setTextureAttributeAndModes(2, mOpaqueDepthTex, osg::StateAttribute::ON);
auto partsys = dynamic_cast<osgParticle::ParticleSystem*>(&node);
if (partsys)
{
softParticles = true;
auto depth = SceneUtil::createDepth();
depth->setWriteMask(false);
writableStateSet->setAttributeAndModes(depth, osg::StateAttribute::ON|osg::StateAttribute::OVERRIDE);
writableStateSet->addUniform(new osg::Uniform("particleSize", partsys->getDefaultParticleTemplate().getSizeRange().maximum));
writableStateSet->addUniform(new osg::Uniform("opaqueDepthTex", 2));
writableStateSet->setTextureAttributeAndModes(2, mOpaqueDepthTex, osg::StateAttribute::ON);
}
}
else
defineMap["softParticles"] = "0";
defineMap["softParticles"] = softParticles ? "1" : "0";
std::string shaderPrefix;
if (!node.getUserValue("shaderPrefix", shaderPrefix))

@ -241,7 +241,7 @@ lighting` is on.
This setting has no effect if :ref:`lighting method` is 'legacy'.
minimum interior brightness
------------------------
---------------------------
:Type: float
:Range: 0.0-1.0
@ -260,7 +260,7 @@ aforementioned changes in visuals.
This setting has no effect if :ref:`lighting method` is 'legacy'.
antialias alpha test
---------------------------------------
--------------------
:Type: boolean
:Range: True/False
@ -271,14 +271,14 @@ This allows MSAA to work with alpha-tested meshes, producing better-looking edge
When MSAA is off, this setting will have no visible effect, but might have a performance cost.
soft particles
------------------------
--------------
:Type: boolean
:Range: True/False
:Default: False
Enables soft particles for almost all particle effects, excluding precipitation.
This technique softens the intersection between individual particles and other
opaque geometry by blending between them. Note, this relies on overriding
specific properties of particle systems that potentially differ from the source
content, this setting may change the look of some particle systems.
Enables soft particles for particle effects. This technique softens the
intersection between individual particles and other opaque geometry by blending
between them. Note, this relies on overriding specific properties of particle
systems that potentially differ from the source content, this setting may change
the look of some particle systems.

@ -494,7 +494,8 @@ minimum interior brightness = 0.08
# When MSAA is off, this setting will have no visible effect, but might have a performance cost.
antialias alpha test = false
soft particles = true
# Soften intersection of blended particle systems with opaque geometry
soft particles = false
[Input]

@ -444,6 +444,16 @@
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="softParticlesCheckBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Enables soft particles for particle effects. This technique softens the intersection between individual particles and other opaque geometry by blending between them.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Soft Particles</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>

Loading…
Cancel
Save