Ansariel 2025-02-26 09:48:32 +01:00
commit 645c76be61
81 changed files with 4730 additions and 1720 deletions

View File

@ -345,6 +345,20 @@ void LLTextEditor::setText(const LLStringExplicit &utf8str, const LLStyle::Param
resetDirty();
}
// <AS:Chanayane> Preview button
void LLTextEditor::reparseText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params)
{
mParseOnTheFly = false;
LLTextBase::setText(utf8str, input_params);
mParseOnTheFly = true;
}
void LLTextEditor::reparseValue(const LLSD& value)
{
reparseText(value.asString());
}
// </AS:Chanayane>
// [SL:KB] - Patch: UI-FloaterSearchReplace | Checked: 2013-12-30 (Catznip-3.6)
std::string LLTextEditor::getSelectionString() const
{

View File

@ -187,6 +187,11 @@ public:
// Non-undoable
void setText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params = LLStyle::Params());
// <AS:Chanayane> Preview button
void reparseText(const LLStringExplicit &utf8str, const LLStyle::Params& input_params = LLStyle::Params());
void reparseValue(const LLSD& value);
// </AS:Chanayane>
// Removes text from the end of document
// Does not change highlight or cursor position.

View File

@ -1629,7 +1629,7 @@ void AOEngine::update()
}
else if (state_params[num].substr(0, 2) == "CT")
{
LLStringUtil::convertToS32(state_params[num].substr(2, state_params[num].size() - 2), state->mCycleTime);
LLStringUtil::convertToF32(state_params[num].substr(2, state_params[num].size() - 2), state->mCycleTime);
LL_DEBUGS("AOEngine") << "Cycle Time specified:" << state->mCycleTime << LL_ENDL;
}
else
@ -1828,12 +1828,9 @@ bool AOEngine::renameSet(AOSet* set, const std::string& name)
void AOEngine::saveState(const AOSet::AOState* state)
{
std::string stateParams = state->mName;
F32 time = (F32)state->mCycleTime;
if (time > 0.0f)
if (state->mCycleTime > 0.0f)
{
std::ostringstream timeStr;
timeStr << ":CT" << state->mCycleTime;
stateParams += timeStr.str();
stateParams += llformat(":CT%.2f", state->mCycleTime);
}
if (state->mCycle)
{
@ -2041,7 +2038,7 @@ void AOEngine::setRandomize(AOSet::AOState* state, bool randomize)
void AOEngine::setCycleTime(AOSet::AOState* state, F32 time)
{
state->mCycleTime = (S32)time;
state->mCycleTime = time;
state->mDirty = true;
}

View File

@ -85,7 +85,7 @@ class AOSet
LLUUID mRemapID;
bool mCycle;
bool mRandom;
S32 mCycleTime;
F32 mCycleTime;
std::vector<AOAnimation> mAnimations;
U32 mCurrentAnimation;
LLUUID mCurrentAnimationID;

View File

@ -11572,6 +11572,17 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSFocusPointRender</key>
<map>
<key>Comment</key>
<string>Draw a small crosshair where the DoF focus is</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>CameraDoFResScale</key>
<map>
@ -21733,7 +21744,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>CefVerboseLog</key>
<map>
<key>Comment</key>
<string>Enable/disable CEF verbose loggingk</string>
<string>Enable/disable CEF verbose logging</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>

View File

@ -1,174 +0,0 @@
/**
*
* Copyright (c) 2018-2020, Kitty Barnett
*
* The source code in this file is provided to you under the terms of the
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
*
* By copying, modifying or distributing this software, you acknowledge that
* you have read and understood your obligations described above, and agree to
* abide by those obligations.
*
*/
#extension GL_ARB_texture_rectangle : enable
/*[EXTRA_CODE_HERE]*/
out vec4 frag_color;
in vec2 vary_fragcoord;
uniform sampler2DRect diffuseRect;
uniform sampler2DRect depthMap;
uniform mat4 inv_proj;
uniform vec2 screen_res;
uniform int rlvEffectMode; // ESphereMode
uniform vec4 rlvEffectParam1; // Sphere origin (in local coordinates)
uniform vec4 rlvEffectParam2; // Min/max dist + min/max value
uniform bvec2 rlvEffectParam3; // Min/max dist extend
uniform vec4 rlvEffectParam4; // Sphere params (=color when using blend)
uniform vec2 rlvEffectParam5; // Blur direction (not used for blend)
#define SPHERE_ORIGIN rlvEffectParam1.xyz
#define SPHERE_DISTMIN rlvEffectParam2.y
#define SPHERE_DISTMAX rlvEffectParam2.w
#define SPHERE_DISTEXTEND rlvEffectParam3
#define SPHERE_VALUEMIN rlvEffectParam2.x
#define SPHERE_VALUEMAX rlvEffectParam2.z
#define SPHERE_PARAMS rlvEffectParam4
#define BLUR_DIRECTION rlvEffectParam5.xy
vec4 getPosition_d(vec2 pos_screen, float depth)
{
vec2 sc = pos_screen.xy * 2.0;
sc /= screen_res;
sc -= vec2(1.0, 1.0);
vec4 ndc = vec4(sc.x, sc.y, 2.0 * depth - 1.0, 1.0);
vec4 pos = inv_proj * ndc;
pos /= pos.w;
pos.w = 1.0;
return pos;
}
vec3 blur13(sampler2DRect source, vec2 tc, vec2 direction)
{
vec4 color = vec4(0.0);
vec2 off1 = vec2(1.411764705882353) * direction;
vec2 off2 = vec2(3.2941176470588234) * direction;
vec2 off3 = vec2(5.176470588235294) * direction;
color += texture2DRect(source, tc) * 0.1964825501511404;
color += texture2DRect(source, tc + off1) * 0.2969069646728344;
color += texture2DRect(source, tc - off1) * 0.2969069646728344;
color += texture2DRect(source, tc + off2) * 0.09447039785044732;
color += texture2DRect(source, tc - off2) * 0.09447039785044732;
color += texture2DRect(source, tc + off3) * 0.010381362401148057;
color += texture2DRect(source, tc - off3) * 0.010381362401148057;
return color.xyz;
}
const float pi = 3.14159265;
// http://callumhay.blogspot.com/2010/09/gaussian-blur-shader-glsl.html
vec3 blurVariable(sampler2DRect source, vec2 tc, float kernelSize, vec2 direction, float strength) {
float numBlurPixelsPerSide = float(kernelSize / 2);
// Incremental Gaussian Coefficent Calculation (See GPU Gems 3 pp. 877 - 889)
vec3 incrementalGaussian;
incrementalGaussian.x = 1.0 / (sqrt(2.0 * pi) * strength);
incrementalGaussian.y = exp(-0.5 / (strength * strength));
incrementalGaussian.z = incrementalGaussian.y * incrementalGaussian.y;
vec4 avgValue = vec4(0.0, 0.0, 0.0, 0.0);
float coefficientSum = 0.0;
// Take the central sample first...
avgValue += texture2DRect(source, tc) * incrementalGaussian.x;
coefficientSum += incrementalGaussian.x;
incrementalGaussian.xy *= incrementalGaussian.yz;
// Go through the remaining 8 vertical samples (4 on each side of the center)
for (float i = 1.0; i <= numBlurPixelsPerSide; i++) {
avgValue += texture2DRect(source, tc - i * direction) * incrementalGaussian.x;
avgValue += texture2DRect(source, tc + i * direction) * incrementalGaussian.x;
coefficientSum += 2.0 * incrementalGaussian.x;
incrementalGaussian.xy *= incrementalGaussian.yz;
}
return (avgValue / coefficientSum).rgb;
}
vec3 chromaticAberration(sampler2DRect source, vec2 tc, vec2 redDrift, vec2 blueDrift, float strength)
{
vec3 sourceColor = texture2DRect(source, tc).rgb;
// Sample the color components
vec3 driftColor;
driftColor.r = texture2DRect(source, tc + redDrift).r;
driftColor.g = sourceColor.g;
driftColor.b = texture2DRect(source, tc + blueDrift).b;
// Adjust the strength of the effect
return mix(sourceColor, driftColor, strength);
}
void main()
{
vec2 fragTC = vary_fragcoord.st;
float fragDepth = texture2DRect(depthMap, fragTC).x;
vec3 fragPosLocal = getPosition_d(fragTC, fragDepth).xyz;
float distance = length(fragPosLocal.xyz - SPHERE_ORIGIN);
// Linear non-branching interpolation of the strength of the sphere effect (replaces if/elseif/else for x < min, min <= x <= max and x > max)
float effectStrength = SPHERE_VALUEMIN + mix(0.0, SPHERE_VALUEMAX - SPHERE_VALUEMIN, (distance - SPHERE_DISTMIN) / (SPHERE_DISTMAX - SPHERE_DISTMIN));
if (distance < SPHERE_DISTMIN)
{
effectStrength = SPHERE_DISTEXTEND.x ? SPHERE_VALUEMIN : 0.0;
}
else if (distance > SPHERE_DISTMAX)
{
effectStrength = SPHERE_DISTEXTEND.y ? SPHERE_VALUEMAX : 0.0;
}
vec3 fragColor;
if (rlvEffectMode == 0) // Blend
{
fragColor = texture2DRect(diffuseRect, fragTC).rgb;
fragColor = mix(fragColor, SPHERE_PARAMS.rgb, effectStrength);
}
else if (rlvEffectMode == 1) // Blur (fixed)
{
fragColor = blur13(diffuseRect, fragTC, effectStrength * BLUR_DIRECTION);
}
else if (rlvEffectMode == 2) // Blur (variable)
{
fragColor = texture2DRect(diffuseRect, fragTC).rgb;
if (effectStrength > 0)
{
fragColor = blurVariable(diffuseRect, fragTC, SPHERE_PARAMS.x, BLUR_DIRECTION, effectStrength);
}
}
else if (rlvEffectMode == 3) // ChromaticAberration
{
fragColor = chromaticAberration(diffuseRect, fragTC, SPHERE_PARAMS.xy, SPHERE_PARAMS.zw, effectStrength);
}
else if (rlvEffectMode == 4) // Pixelate
{
effectStrength = sign(effectStrength);
float pixelWidth = max(1, floor(SPHERE_PARAMS.x * effectStrength)); float pixelHeight = max(1, floor(SPHERE_PARAMS.y * effectStrength));
fragTC = vec2(pixelWidth * floor(fragTC.x / pixelWidth), pixelHeight * floor(fragTC.y / pixelHeight));
fragColor = texture2DRect(diffuseRect, fragTC).rgb;
}
frag_color.rgb = fragColor;
frag_color.a = 0.0;
}

View File

@ -1192,6 +1192,8 @@ LLSD FSFloaterPoser::createRowForJoint(const std::string& jointName, bool isHead
std::string parameterName = (isHeaderRow ? XML_LIST_HEADER_STRING_PREFIX : XML_LIST_TITLE_STRING_PREFIX) + jointName;
if (hasString(parameterName))
jointValue = getString(parameterName);
else
return NULL;
LLSD row;
row["columns"][COL_ICON]["column"] = "icon";
@ -2403,17 +2405,18 @@ bool FSFloaterPoser::writePoseAsBvh(llofstream* fileStream, LLVOAvatar* avatar)
*fileStream << "MOTION" << std::endl;
*fileStream << "Frames: 2" << std::endl;
*fileStream << "Frame Time: 1" << std::endl;
*fileStream << "0.000000 0.000000 0.000000 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0" << std::endl;
writeFirstFrameOfBvhMotion(fileStream, startingJoint);
*fileStream << std::endl;
writeBvhMotion(fileStream, avatar, startingJoint);
*fileStream << std::endl;
return true;
}
bool FSFloaterPoser::writeBvhFragment(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint, S32 tabStops)
void FSFloaterPoser::writeBvhFragment(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint, S32 tabStops)
{
if (!joint)
return false;
return;
auto position = mPoserAnimator.getJointPosition(avatar, *joint);
auto saveAxis = getBvhJointTranslation(joint->jointName());
@ -2475,32 +2478,44 @@ bool FSFloaterPoser::writeBvhFragment(llofstream* fileStream, LLVOAvatar* avatar
}
else
{
// append the End Site offset
*fileStream << getTabs(tabStops + 1) + "End Site" << std::endl;
*fileStream << getTabs(tabStops + 1) + "{" << std::endl;
// append the 'end knot' magic number
if (strstr(joint->jointName().c_str(), "mHead"))
*fileStream << getTabs(tabStops + 2) + "OFFSET 0.000000 3.148289 0.000000" << std::endl;
if (strstr(joint->jointName().c_str(), "mWristLeft"))
*fileStream << getTabs(tabStops + 2) + "OFFSET 4.106464 0.000000 0.000000" << std::endl;
if (strstr(joint->jointName().c_str(), "mWristRight"))
*fileStream << getTabs(tabStops + 2) + "OFFSET -4.106464 0.000000 0.000000" << std::endl;
if (strstr(joint->jointName().c_str(), "mAnkleLeft"))
*fileStream << getTabs(tabStops + 2) + "OFFSET 0.000000 -2.463878 4.653993" << std::endl;
if (strstr(joint->jointName().c_str(), "mAnkleRight"))
*fileStream << getTabs(tabStops + 2) + "OFFSET 0.000000 -2.463878 4.653993" << std::endl;
*fileStream << getTabs(tabStops + 2) + "OFFSET " + joint->bvhEndSite() << std::endl;
*fileStream << getTabs(tabStops + 1) + "}" << std::endl;
}
*fileStream << getTabs(tabStops) + "}" << std::endl;
return true;
}
bool FSFloaterPoser::writeBvhMotion(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint)
void FSFloaterPoser::writeFirstFrameOfBvhMotion(llofstream* fileStream, const FSPoserAnimator::FSPoserJoint* joint)
{
if (!joint)
return false;
return;
switch (joint->boneType())
{
case WHOLEAVATAR:
*fileStream << "0.000000 0.000000 0.000000 0.0 0.0 0.0";
break;
default:
*fileStream << " 0.0 0.0 0.0";
break;
}
size_t numberOfBvhChildNodes = joint->bvhChildren().size();
for (size_t index = 0; index != numberOfBvhChildNodes; ++index)
{
auto nextJoint = mPoserAnimator.getPoserJointByName(joint->bvhChildren()[index]);
writeFirstFrameOfBvhMotion(fileStream, nextJoint);
}
}
void FSFloaterPoser::writeBvhMotion(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint)
{
if (!joint)
return;
auto rotation = mPoserAnimator.getJointRotation(avatar, *joint, SWAP_NOTHING, NEGATE_NOTHING);
auto position = mPoserAnimator.getJointPosition(avatar, *joint);
@ -2522,8 +2537,6 @@ bool FSFloaterPoser::writeBvhMotion(llofstream* fileStream, LLVOAvatar* avatar,
auto nextJoint = mPoserAnimator.getPoserJointByName(joint->bvhChildren()[index]);
writeBvhMotion(fileStream, avatar, nextJoint);
}
return true;
}
std::string FSFloaterPoser::vec3ToXYZString(const LLVector3& val)

View File

@ -386,8 +386,7 @@ class FSFloaterPoser : public LLFloater
/// <param name="avatar">The avatar owning the supplied joint.</param>
/// <param name="joint">The joint whose fragment should be written, and whose child(ren) will also be written.</param>
/// <param name="tabStops">The number of tab-stops to include for formatting purpose.</param>
/// <returns>True if the fragment wrote successfully, otherwise false.</returns>
bool writeBvhFragment(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint, S32 tabStops);
void writeBvhFragment(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint, S32 tabStops);
/// <summary>
/// Writes a fragment of the 'single line' representing an animation frame within the BVH file respresenting the positions and/or
@ -396,8 +395,15 @@ class FSFloaterPoser : public LLFloater
/// <param name="fileStream">The stream to write the position and/or rotation to.</param>
/// <param name="avatar">The avatar owning the supplied joint.</param>
/// <param name="joint">The joint whose position and/or rotation should be written.</param>
/// <returns></returns>
bool writeBvhMotion(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint);
void writeBvhMotion(llofstream* fileStream, LLVOAvatar* avatar, const FSPoserAnimator::FSPoserJoint* joint);
/// <summary>
/// Writes a fragment of the 'single line' representing the first animation frame within the BVH file respresenting the positions and/or
/// rotations.
/// </summary>
/// <param name="fileStream">The stream to write the position and/or rotation to.</param>
/// <param name="joint">The joint whose position and/or rotation should be written.</param>
void writeFirstFrameOfBvhMotion(llofstream* fileStream, const FSPoserAnimator::FSPoserJoint* joint);
/// <summary>
/// Generates a string with the supplied number of tab-chars.

View File

@ -196,33 +196,12 @@ void FSJointPose::mirrorRotationFrom(FSJointPose* fromJoint)
mRotation.deltaRotation.mQ[VW]);
}
void FSJointPose::revertJointScale()
void FSJointPose::revertJoint()
{
LLJoint* joint = mJointState->getJoint();
if (!joint)
return;
joint->setScale(mBeginningScale);
}
void FSJointPose::revertJointPosition()
{
LLJoint* joint = mJointState->getJoint();
if (!joint)
return;
joint->setPosition(mBeginningPosition);
}
void FSJointPose::revertCollisionVolume()
{
if (!mIsCollisionVolume)
return;
LLJoint* joint = mJointState->getJoint();
if (!joint)
return;
joint->setRotation(mRotation.baseRotation);
joint->setPosition(mBeginningPosition);
joint->setScale(mBeginningScale);

View File

@ -163,20 +163,10 @@ class FSJointPose
void recaptureJoint();
/// <summary>
/// Restores the joint represented by this to the scale it had when this motion started.
/// Reverts the position/rotation/scale to their values when the animation begun.
/// This treatment is required for certain joints, particularly Collision Volumes and those bones not commonly animated by an AO.
/// </summary>
void revertJointScale();
/// <summary>
/// Restores the joint represented by this to the position it had when this motion started.
/// </summary>
void revertJointPosition();
/// <summary>
/// Collision Volumes do not 'reset' their position/rotation when the animation stops.
/// This requires special treatment to revert changes we've made this animation session.
/// </summary>
void revertCollisionVolume();
void revertJoint();
LLVector3 getTargetPosition() const { return mPositionDelta + mBeginningPosition; }
LLQuaternion getTargetRotation() const { return mRotation.getTargetRotation(); }

View File

@ -118,7 +118,8 @@ public:
std::string mMirrorJointName;
E_BoneTypes mBoneList;
std::vector<std::string> mBvhChildren;
std::string bvhOffsetMagicNumber;
std::string bvhOffsetValue;
std::string bvhEndSiteOffset;
bool mDontFlipOnMirror = false;
public:
@ -148,9 +149,17 @@ public:
std::vector<std::string> bvhChildren() const { return mBvhChildren; }
/// <summary>
/// Gets the bvh offset magic number for this joint.
/// Gets the bvh offset value for this joint.
/// </summary>
std::string bvhOffset() const { return bvhOffsetMagicNumber; }
/// <remarks>
/// These values are derived from \newview\character\avatar_skeleton.xml
/// </remarks>
std::string bvhOffset() const { return bvhOffsetValue; }
/// <summary>
/// Gets the bvh end site offset magic number for this joint.
/// </summary>
std::string bvhEndSite() const { return bvhEndSiteOffset; }
/// <summary>
/// Creates a new instance of a PoserJoint.
@ -165,14 +174,16 @@ public:
/// <param name="bhv_children">The optional array of joints, needed for BVH saving, which are the direct decendent(s) of this joint.</param>
/// <param name="dont_flip_on_mirror">The option for whether this joint should rotation-flip it counterpart when mirroring the pose of the entire body.</param>
FSPoserJoint(std::string joint_name, std::string mirror_joint_name, E_BoneTypes bone_list,
std::vector<std::string> bhv_children = {}, std::string bvhOffset = "", bool dont_flip_on_mirror = false)
std::vector<std::string> bhv_children = {}, std::string bvhOffset = "", std::string bvhEndSiteValue = "",
bool dont_flip_on_mirror = false)
{
mJointName = joint_name;
mMirrorJointName = mirror_joint_name;
mBoneList = bone_list;
mBvhChildren = bhv_children;
bvhOffsetMagicNumber = bvhOffset;
bvhOffsetValue = bvhOffset;
mDontFlipOnMirror = dont_flip_on_mirror;
bvhEndSiteOffset = bvhEndSiteValue;
}
};
@ -186,136 +197,155 @@ public:
/// </remarks>
const std::vector<FSPoserJoint> PoserJoints{
// head, torso, legs
{ "mHead", "", BODY, {}, "0.000000 3.148285 0.000000" },
{ "mNeck", "", BODY, { "mHead" }, "0.000000 10.266162 -0.273764" },
{ "mPelvis", "", WHOLEAVATAR, { "mTorso", "mHipLeft", "mHipRight" }, "0.000000 0.000000 0.000000" },
{ "mChest", "", BODY, { "mNeck", "mCollarLeft", "mCollarRight" }, "0.000000 8.486693 -0.684411" },
{ "mTorso", "", BODY, { "mChest" }, "0.000000 3.422050 0.000000" },
{ "mCollarLeft", "mCollarRight", BODY, { "mShoulderLeft" }, "3.422053 6.707223 -0.821293" },
{ "mShoulderLeft", "mShoulderRight", BODY, { "mElbowLeft" }, "3.285171 0.000000 0.000000" },
{ "mElbowLeft", "mElbowRight", BODY, { "mWristLeft" }, "10.129278 0.000000 0.000000" },
{ "mWristLeft", "mWristRight", BODY, {}, "8.486692 0.000000 0.000000" },
{ "mCollarRight", "mCollarLeft", BODY, { "mShoulderRight" }, "-3.558935 6.707223 -0.821293", true },
{ "mShoulderRight", "mShoulderLeft", BODY, { "mElbowRight" }, "-3.148289 0.000000 0.000000", true },
{ "mElbowRight", "mElbowLeft", BODY, { "mWristRight" }, "-10.266159 0.000000 0.000000", true },
{ "mWristRight", "mWristLeft", BODY, {}, "-8.349810 0.000000 0.000000", true },
{ "mHipLeft", "mHipRight", BODY, { "mKneeLeft" }, "5.338403 -1.642589 1.368821" },
{ "mKneeLeft", "mKneeRight", BODY, { "mAnkleLeft" }, "-2.053232 -20.121670 0.000000" },
{ "mAnkleLeft", "mAnkleRight", BODY, {}, "0.000000 -19.300380 -1.231939" },
{ "mHipRight", "mHipLeft", BODY, { "mKneeRight" }, "-5.338403 -1.642589 1.368821", true },
{ "mKneeRight", "mKneeLeft", BODY, { "mAnkleRight" }, "2.053232 -20.121670 0.000000", true },
{ "mAnkleRight", "mAnkleLeft", BODY, {}, "0.000000 -19.300380 -1.231939", true },
{ "mHead", "", BODY, { "mEyeLeft", "mEyeRight", "mFaceRoot" }, "0.000 0.076 0.000" },
{ "mNeck", "", BODY, { "mHead" }, "0.000 0.251 -0.010" },
{ "mPelvis", "", WHOLEAVATAR, { "mTorso", "mHipLeft", "mHipRight", "mTail1", "mGroin", "mHindLimbsRoot" }, "0.000000 0.000000 0.000000" },
{ "mChest", "", BODY, { "mNeck", "mCollarLeft", "mCollarRight", "mWingsRoot" }, "0.000 0.205 -0.015" },
{ "mTorso", "", BODY, { "mChest" }, "0.000 0.084 0.000" },
{ "mCollarLeft", "mCollarRight", BODY, { "mShoulderLeft" }, "0.085 0.165 -0.021" },
{ "mShoulderLeft", "mShoulderRight", BODY, { "mElbowLeft" }, "0.079 0.000 0.000" },
{ "mElbowLeft", "mElbowRight", BODY, { "mWristLeft" }, "0.248 0.000 0.000" },
{ "mWristLeft", "mWristRight", BODY, { "mHandThumb1Left", "mHandIndex1Left", "mHandMiddle1Left", "mHandRing1Left", "mHandPinky1Left" }, "0.205 0.000 0.000" },
{ "mCollarRight", "mCollarLeft", BODY, { "mShoulderRight" }, "-0.085 0.165 -0.021", "", true },
{ "mShoulderRight", "mShoulderLeft", BODY, { "mElbowRight" }, "-0.079 0.000 0.000", "", true },
{ "mElbowRight", "mElbowLeft", BODY, { "mWristRight" }, "-0.248 0.000 0.000", "", true },
{ "mWristRight", "mWristLeft", BODY, { "mHandThumb1Right", "mHandIndex1Right", "mHandMiddle1Right", "mHandRing1Right", "mHandPinky1Right" }, "-0.205 0.000 0.000", "", true },
{ "mHipLeft", "mHipRight", BODY, { "mKneeLeft" }, "0.127 -0.041 0.034" },
{ "mKneeLeft", "mKneeRight", BODY, { "mAnkleLeft" }, "-0.046 -0.491 -0.001" },
{ "mAnkleLeft", "mAnkleRight", BODY, {}, "0.001 -0.468 -0.029", "0.000 -0.061 0.112" },
{ "mHipRight", "mHipLeft", BODY, { "mKneeRight" }, "-0.129 -0.041 0.034", "0.000 -0.061 0.112", true },
{ "mKneeRight", "mKneeLeft", BODY, { "mAnkleRight" }, "0.049 -0.491 -0.001", "", true },
{ "mAnkleRight", "mAnkleLeft", BODY, {}, "0.000 -0.468 -0.029", "0.000 -0.061 0.112", true },
// face
{ "mFaceForeheadLeft", "mFaceForeheadRight", FACE },
{ "mFaceForeheadCenter", "", FACE },
{ "mFaceForeheadRight", "mFaceForeheadLeft", FACE, {}, "", true },
{ "mFaceEyebrowOuterLeft", "mFaceEyebrowOuterRight", FACE },
{ "mFaceEyebrowCenterLeft", "mFaceEyebrowCenterRight", FACE },
{ "mFaceEyebrowInnerLeft", "mFaceEyebrowInnerRight", FACE },
{ "mFaceEyebrowOuterRight", "mFaceEyebrowOuterLeft", FACE, {}, "", true },
{ "mFaceEyebrowCenterRight", "mFaceEyebrowCenterLeft", FACE, {}, "", true },
{ "mFaceEyebrowInnerRight", "mFaceEyebrowInnerLeft", FACE, {}, "", true },
{ "mFaceRoot",
"",
FACE,
{
"mFaceForeheadLeft", "mFaceForeheadCenter", "mFaceForeheadRight",
"mFaceEyebrowOuterLeft", "mFaceEyebrowCenterLeft", "mFaceEyebrowInnerLeft",
"mFaceEyebrowOuterRight", "mFaceEyebrowCenterRight", "mFaceEyebrowInnerRight",
"mFaceEyeLidUpperLeft", "mFaceEyeLidLowerLeft",
"mFaceEyeLidUpperRight", "mFaceEyeLidLowerRight",
"mFaceEar1Left", "mFaceEar1Right",
"mFaceNoseLeft", "mFaceNoseCenter", "mFaceNoseRight",
"mFaceCheekUpperLeft", "mFaceCheekLowerLeft",
"mFaceCheekUpperRight", "mFaceCheekLowerRight",
"mFaceJaw", "mFaceTeethUpper"
},
"0.000 0.045 0.025" },
{ "mFaceForeheadLeft", "mFaceForeheadRight", FACE, {}, "0.035 0.083 0.061", "0.004 0.018 0.024" },
{ "mFaceForeheadCenter", "", FACE, {}, "0.000 0.065 0.069", "0.000 0.000 0.036" },
{ "mFaceForeheadRight", "mFaceForeheadLeft", FACE, {}, "-0.035 0.083 0.061", "-0.004 0.018 0.024", true },
{ "mFaceEyebrowOuterLeft", "mFaceEyebrowOuterRight", FACE, {}, "0.051 0.048 0.064", "0.013 0.000 0.023" },
{ "mFaceEyebrowCenterLeft", "mFaceEyebrowCenterRight", FACE, {}, "0.043 0.056 0.070", "0.000 0.000 0.027" },
{ "mFaceEyebrowInnerLeft", "mFaceEyebrowInnerRight", FACE, {}, "0.022 0.051 0.075", "0.000 0.000 0.026" },
{ "mFaceEyebrowOuterRight", "mFaceEyebrowOuterLeft", FACE, {}, "-0.051 0.048 0.064", "-0.013 0.000 0.023", true },
{ "mFaceEyebrowCenterRight", "mFaceEyebrowCenterLeft", FACE, {}, "-0.043 0.056 0.070", "0.000 0.000 0.027", true },
{ "mFaceEyebrowInnerRight", "mFaceEyebrowInnerLeft", FACE, {}, "-0.022 0.051 0.075", "0.000 0.000 0.026", true },
{ "mEyeLeft", "mEyeRight", FACE },
{ "mEyeRight", "mEyeLeft", FACE, {}, "", true },
{ "mFaceEyeLidUpperLeft", "mFaceEyeLidUpperRight", FACE },
{ "mFaceEyeLidLowerLeft", "mFaceEyeLidLowerRight", FACE },
{ "mFaceEyeLidUpperRight", "mFaceEyeLidUpperLeft", FACE, {}, "", true },
{ "mFaceEyeLidLowerRight", "mFaceEyeLidLowerLeft", FACE, {}, "", true },
{ "mEyeLeft", "mEyeRight", FACE, {}, "-0.036 0.079 0.098", "0.000 0.000 0.025" },
{ "mEyeRight", "mEyeLeft", FACE, {}, "0.036 0.079 0.098", "0.000 0.000 0.025", true },
{ "mFaceEyeLidUpperLeft", "mFaceEyeLidUpperRight", FACE, {}, "0.036 0.034 0.073", "0.000 0.005 0.027" },
{ "mFaceEyeLidLowerLeft", "mFaceEyeLidLowerRight", FACE, {}, "0.036 0.034 0.073", "0.000 -0.007 0.024" },
{ "mFaceEyeLidUpperRight", "mFaceEyeLidUpperLeft", FACE, {}, "-0.036 0.034 0.073", "0.000 0.005 0.027", true },
{ "mFaceEyeLidLowerRight", "mFaceEyeLidLowerLeft", FACE, {}, "-0.036 0.034 0.073", "0.000 -0.007 0.024", true },
{ "mFaceEar1Left", "mFaceEar1Right", FACE },
{ "mFaceEar2Left", "mFaceEar2Right", FACE },
{ "mFaceEar1Right", "mFaceEar1Left", FACE, {}, "", true },
{ "mFaceEar2Right", "mFaceEar2Left", FACE, {}, "", true },
{ "mFaceNoseLeft", "mFaceNoseRight", FACE },
{ "mFaceNoseCenter", "", FACE },
{ "mFaceNoseRight", "mFaceNoseLeft", FACE, {}, "", true },
{ "mFaceEar1Left", "mFaceEar1Right", FACE, { "mFaceEar2Left" }, "0.080 0.002 0.000", "" },
{ "mFaceEar2Left", "mFaceEar2Right", FACE, {}, "0.018 0.025 -0.019", "0.000 0.033 0.000" },
{ "mFaceEar1Right", "mFaceEar1Left", FACE, { "mFaceEar2Right" }, "-0.080 0.002 0.000", "", true },
{ "mFaceEar2Right", "mFaceEar2Left", FACE, {}, "-0.018 0.025 -0.019", "0.000 0.033 0.000", true },
{ "mFaceNoseLeft", "mFaceNoseRight", FACE, {}, "0.015 -0.004 0.086", "0.004 0.000 0.015" },
{ "mFaceNoseCenter", "", FACE, {}, "0.000 0.000 0.102", "0.000 0.000 0.025" },
{ "mFaceNoseRight", "mFaceNoseLeft", FACE, {}, "-0.015 -0.004 0.086", "-0.004 0.000 0.015", true },
{ "mFaceCheekUpperLeft", "mFaceCheekUpperRight", FACE },
{ "mFaceCheekLowerLeft", "mFaceCheekLowerRight", FACE },
{ "mFaceCheekUpperRight", "mFaceCheekUpperLeft", FACE, {}, "", true },
{ "mFaceCheekLowerRight", "mFaceCheekLowerLeft", FACE, {}, "", true },
{ "mFaceLipUpperLeft", "mFaceLipUpperRight", FACE },
{ "mFaceLipUpperCenter", "", FACE },
{ "mFaceLipUpperRight", "mFaceLipUpperLeft", FACE, {}, "", true },
{ "mFaceLipCornerLeft", "mFaceLipCornerRight", FACE },
{ "mFaceLipCornerRight", "mFaceLipCornerLeft", FACE, {}, "", true },
{ "mFaceTongueBase", "", FACE },
{ "mFaceTongueTip", "", FACE, {}, "", true },
{ "mFaceLipLowerLeft", "mFaceLipLowerRight", FACE },
{ "mFaceLipLowerCenter", "", FACE },
{ "mFaceLipLowerRight", "mFaceLipLowerLeft", FACE, {}, "", true },
{ "mFaceJaw", "", FACE },
{ "mFaceCheekUpperLeft", "mFaceCheekUpperRight", FACE, {}, "0.034 -0.005 0.070", "0.015 0.000 0.022" },
{ "mFaceCheekLowerLeft", "mFaceCheekLowerRight", FACE, {}, "0.034 -0.031 0.050", "0.030 0.000 0.013" },
{ "mFaceCheekUpperRight", "mFaceCheekUpperLeft", FACE, {}, "-0.034 -0.005 0.070", "-0.015 0.000 0.022", true },
{ "mFaceCheekLowerRight", "mFaceCheekLowerLeft", FACE, {}, "-0.034 -0.031 0.050", "-0.030 0.000 0.013", true },
{ "mFaceLipUpperLeft", "mFaceLipUpperRight", FACE, {}, "0.000 -0.003 0.045", "0.015 0.000 0.041" },
{ "mFaceLipUpperCenter", "", FACE, {}, "0.000 -0.003 0.045", "0.000 0.002 0.043" },
{ "mFaceLipUpperRight", "mFaceLipUpperLeft", FACE, {}, "0.000 -0.003 0.045", "-0.015 0.000 0.041", true },
{ "mFaceLipCornerLeft", "mFaceLipCornerRight", FACE, {}, "-0.019 -0.010 0.028", "0.051 0.000 0.045" },
{ "mFaceLipCornerRight", "mFaceLipCornerLeft", FACE, {}, "0.019 -0.010 0.028", "-0.051 0.000 0.045", true },
{ "mFaceTeethUpper", "", FACE, { "mFaceLipUpperLeft","mFaceLipUpperCenter", "mFaceLipUpperRight", "mFaceLipCornerLeft", "mFaceLipCornerRight" }, "0.000 -0.030 0.020" },
{ "mFaceTeethLower", "", FACE, { "mFaceLipLowerLeft", "mFaceLipLowerCenter", "mFaceLipLowerRight", "mFaceTongueBase" }, "0.000 -0.039 0.021" },
{ "mFaceTongueBase", "", FACE, { "mFaceTongueTip" }, "0.000 0.005 0.039" },
{ "mFaceTongueTip", "", FACE, {}, "0.000 0.007 0.022", "0.000 0.000 0.010", true },
{ "mFaceLipLowerLeft", "mFaceLipLowerRight", FACE, {}, "0.000 0.000 0.045", "0.017 0.005 0.034" },
{ "mFaceLipLowerCenter", "", FACE, {}, "0.000 0.000 0.045", "0.000 0.002 0.040" },
{ "mFaceLipLowerRight", "mFaceLipLowerLeft", FACE, {}, "0.000 0.000 0.045", "-0.017 0.005 0.034", true },
{ "mFaceJaw", "", FACE, { "mFaceChin", "mFaceTeethLower" }, "0.000 -0.015 -0.001", "" },
{ "mFaceChin", "", FACE, {}, "0.000 -0.015 -0.001", "0.000 -0.018 0.021" },
// left hand
{ "mHandThumb1Left", "mHandThumb1Right", HANDS },
{ "mHandThumb2Left", "mHandThumb2Right", HANDS },
{ "mHandThumb3Left", "mHandThumb3Right", HANDS },
{ "mHandIndex1Left", "mHandIndex1Right", HANDS },
{ "mHandIndex2Left", "mHandIndex2Right", HANDS },
{ "mHandIndex3Left", "mHandIndex3Right", HANDS },
{ "mHandMiddle1Left", "mHandMiddle1Right", HANDS },
{ "mHandMiddle2Left", "mHandMiddle2Right", HANDS },
{ "mHandMiddle3Left", "mHandMiddle3Right", HANDS },
{ "mHandRing1Left", "mHandRing1Right", HANDS },
{ "mHandRing2Left", "mHandRing2Right", HANDS },
{ "mHandRing3Left", "mHandRing3Right", HANDS },
{ "mHandPinky1Left", "mHandPinky1Right", HANDS },
{ "mHandPinky2Left", "mHandPinky2Right", HANDS },
{ "mHandPinky3Left", "mHandPinky3Right", HANDS },
{ "mHandThumb1Left", "mHandThumb1Right", HANDS, { "mHandThumb2Left" }, "0.026 0.004 0.031" },
{ "mHandThumb2Left", "mHandThumb2Right", HANDS, { "mHandThumb3Left" }, "0.032 -0.001 0.028" },
{ "mHandThumb3Left", "mHandThumb3Right", HANDS, {}, "0.031 -0.001 0.023", "0.025 0.000 0.015" },
{ "mHandIndex1Left", "mHandIndex1Right", HANDS, { "mHandIndex2Left" }, "0.097 0.015 0.038" },
{ "mHandIndex2Left", "mHandIndex2Right", HANDS, { "mHandIndex3Left" }, "0.036 -0.006 0.017" },
{ "mHandIndex3Left", "mHandIndex3Right", HANDS, {}, "0.032 -0.006 0.014", "0.025 -0.004 0.011" },
{ "mHandMiddle1Left", "mHandMiddle1Right", HANDS, { "mHandMiddle2Left" }, "0.101 0.015 0.013" },
{ "mHandMiddle2Left", "mHandMiddle2Right", HANDS, { "mHandMiddle3Left" }, "0.040 -0.006 -0.001" },
{ "mHandMiddle3Left", "mHandMiddle3Right", HANDS, {}, "0.049 -0.008 -0.001", "0.033 -0.006 -0.002" },
{ "mHandRing1Left", "mHandRing1Right", HANDS, { "mHandRing2Left" }, "0.099 0.009 -0.010" },
{ "mHandRing2Left", "mHandRing2Right", HANDS, { "mHandRing3Left" }, "0.038 -0.008 -0.013" },
{ "mHandRing3Left", "mHandRing3Right", HANDS, {}, "0.040 -0.009 -0.013", "0.028 -0.006 -0.010" },
{ "mHandPinky1Left", "mHandPinky1Right", HANDS, { "mHandPinky2Left" }, "0.095 0.003 -0.031" },
{ "mHandPinky2Left", "mHandPinky2Right", HANDS, { "mHandPinky3Left" }, "0.025 -0.006 -0.024" },
{ "mHandPinky3Left", "mHandPinky3Right", HANDS, {}, "0.018 -0.004 -0.015", "0.016 -0.004 -0.013" },
// right hand
{ "mHandThumb1Right", "mHandThumb1Left", HANDS, {}, "", true },
{ "mHandThumb2Right", "mHandThumb2Left", HANDS, {}, "", true },
{ "mHandThumb3Right", "mHandThumb3Left", HANDS, {}, "", true },
{ "mHandIndex1Right", "mHandIndex1Left", HANDS, {}, "", true },
{ "mHandIndex2Right", "mHandIndex2Left", HANDS, {}, "", true },
{ "mHandIndex3Right", "mHandIndex3Left", HANDS, {}, "", true },
{ "mHandMiddle1Right", "mHandMiddle1Left", HANDS, {}, "", true },
{ "mHandMiddle2Right", "mHandMiddle2Left", HANDS, {}, "", true },
{ "mHandMiddle3Right", "mHandMiddle3Left", HANDS, {}, "", true },
{ "mHandRing1Right", "mHandRing1Left", HANDS, {}, "", true },
{ "mHandRing2Right", "mHandRing2Left", HANDS, {}, "", true },
{ "mHandRing3Right", "mHandRing3Left", HANDS, {}, "", true },
{ "mHandPinky1Right", "mHandPinky1Left", HANDS, {}, "", true },
{ "mHandPinky2Right", "mHandPinky2Left", HANDS, {}, "", true },
{ "mHandPinky3Right", "mHandPinky3Left", HANDS, {}, "", true },
{ "mHandThumb1Right", "mHandThumb1Left", HANDS, { "mHandThumb2Right" }, "-0.026 0.004 0.031", "", true },
{ "mHandThumb2Right", "mHandThumb2Left", HANDS, { "mHandThumb3Right" }, "-0.032 -0.001 0.028", "", true },
{ "mHandThumb3Right", "mHandThumb3Left", HANDS, {}, "-0.031 -0.001 0.023", "-0.025 0.000 0.015", true },
{ "mHandIndex1Right", "mHandIndex1Left", HANDS, { "mHandIndex2Right" }, "-0.097 0.015 0.038", "", true },
{ "mHandIndex2Right", "mHandIndex2Left", HANDS, { "mHandIndex3Right" }, "-0.036 -0.006 0.017", "", true },
{ "mHandIndex3Right", "mHandIndex3Left", HANDS, {}, "-0.032 -0.006 0.014", "-0.025 -0.004 0.011", true },
{ "mHandMiddle1Right", "mHandMiddle1Left", HANDS, { "mHandMiddle2Right" }, "-0.101 0.015 0.013", "", true },
{ "mHandMiddle2Right", "mHandMiddle2Left", HANDS, { "mHandMiddle3Right" }, "-0.040 -0.006 -0.001", "", true },
{ "mHandMiddle3Right", "mHandMiddle3Left", HANDS, {}, "-0.049 -0.008 -0.001", "-0.033 -0.006 -0.002", true },
{ "mHandRing1Right", "mHandRing1Left", HANDS, { "mHandRing2Right" }, "-0.099 0.009 -0.010", "", true },
{ "mHandRing2Right", "mHandRing2Left", HANDS, { "mHandRing3Right" }, "-0.038 -0.008 -0.013", "", true },
{ "mHandRing3Right", "mHandRing3Left", HANDS, {}, "-0.040 -0.009 -0.013", "-0.028 -0.006 -0.010", true },
{ "mHandPinky1Right", "mHandPinky1Left", HANDS, { "mHandPinky2Right" }, "-0.095 0.003 -0.031", "", true },
{ "mHandPinky2Right", "mHandPinky2Left", HANDS, { "mHandPinky3Right" }, "-0.025 -0.006 -0.024", "", true },
{ "mHandPinky3Right", "mHandPinky3Left", HANDS, {}, "-0.018 -0.004 -0.015", "-0.016 -0.004 -0.013", true },
// tail and hind limbs
{ "mTail1", "", MISC },
{ "mTail2", "", MISC },
{ "mTail3", "", MISC },
{ "mTail4", "", MISC },
{ "mTail5", "", MISC },
{ "mTail6", "", MISC },
{ "mGroin", "", MISC },
{ "mHindLimbsRoot", "", MISC },
{ "mHindLimb1Left", "mHindLimb1Right", MISC },
{ "mHindLimb2Left", "mHindLimb2Right", MISC },
{ "mHindLimb3Left", "mHindLimb3Right", MISC },
{ "mHindLimb4Left", "mHindLimb4Right", MISC },
{ "mHindLimb1Right", "mHindLimb1Left", MISC, {}, "", true },
{ "mHindLimb2Right", "mHindLimb2Left", MISC, {}, "", true },
{ "mHindLimb3Right", "mHindLimb3Left", MISC, {}, "", true },
{ "mHindLimb4Right", "mHindLimb4Left", MISC, {}, "", true },
{ "mTail1", "", MISC, { "mTail2" }, "0.000 0.047 -0.116" },
{ "mTail2", "", MISC, { "mTail3" }, "0.000 0.000 -0.197" },
{ "mTail3", "", MISC, { "mTail4" }, "0.000 0.000 -0.168" },
{ "mTail4", "", MISC, { "mTail5" }, "0.000 0.000 -0.142" },
{ "mTail5", "", MISC, { "mTail6" }, "0.000 0.000 -0.112" },
{ "mTail6", "", MISC, {}, "0.000 0.000 -0.094", "0.000 0.000 -0.089" },
{ "mGroin", "", MISC, {}, "0.000 -0.097 0.064", "0.000 -0.066 0.004" },
{ "mHindLimbsRoot", "", MISC, { "mHindLimb1Left", "mHindLimb1Right" }, "0.000 0.084 -0.200" },
{ "mHindLimb1Left", "mHindLimb1Right", MISC, { "mHindLimb2Left" }, "0.129 -0.125 -0.204" },
{ "mHindLimb2Left", "mHindLimb2Right", MISC, { "mHindLimb3Left" }, "-0.046 -0.491 0.002" },
{ "mHindLimb3Left", "mHindLimb3Right", MISC, { "mHindLimb4Left" }, "-0.003 -0.468 -0.030" },
{ "mHindLimb4Left", "mHindLimb4Right", MISC, {}, "0.000 -0.061 0.112", "0.008 0.000 0.105" },
{ "mHindLimb1Right", "mHindLimb1Left", MISC, { "mHindLimb2Right" }, "-0.129 -0.125 -0.204", "", true },
{ "mHindLimb2Right", "mHindLimb2Left", MISC, { "mHindLimb3Right" }, "0.046 -0.491 0.002", "", true },
{ "mHindLimb3Right", "mHindLimb3Left", MISC, { "mHindLimb4Right" }, "0.003 -0.468 -0.030", "", true },
{ "mHindLimb4Right", "mHindLimb4Left", MISC, {}, "0.000 -0.061 0.112", "-0.008 0.000 0.105", true },
// wings
{ "mWingsRoot", "", MISC },
{ "mWing1Left", "mWing1Right", MISC },
{ "mWing2Left", "mWing2Right", MISC },
{ "mWing3Left", "mWing3Right", MISC },
{ "mWing4Left", "mWing4Right", MISC },
{ "mWing4FanLeft", "mWing4FanRight", MISC },
{ "mWing1Right", "mWing1Left", MISC, {}, "", true },
{ "mWing2Right", "mWing2Left", MISC, {}, "", true },
{ "mWing3Right", "mWing3Left", MISC, {}, "", true },
{ "mWing4Right", "mWing4Left", MISC, {}, "", true },
{ "mWing4FanRight", "mWing4FanLeft", MISC, {}, "", true },
{ "mWingsRoot", "", MISC, { "mWing1Left", "mWing1Right" }, "0.000 0.000 -0.014" },
{ "mWing1Left", "mWing1Right", MISC, { "mWing2Left" }, "0.105 0.181 -0.099" },
{ "mWing2Left", "mWing2Right", MISC, { "mWing3Left" }, "0.169 0.067 -0.168" },
{ "mWing3Left", "mWing3Right", MISC, { "mWing4Left", "mWing4FanLeft" }, "0.183 0.000 -0.181" },
{ "mWing4Left", "mWing4Right", MISC, {}, "0.173 0.000 -0.171", "0.132 0.000 -0.146" },
{ "mWing4FanLeft", "mWing4FanRight", MISC, {}, "0.173 0.000 -0.171", "0.062 -0.159 -0.068" },
{ "mWing1Right", "mWing1Left", MISC, { "mWing2Right" }, "-0.105 0.181 -0.099", "", true },
{ "mWing2Right", "mWing2Left", MISC, { "mWing3Right" }, "-0.169 0.067 -0.168", "", true },
{ "mWing3Right", "mWing3Left", MISC, { "mWing4Right", "mWing4FanRight" }, "-0.183 0.000 -0.181", "", true },
{ "mWing4Right", "mWing4Left", MISC, {}, "-0.173 0.000 -0.171", "-0.132 0.000 -0.146", true },
{ "mWing4FanRight", "mWing4FanLeft", MISC, {}, "-0.173 0.000 -0.171", "-0.062 -0.159 -0.068", true },
// Collision Volumes
{ "LEFT_PEC", "RIGHT_PEC", COL_VOLUMES },
{ "RIGHT_PEC", "LEFT_PEC", COL_VOLUMES, {}, "", true },
{ "RIGHT_PEC", "LEFT_PEC", COL_VOLUMES, {}, "", "", true },
{ "BELLY", "", COL_VOLUMES },
{ "BUTT", "", COL_VOLUMES },
};

View File

@ -117,17 +117,13 @@ bool FSPosingMotion::onUpdate(F32 time, U8* joint_mask)
return true;
}
void FSPosingMotion::onDeactivate() { revertChangesToPositionsScalesAndCollisionVolumes(); }
void FSPosingMotion::onDeactivate() { revertJointsAndCollisionVolumes(); }
void FSPosingMotion::revertChangesToPositionsScalesAndCollisionVolumes()
void FSPosingMotion::revertJointsAndCollisionVolumes()
{
for (FSJointPose jointPose : mJointPoses)
{
jointPose.revertJointScale();
jointPose.revertJointPosition();
if (jointPose.isCollisionVolume())
jointPose.revertCollisionVolume();
jointPose.revertJoint();
LLJoint* joint = jointPose.getJointState()->getJoint();
if (!joint)
@ -170,11 +166,7 @@ void FSPosingMotion::removeJointFromState(FSJointPose* joint)
if (!avJoint)
return;
joint->revertJointScale();
joint->revertJointPosition();
if (joint->isCollisionVolume())
joint->revertCollisionVolume();
joint->revertJoint();
setJointState(avJoint, 0);
}

View File

@ -173,7 +173,7 @@ private:
/// Because changes to positions, scales and collision volumes do not end when the animation stops,
/// this is required to revert them manually.
/// </summary>
void revertChangesToPositionsScalesAndCollisionVolumes();
void revertJointsAndCollisionVolumes();
/// <summary>
/// Queries whether the supplied joint is being animated.

View File

@ -241,8 +241,7 @@ Function CheckCPUFlagsAVX2
; Replace %DLURL% in the language string with the URL
${WordReplace} "$(MissingAVX2)" "%DLURL%" "${DL_URL}-legacy-cpus" "+*" $3
MessageBox MB_OK "$3"
${OpenURL} "${DL_URL}-legacy-cpus"
MessageBox MB_YESNO $(AVX2OverrideConfirmation) IDNO NoInstall
MessageBox MB_OKCANCEL $(AVX2OverrideNote) IDCANCEL NoInstall
@ -253,6 +252,7 @@ Function CheckCPUFlagsAVX2
Return
NoInstall:
${OpenURL} "${DL_URL}-legacy-cpus"
Quit
OK_AVX2:

View File

@ -419,7 +419,10 @@ bool LLFloaterFixedEnvironmentWater::postBuild()
LLPanelSettingsWater * panel;
panel = new LLPanelSettingsWaterMainTab;
panel->buildFromFile("panel_settings_water.xml");
// <FS:William_W:PanelFileReplace> [PhotoTools] Use FS specific panel XML for Water Settings
// panel->buildFromFile("panel_settings_water.xml"); // Original LL line - using default panel XML
panel->buildFromFile("panel_fs_settings_water.xml"); // Using FS specific panel XML
// </FS:William_W:PanelFileReplace>
panel->setWater(std::static_pointer_cast<LLSettingsWater>(mSettings));
panel->setOnDirtyFlagChanged( [this] (LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true));
@ -479,26 +482,35 @@ LLFloaterFixedEnvironmentSky::LLFloaterFixedEnvironmentSky(const LLSD &key) :
LLFloaterFixedEnvironment(key)
{}
bool LLFloaterFixedEnvironmentSky::postBuild()
bool LLFloaterFixedEnvironmentSky::postBuild() // <--- Corrected: Only one declaration now
{
if (!LLFloaterFixedEnvironment::postBuild())
return false;
LLPanelSettingsSky * panel;
panel = new LLPanelSettingsSkyAtmosTab;
panel->buildFromFile("panel_settings_sky_atmos.xml");
// <FS:William_W:PanelFileReplace> [PhotoTools] Use FS specific panel XML for Sky Atmosphere Settings
// panel->buildFromFile("panel_settings_sky_atmos.xml"); // Original LL line - using default panel XML
panel->buildFromFile("panel_fs_settings_sky_atmos.xml"); // Using FS specific panel XML
// </FS:William_W:PanelFileReplace>
panel->setSky(std::static_pointer_cast<LLSettingsSky>(mSettings));
panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true));
panel = new LLPanelSettingsSkyCloudTab;
panel->buildFromFile("panel_settings_sky_clouds.xml");
// <FS:William_W:PanelFileReplace> [PhotoTools] Use FS specific panel XML for Sky Cloud Settings
// panel->buildFromFile("panel_settings_sky_clouds.xml"); // Original LL line - using default panel XML
panel->buildFromFile("panel_fs_settings_sky_clouds.xml"); // Using FS specific panel XML
// </FS:William_W:PanelFileReplace>
panel->setSky(std::static_pointer_cast<LLSettingsSky>(mSettings));
panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false));
panel = new LLPanelSettingsSkySunMoonTab;
panel->buildFromFile("panel_settings_sky_sunmoon.xml");
// <FS:William_W:PanelFileReplace> [PhotoTools] Use FS specific panel XML for Sky Sun Moon Settings
// panel->buildFromFile("panel_settings_sky_sunmoon.xml"); // Original LL line - using default panel XML
panel->buildFromFile("panel_fs_settings_sky_sunmoon.xml"); // Using FS specific panel XML
// </FS:William_W:PanelFileReplace>
panel->setSky(std::static_pointer_cast<LLSettingsSky>(mSettings));
panel->setOnDirtyFlagChanged([this](LLPanel *, bool value) { onPanelDirtyFlagChanged(value); });
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(false));

View File

@ -2240,6 +2240,12 @@ void LLFloaterPreference::refreshEnabledState()
max_texmem->setMinValue(MIN_VRAM_BUDGET);
max_texmem->setMaxValue((F32)gGLManager.mVRAM);
// </FS:Ansariel>
// <FS:minerjr> [FIRE-35198] Limit VRAM texture usage UI control reverts to default value
static LLCachedControl<U32> max_vram_budget(gSavedSettings, "RenderMaxVRAMBudget", 0); // Get the same VRAM value that is used for the Bias calcuation
// Set the value of the UI element on after loggin in. (The value was correct and applied correctly, just the Graphics Settings slider defaulted backe to 4096
// instead of the last set value by the user.
max_texmem->setValue((F32)max_vram_budget, false);
// </FS:minerjr> [FIRE-35198]
}
// <FS:Zi> Support preferences search SLURLs

View File

@ -221,16 +221,19 @@ void LLFloaterSnapshotBase::ImplBase::updateLayout(LLFloaterSnapshotBase* floate
if (!mSkipReshaping && !floaterp->isMinimized())
{
LLView* controls_container = floaterp->getChild<LLView>("controls_container");
constexpr S32 THUMB_HEIGHT_LARGE = 420;
constexpr S32 THUMB_HEIGHT_SMALL = 124;
constexpr S32 THUMB_WIDTH_SMALL = 216;
if (mAdvanced)
{
LLRect cc_rect = controls_container->getRect();
floaterp->reshape(floater_width, 483);
floaterp->reshape(floater_width, floaterp->getOriginalHeight());
controls_container->setRect(cc_rect);
controls_container->updateBoundingRect();
thumbnail_placeholder->reshape(panel_width, 420);
thumbnail_placeholder->reshape(panel_width, THUMB_HEIGHT_LARGE);
LLRect tn_rect = thumbnail_placeholder->getRect();
tn_rect.setLeftTopAndSize(215, floaterp->getRect().getHeight() - 30, tn_rect.getWidth(), tn_rect.getHeight());
@ -244,15 +247,15 @@ void LLFloaterSnapshotBase::ImplBase::updateLayout(LLFloaterSnapshotBase* floate
{
LLRect cc_rect = controls_container->getRect();
floaterp->reshape(floater_width, 613);
floaterp->reshape(floater_width,floaterp->getOriginalHeight()+THUMB_HEIGHT_SMALL);
controls_container->setRect(cc_rect);
controls_container->updateBoundingRect();
thumbnail_placeholder->reshape(216, 124);
thumbnail_placeholder->reshape(THUMB_WIDTH_SMALL, THUMB_HEIGHT_SMALL);
LLRect tn_rect = thumbnail_placeholder->getRect();
tn_rect.setLeftTopAndSize(5, floaterp->getRect().getHeight() - 30, 216, 124);
tn_rect.setLeftTopAndSize(5, floaterp->getRect().getHeight() - 30, THUMB_WIDTH_SMALL, THUMB_HEIGHT_SMALL);
thumbnail_placeholder->setRect(tn_rect);
thumbnail_placeholder->updateBoundingRect();
@ -1209,7 +1212,7 @@ bool LLFloaterSnapshot::postBuild()
//getChild<LLComboBox>("local_size_combo")->selectNthItem(8);
//getChild<LLComboBox>("local_format_combo")->selectNthItem(0);
// </FS:Ansariel>
mOriginalHeight = getRect().getHeight();
impl->mPreviewHandle = previewp->getHandle();
previewp->setContainer(this);
impl->updateControls(this);

View File

@ -67,8 +67,9 @@ public:
class ImplBase;
friend class ImplBase;
ImplBase* impl;
S32 getOriginalHeight() const { return mOriginalHeight; }
protected:
S32 mOriginalHeight;
LLUICtrl* mThumbnailPlaceholder;
LLUICtrl *mRefreshBtn, *mRefreshLabel;
LLUICtrl *mSucceessLblPanel, *mFailureLblPanel;

View File

@ -717,6 +717,7 @@ LLPanelProfileSecondLife::LLPanelProfileSecondLife()
, mAllowPublish(false)
, mHideAge(false)
, mRlvBehaviorCallbackConnection() // <FS:Ansariel> RLVa support
, mPreview(false) // <AS:Chanayane> Preview button
{
}
@ -785,6 +786,7 @@ bool LLPanelProfileSecondLife::postBuild()
mIMButton = getChild<LLButton>("im");
mOverflowButton = getChild<LLMenuButton>("overflow_btn");
// </FS:Ansariel>
mPreviewButton = getChild<LLButton>("btn_preview"); // <AS:Chanayane> Preview button
// <FS:Ansariel> Fix LL UI/UX design accident
//mShowInSearchCombo->setCommitCallback([this](LLUICtrl*, void*) { onShowInSearchCallback(); }, nullptr);
@ -802,6 +804,9 @@ bool LLPanelProfileSecondLife::postBuild()
mPayButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("pay")); }, nullptr);
mIMButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("im")); }, nullptr);
// </FS:Ansariel>
// <AS:Chanayane> Preview button
mPreviewButton->setCommitCallback([this](LLUICtrl*, void*) { onCommitMenu(LLSD("preview")); }, nullptr);
// </AS:Chanayane>
mGroupList->setDoubleClickCallback([this](LLUICtrl*, S32 x, S32 y, MASK mask) { LLPanelProfileSecondLife::openGroupProfile(); });
mGroupList->setReturnCallback([this](LLUICtrl*, const LLSD&) { LLPanelProfileSecondLife::openGroupProfile(); });
mSaveDescriptionChanges->setCommitCallback([this](LLUICtrl*, void*) { onSaveDescriptionChanges(); }, nullptr);
@ -856,6 +861,7 @@ void LLPanelProfileSecondLife::onOpen(const LLSD& key)
mDiscardDescriptionChanges->setVisible(own_profile);
mShowInSearchCheckbox->setVisible(own_profile);
// </FS:Ansariel>
mPreviewButton->setVisible(own_profile); // <AS:Chanayane> Preview button
if (own_profile)
{
@ -1785,6 +1791,7 @@ void LLPanelProfileSecondLife::setLoaded()
//{
// mHideAgeCombo->setEnabled(true);
mShowInSearchCheckbox->setEnabled(true);
mPreviewButton->setEnabled(true); // <AS:Chanayane> Preview button
if (mHideAgeCheckbox->getVisible())
{
mHideAgeCheckbox->setEnabled(true);
@ -1801,6 +1808,10 @@ void LLPanelProfileSecondLife::updateButtons()
{
mShowInSearchCheckbox->setVisible(true);
mShowInSearchCheckbox->setEnabled(true);
// <AS:Chanayane> Preview button
mPreviewButton->setVisible(true);
mPreviewButton->setEnabled(true);
// </AS:Chanayane>
mDescriptionEdit->setEnabled(true);
}
else
@ -2104,6 +2115,32 @@ void LLPanelProfileSecondLife::onCommitMenu(const LLSD& userdata)
LLAvatarActions::report(agent_id);
}
// </FS:Ansariel>
// <AS:Chanayane> Preview button
else if (item_name == "preview")
{
mPreview = !mPreview;
mDescriptionEdit->setEnabled(!mPreview);
mDescriptionEdit->setParseHTML(mPreview);
if (mPreview) {
mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off");
if (mHasUnsavedDescriptionChanges) {
mSaveDescriptionChanges->setEnabled(false);
mDiscardDescriptionChanges->setEnabled(false);
}
mOriginalDescriptionText = mDescriptionEdit->getValue().asString();
reparseDescriptionText(mOriginalDescriptionText);
} else {
mPreviewButton->setImageOverlay("Profile_Group_Visibility_On");
if (mHasUnsavedDescriptionChanges) {
mSaveDescriptionChanges->setEnabled(true);
mDiscardDescriptionChanges->setEnabled(true);
}
reparseDescriptionText(mOriginalDescriptionText);
}
}
// </AS:Chanayane>
}
bool LLPanelProfileSecondLife::onEnableMenu(const LLSD& userdata)
@ -2222,6 +2259,13 @@ void LLPanelProfileSecondLife::setDescriptionText(const std::string &text)
mDescriptionEdit->setValue(mDescriptionText);
}
// <AS:Chanayane> Preview button
void LLPanelProfileSecondLife::reparseDescriptionText(const std::string &text)
{
mDescriptionEdit->reparseValue(text);
}
// </AS:Chanayane>
void LLPanelProfileSecondLife::onSetDescriptionDirty()
{
mSaveDescriptionChanges->setEnabled(true);
@ -2679,6 +2723,7 @@ void LLPanelProfileWeb::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e
LLPanelProfileFirstLife::LLPanelProfileFirstLife()
: LLPanelProfilePropertiesProcessorTab()
, mHasUnsavedChanges(false)
, mPreview(false) // <AS:Chanayane> Preview button
{
}
@ -2699,12 +2744,16 @@ bool LLPanelProfileFirstLife::postBuild()
mRemovePhoto = getChild<LLButton>("fl_remove_image");
mSaveChanges = getChild<LLButton>("fl_save_changes");
mDiscardChanges = getChild<LLButton>("fl_discard_changes");
mPreviewButton = getChild<LLButton>("btn_preview"); // <AS:Chanayane> Preview button
mUploadPhoto->setCommitCallback([this](LLUICtrl*, void*) { onUploadPhoto(); }, nullptr);
mChangePhoto->setCommitCallback([this](LLUICtrl*, void*) { onChangePhoto(); }, nullptr);
mRemovePhoto->setCommitCallback([this](LLUICtrl*, void*) { onRemovePhoto(); }, nullptr);
mSaveChanges->setCommitCallback([this](LLUICtrl*, void*) { onSaveDescriptionChanges(); }, nullptr);
mDiscardChanges->setCommitCallback([this](LLUICtrl*, void*) { onDiscardDescriptionChanges(); }, nullptr);
// <AS:Chanayane> Preview button
mPreviewButton->setCommitCallback([this](LLUICtrl*, void*) { onClickPreview(); }, nullptr);
// </AS:Chanayane>
mDescriptionEdit->setKeystrokeCallback([this](LLTextEditor* caller) { onSetDescriptionDirty(); });
mPicture->setCommitCallback(boost::bind(&LLPanelProfileFirstLife::onFirstLifePicChanged, this)); // <FS:Zi> Allow proper texture swatch handling
@ -2720,6 +2769,8 @@ void LLPanelProfileFirstLife::onOpen(const LLSD& key)
// Otherwise as the only focusable element it will be selected
mDescriptionEdit->setTabStop(false);
}
mPreviewButton->setVisible(getSelfProfile()); // <AS:Chanayane> Preview button
mDescriptionEdit->setParseHTML(!getSelfProfile()); // <AS:Chanayane> Fix FIRE-35185 (disables link rendering while editing picks or 1st life)
// <FS:Zi> Allow proper texture swatch handling
mPicture->setEnabled(getSelfProfile());
@ -2893,6 +2944,13 @@ void LLPanelProfileFirstLife::setDescriptionText(const std::string &text)
mDescriptionEdit->setValue(mCurrentDescription);
}
// <AS:Chanayane> Preview button
void LLPanelProfileFirstLife::reparseDescriptionText(const std::string &text)
{
mDescriptionEdit->reparseValue(text);
}
// </AS:Chanayane>
void LLPanelProfileFirstLife::onSetDescriptionDirty()
{
mSaveChanges->setEnabled(true);
@ -2949,6 +3007,33 @@ void LLPanelProfileFirstLife::onDiscardDescriptionChanges()
setDescriptionText(mCurrentDescription);
}
// <AS:Chanayane> Preview button
void LLPanelProfileFirstLife::onClickPreview()
{
mPreview = !mPreview;
mDescriptionEdit->setEnabled(!mPreview);
mDescriptionEdit->setParseHTML(mPreview);
if (mPreview) {
mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off");
if (mHasUnsavedChanges) {
mSaveChanges->setEnabled(false);
mDiscardChanges->setEnabled(false);
}
mOriginalDescription = mDescriptionEdit->getValue().asString();
reparseDescriptionText(mOriginalDescription);
} else {
mPreviewButton->setImageOverlay("Profile_Group_Visibility_On");
if (mHasUnsavedChanges) {
mSaveChanges->setEnabled(true);
mDiscardChanges->setEnabled(true);
}
reparseDescriptionText(mOriginalDescription);
}
}
// </AS:Chanayane>
void LLPanelProfileFirstLife::processProperties(void * data, EAvatarProcessorType type)
{
if (APT_PROPERTIES == type)
@ -3025,6 +3110,7 @@ void LLPanelProfileFirstLife::resetData()
// </FS:Beq>
mSaveChanges->setVisible(getSelfProfile());
mDiscardChanges->setVisible(getSelfProfile());
mPreviewButton->setVisible(getSelfProfile()); // <AS:Chanayane> Preview button
}
void LLPanelProfileFirstLife::setLoaded()
@ -3036,6 +3122,7 @@ void LLPanelProfileFirstLife::setLoaded()
mDescriptionEdit->setEnabled(true);
mPicture->setEnabled(true);
mRemovePhoto->setEnabled(mImageId.notNull());
mPreviewButton->setEnabled(true);
}
}

View File

@ -203,6 +203,9 @@ private:
void onAvatarNameCacheSetName(const LLUUID& id, const LLAvatarName& av_name);
void setDescriptionText(const std::string &text);
// <AS:Chanayane> Preview button
void reparseDescriptionText(const std::string& text);
// </AS:Chanayane>
void onSetDescriptionDirty();
void onShowInSearchCallback();
void onHideAgeCallback();
@ -266,6 +269,7 @@ private:
LLButton* mIMButton;
LLMenuButton* mOverflowButton;
// </FS:Ansariel>
LLButton* mPreviewButton; // <AS:Chanayane> Preview button
LLHandle<LLFloater> mFloaterPermissionsHandle;
LLHandle<LLFloater> mFloaterProfileTextureHandle;
@ -275,8 +279,10 @@ private:
bool mVoiceStatus;
bool mWaitingForImageUpload;
bool mAllowPublish;
bool mPreview; // <AS:Chanayane> Preview button
bool mHideAge;
std::string mDescriptionText;
std::string mOriginalDescriptionText; // <AS:Chanayane> Preview button
LLUUID mImageId;
boost::signals2::connection mAvatarNameCacheConnection;
@ -366,9 +372,13 @@ protected:
void onFirstLifePicChanged(); // <FS:Zi> Allow proper texture swatch handling
void onCommitPhoto(const LLUUID& id);
void setDescriptionText(const std::string &text);
// <AS:Chanayane> Preview button
void reparseDescriptionText(const std::string& text);
// </AS:Chanayane>
void onSetDescriptionDirty();
void onSaveDescriptionChanges();
void onDiscardDescriptionChanges();
void onClickPreview(); // <AS:Chanayane> Preview button
LLTextEditor* mDescriptionEdit;
// <FS:Zi> Allow proper texture swatch handling
@ -380,12 +390,17 @@ protected:
LLButton* mRemovePhoto;
LLButton* mSaveChanges;
LLButton* mDiscardChanges;
LLButton* mPreviewButton; // <AS:Chanayane> Preview button
LLHandle<LLFloater> mFloaterTexturePickerHandle;
std::string mCurrentDescription;
LLUUID mImageId;
bool mHasUnsavedChanges;
// <AS:Chanayane> Preview button
bool mPreview;
std::string mOriginalDescription;
// </AS:Chanayane>
};
/**

View File

@ -543,6 +543,9 @@ LLPanelProfilePick::LLPanelProfilePick()
, mIsEditing(false)
, mRegionCallbackConnection()
, mParcelCallbackConnection()
// <AS:Chanayane> Preview button
, mPreview(false)
// </AS:Chanayane>
{
}
@ -622,6 +625,11 @@ void LLPanelProfilePick::setAvatarId(const LLUUID& avatar_id)
resetDirty();
// <AS:Chanayane> Preview button
mPreviewButton->setVisible(getSelfProfile());
mPreviewButton->setEnabled(getSelfProfile());
// </AS:Chanayane>
if (getSelfProfile())
{
mPickName->setEnabled(true);
@ -645,6 +653,7 @@ bool LLPanelProfilePick::postBuild()
mCreateButton = getChild<LLButton>("create_changes_btn");
mCancelButton = getChild<LLButton>("cancel_changes_btn");
mSetCurrentLocationButton = getChild<LLButton>("set_to_curr_location_btn"); // <FS:Ansariel> Keep set location button
mPreviewButton = getChild<LLButton>("btn_preview"); // <AS:Chanayane> Preview button
mSnapshotCtrl = getChild<LLTextureCtrl>("pick_snapshot");
mSnapshotCtrl->setCommitCallback(boost::bind(&LLPanelProfilePick::onSnapshotChanged, this));
@ -658,6 +667,9 @@ bool LLPanelProfilePick::postBuild()
mCreateButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickSave, this));
mCancelButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickCancel, this));
mSetCurrentLocationButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickSetLocation, this)); // <FS:Ansariel> Keep set location button
// <AS:Chanayane> Preview button
mPreviewButton->setCommitCallback(boost::bind(&LLPanelProfilePick::onClickPreview, this));
// </AS:Chanayane>
mPickName->setKeystrokeCallback(boost::bind(&LLPanelProfilePick::onPickChanged, this, _1), NULL);
mPickName->setEnabled(false);
@ -700,7 +712,10 @@ void LLPanelProfilePick::processProperties(void* data, EAvatarProcessorType type
void LLPanelProfilePick::processProperties(const LLPickData* pick_info)
{
mIsEditing = false;
mPickDescription->setParseHTML(true);
// <AS:Chanayane> Fix FIRE-35185 (disables link rendering while editing picks or 1st life)
//mPickDescription->setParseHTML(true);
mPickDescription->setParseHTML(!getSelfProfile());
// </AS:Chanayane>
mParcelId = pick_info->parcel_id;
setSnapshotId(pick_info->snapshot_id);
if (!getSelfProfile())
@ -752,6 +767,13 @@ void LLPanelProfilePick::setPickDesc(const std::string& desc)
mPickDescription->setValue(desc);
}
// <AS:Chanayane> Preview button
void LLPanelProfilePick::reparseDescription(const std::string& desc)
{
mPickDescription->reparseValue(desc);
}
// </AS:Chanayane>
void LLPanelProfilePick::setPickLocation(const std::string& location)
{
getChild<LLUICtrl>("pick_location")->setValue(location);
@ -848,6 +870,28 @@ void LLPanelProfilePick::onClickSetLocation()
}
// </FS:Ansariel>
// <AS:Chanayane> Preview button
void LLPanelProfilePick::onClickPreview()
{
mPreview = !mPreview;
if (mPreview) { // Then we switch to preview mode
mPreviewButton->setImageOverlay("Profile_Group_Visibility_Off");
mOriginalPickText = mPickDescription->getValue().asString();
mPickDescription->setEnabled(!mPreview);
mPickDescription->setParseHTML(mPreview);
reparseDescription(mOriginalPickText);
enableSaveButton(false);
} else { // we switch to edit mode, restoring the dirty state if necessary
mPreviewButton->setImageOverlay("Profile_Group_Visibility_On");
mPickDescription->setEnabled(!mPreview);
mPickDescription->setParseHTML(mPreview);
reparseDescription(mOriginalPickText);
enableSaveButton(isDirty()); // re-check if whole pick is dirty
}
}
// </AS:Chanayane>
void LLPanelProfilePick::onClickSave()
{
if (mRegionCallbackConnection.connected())

View File

@ -173,6 +173,9 @@ public:
*/
virtual void setSnapshotId(const LLUUID& id);
virtual void setPickDesc(const std::string& desc);
// <AS:Chanayane> Preview button
virtual void reparseDescription(const std::string& desc);
// </AS:Chanayane>
virtual void setPickLocation(const std::string& location);
virtual void setPosGlobal(const LLVector3d& pos) { mPosGlobal = pos; }
@ -215,6 +218,13 @@ public:
void onClickSetLocation();
// <FS:Ansariel>
// <AS:Chanayane> Preview button
/**
* Callback for "Preview" button click
*/
void onClickPreview();
// </AS:Chanayane>
/**
* Callback for "Save" and "Create" button click
*/
@ -241,6 +251,7 @@ protected:
LLButton* mSaveButton;
LLButton* mCreateButton;
LLButton* mCancelButton;
LLButton* mPreviewButton; // <AS:Chanayane> Preview button
LLVector3d mPosGlobal;
LLUUID mParcelId;
@ -254,6 +265,10 @@ protected:
bool mLocationChanged;
bool mNewPick;
bool mIsEditing;
// <AS:Chanayane> Preview button
bool mPreview;
std::string mOriginalPickText;
// </AS:Chanayane>
void onDescriptionFocusReceived();
};

View File

@ -435,9 +435,13 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("emoji_picker", "floater_emoji_picker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEmojiPicker>);
LLFloaterReg::add("emoji_complete", "floater_emoji_complete.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEmojiComplete>);
LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>);
LLFloaterReg::add("env_fixed_environmentent_water", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentWater>);
LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentSky>);
// <FS:William_W:EnvFileReplace> [PhotoTools] Use FS specific XML for Fixed Environment Floater
//LLFloaterReg::add("env_fixed_environmentent_water", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentSky>); // Commenting out original LL line
LLFloaterReg::add("env_fixed_environmentent_water", "floater_fs_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentWater>); // Using FS specific floater XML
// <FS:William_W:EnvFileReplace> [PhotoTools] Use FS specific XML for Fixed Environment Floater
//LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentSky>); // Commenting out original LL line
LLFloaterReg::add("env_fixed_environmentent_sky", "floater_fs_fixedenvironment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFixedEnvironmentSky>); // Using FS specific floater XML
LLFloaterReg::add("env_adjust_snapshot", "floater_adjust_environment.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvironmentAdjust>);
@ -652,7 +656,9 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("money_tracker", "floater_fs_money_tracker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSMoneyTracker>);
LLFloaterReg::add("particle_editor","floater_particle_editor.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<ParticleEditor>);
LLFloaterReg::add("performance", "floater_fs_performance.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FSFloaterPerformance>);
LLFloaterReg::add(PHOTOTOOLS_FLOATER, "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FloaterQuickPrefs>);
// <FS:William_W:FixPhototoolsTypo> [PhotoTools] Corrected typo in Phototools floater registration - using string literal instead of PHOTOTOOLS_FLOATER constant (likely intended).
// LLFloaterReg::add(PHOTOTOOLS_FLOATER, "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FloaterQuickPrefs>); // Original line with likely typo
LLFloaterReg::add("phototools", "floater_phototools.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FloaterQuickPrefs>); // Corrected line - using string literal "phototools"
LLFloaterReg::add("phototools_camera", "floater_phototools_camera.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCamera>);
LLFloaterReg::add("quickprefs", "floater_quickprefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<FloaterQuickPrefs>);
LLFloaterReg::add("region_tracker", "floater_region_tracker.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<ALFloaterRegionTracker>);

View File

@ -8637,7 +8637,9 @@ class LLPromptShowURL : public view_listener_t
{
LLSD payload;
payload["url"] = url;
LLNotificationsUtil::add(alert, LLSD(), payload, callback_show_url);
LLSD args;
args["UNTRUSTED_URL"] = url;
LLNotificationsUtil::add(alert, args, payload, callback_show_url);
}
// </FS:Ansariel>
}

View File

@ -2929,10 +2929,7 @@ bool LLViewerShaderMgr::loadShadersDeferred()
gRlvSphereProgram.mFeatures.isDeferred = true;
gRlvSphereProgram.mShaderFiles.clear();
gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvV.glsl", GL_VERTEX_SHADER));
if (gGLManager.mGLVersion >= 4.5f)
gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER));
else
gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvFLegacy.glsl", GL_FRAGMENT_SHADER));
gRlvSphereProgram.mShaderFiles.push_back(make_pair("deferred/rlvF.glsl", GL_FRAGMENT_SHADER));
gRlvSphereProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
success = gRlvSphereProgram.createShader();
}

View File

@ -103,7 +103,9 @@ void LLWeb::loadURLExternal(const std::string& url, bool async, const std::strin
LLSD payload;
payload["url"] = url;
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, boost::bind(on_load_url_external_response, _1, _2, async));
LLSD args;
args["UNTRUSTED_URL"] = url;
LLNotificationsUtil::add( "WebLaunchExternalTarget", args, payload, boost::bind(on_load_url_external_response, _1, _2, async));
}
// static

View File

@ -354,6 +354,9 @@ bool LLPipeline::sReflectionProbesEnabled = false;
S32 LLPipeline::sVisibleLightCount = 0;
bool LLPipeline::sRenderingHUDs;
F32 LLPipeline::sDistortionWaterClipPlaneMargin = 1.0125f;
LLVector3 LLPipeline::sLastFocusPoint={};// <FS:Beq/> FIRE-16728 focus point lock & free focus DoF
bool LLPipeline::sDoFEnabled = false;
F32 LLPipeline::sVolumeSAFrame = 0.f; // ZK LBG
bool LLPipeline::sRenderParticles; // <FS:LO> flag to hold correct, user selected, status of particles
@ -4480,6 +4483,48 @@ void LLPipeline::recordTrianglesDrawn()
add(LLStatViewer::TRIANGLES_DRAWN, LLUnits::Triangles::fromValue(count));
}
// <FS:Beq> FIRE-32023 Focus Point Rendering
void LLPipeline::renderFocusPoint()
{
static LLCachedControl<bool> render_focus_point_crosshair(gSavedSettings, "FSFocusPointRender", false);
if ( sDoFEnabled && render_focus_point_crosshair && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
{
gDebugProgram.bind();
LLVector3 focus_point = sLastFocusPoint;
F32 size = 0.02f;
LLGLDepthTest gls_depth(GL_FALSE);
gGL.pushMatrix();
gGL.translatef(focus_point.mV[VX], focus_point.mV[VY], focus_point.mV[VZ]);
gGL.begin(LLRender::LINES);
if (LLPipeline::FSFocusPointLocked)
{
gGL.color4f(1.0f, 0.0f, 0.0f, 0.5f);
}
else
{
gGL.color4f(1.0f, 1.0f, 0.0f, 0.5f);
}
gGL.vertex3f(-size, 0.0f, 0.0f);
gGL.vertex3f(size, 0.0f, 0.0f);
// Y-axis (Green)
gGL.vertex3f(0.0f, -size, 0.0f);
gGL.vertex3f(0.0f, size, 0.0f);
// Z-axis (Blue)
gGL.vertex3f(0.0f, 0.0f, -size);
gGL.vertex3f(0.0f, 0.0f, size);
gGL.end();
gGL.popMatrix();
gGL.flush();
gDebugProgram.unbind();
}
}
// </FS:Beq>
void LLPipeline::renderPhysicsDisplay()
{
if (!hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PHYSICS_SHAPES))
@ -8121,14 +8166,14 @@ bool LLPipeline::renderSnapshotFrame(LLRenderTarget* src, LLRenderTarget* dst)
void LLPipeline::renderDoF(LLRenderTarget* src, LLRenderTarget* dst)
{
{
bool dof_enabled =
sDoFEnabled = // <FS:Beq/> // FIRE-32023 Render focus point
(RenderDepthOfFieldInEditMode || !LLToolMgr::getInstance()->inBuildMode()) &&
RenderDepthOfField &&
!gCubeSnapshot;
gViewerWindow->setup3DViewport();
if (dof_enabled)
if (sDoFEnabled) // <FS:Beq/> // FIRE-32023 Render focus point
{
LL_PROFILE_GPU_ZONE("dof");
LLGLDisable blend(GL_BLEND);
@ -8141,10 +8186,10 @@ void LLPipeline::renderDoF(LLRenderTarget* src, LLRenderTarget* dst)
LLVector3 focus_point;
// <FS:Beq> FIRE-16728 focus point lock & free focus DoF - based on a feature developed by NiranV Dean
static LLVector3 last_focus_point{};
if (LLPipeline::FSFocusPointLocked && !last_focus_point.isExactlyZero())
if (LLPipeline::FSFocusPointLocked && !sLastFocusPoint.isExactlyZero())
{
focus_point = last_focus_point;
focus_point = sLastFocusPoint;
}
else
{
@ -8191,7 +8236,7 @@ void LLPipeline::renderDoF(LLRenderTarget* src, LLRenderTarget* dst)
}
// <FS:Beq> FIRE-16728 Add free aim mouse and focus lock
last_focus_point = focus_point;
sLastFocusPoint = focus_point;
// </FS:Beq>
LLVector3 eye = LLViewerCamera::getInstance()->getOrigin();
F32 target_distance = 16.f;
@ -8489,6 +8534,8 @@ void LLPipeline::renderFinalize()
gDeferredPostNoDoFNoiseProgram.unbind();
gGL.setSceneBlendType(LLRender::BT_ALPHA);
renderFocusPoint(); // <FS:Beq/> FIRE-32023 render focus point
if (hasRenderDebugMask(LLPipeline::RENDER_DEBUG_PHYSICS_SHAPES))
{

View File

@ -291,6 +291,7 @@ public:
void renderGLTFObjects(U32 type, bool texture = true, bool rigged = false);
void renderAlphaObjects(bool rigged = false);
void renderFocusPoint(); // <FS:Beq/> FIRE-32023 Add focus point rendering
void renderMaskedObjects(U32 type, bool texture = true, bool batch_texture = false, bool rigged = false);
void renderFullbrightMaskedObjects(U32 type, bool texture = true, bool batch_texture = false, bool rigged = false);
@ -698,7 +699,8 @@ public:
// [SL:KB] - Patch: Render-TextureToggle (Catznip-4.0)
static bool sRenderTextures;
// [/SL:KB]
static LLVector3 sLastFocusPoint;// <FS:Beq/> FIRE-16728 focus point lock & free focus DoF
static bool sDoFEnabled;// <FS:Beq/> FIRE-32023 focus point render
static LLTrace::EventStatHandle<S64> sStatBatchSize;
class RenderTargetPack

View File

@ -109,10 +109,12 @@
<combo_box.item value="filter_type_scripts" label="Script" />
<combo_box.item value="filter_type_sounds" label="Suoni" />
<combo_box.item value="filter_type_textures" label="Texture" />
<combo_box.item value="filter_type_snapshots" label="Fotografie" />
<combo_box.item value="filter_type_snapshots" label="Foto" />
<combo_box.item value="filter_type_meshes" label="Modelli mesh" />
<combo_box.item value="filter_type_materials" label="Materiali" />
<combo_box.item value="filter_type_settings" label="Ambienti" />
<combo_box.item value="filter_type_folders" label="Cartelle" />
<combo_box.item value="filter_type_coalesced" label="Solo multi-oggetto" />
<combo_box.item value="filter_type_custom" label="Personalizzato..." />
</combo_box>
<menu_button tool_tip="Mostra opzioni di visibilità per la ricerca" name="options_visibility_btn" />

View File

@ -1698,6 +1698,7 @@ Davam edilsin?
<notification name="WebLaunchExternalTarget">
Bu məzmuna baxmaq üçün brauzer açılsın?
Naməlum mənbələrdən veb saytların açılması kompüterinizə zərər verə bilər
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Veb səhifəyə baxmaq üçün brauzeri işə salın" name="okcancelignore" notext="Ləğv et" yestext="Bəli"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -630,6 +630,7 @@ Du skal genstarte [APP_NAME] for at installere denne opdatering.
</notification>
<notification name="WebLaunchExternalTarget">
Ønsker du at åbne din web browser for at se dette indhold?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Start min browser for at se hjemmesider" name="okcancelignore" notext="Cancel" yestext="OK"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Fixed Environment" title="Festgelegte Umgebung">
<string name="edit_sky">
Himmel bearbeiten:
</string>
<string name="edit_water">
Wasser bearbeiten:
</string>
<layout_stack name="floater_stack">
<layout_panel name="info_panel">
<text name="info_panel_label">
Name:
</text>
</layout_panel>
<layout_panel name="button_panel">
<layout_stack name="button_bar_ls">
<layout_panel name="load_btn_lp">
<button label="Laden" name="btn_load" width="60" tool_tip="Einstellungen aus dem Inventar laden"/>
<button label="Import." name="btn_import" width="60" tool_tip="Alte Einstellungen von Datenträger importieren."/>
<button label="Speichern" name="btn_commit" width="70"/>
<button label="Abbrechen" name="btn_cancel" tool_tip="Zur zuletzt gespeicherten Version zurückkehren"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</floater>

View File

@ -10,18 +10,21 @@
</panel>
<panel name="P_WL_Sky_Water">
<text name="WL Sky" tool_tip="Voreinstellungen für den Himmel.">
<text name="WL Sky" tool_tip="Voreinstellungen für die atmosphärische auswählen und verwalten.">
Himmel
</text>
<text name="WL Water" tool_tip="Voreinstellungen für Wasser.">
<text name="WL Water" tool_tip="Voreinstellungen für Wasser auswählen, um Reflexionen und Oberflächen-Eigenschaften zu bearbeiten.">
Wasser
</text>
<text name="Day Cycle" tool_tip="Voreinstellungen für den Tageszyklus.">
<text name="Day Cycle" tool_tip="Voreinstellungen für den Tageszyklus verwalten, um zeitbasierte Umgebungsveränderungen zu kontrollieren.">
Tageszykl.
</text>
<button name="btn_personal_lighting" label="Persönliche Beleuchtung..."/>
<button name="ResetToRegionDefault" tool_tip="Setzt die Umgebungseinstellungen auf die gemeinsame Umgebung zurück."/>
<button name="PauseClouds" label="Wolken pausieren" tool_tip="Pausiert die Wolken-Animation."/>
</panel>
<panel name="P_WL_Sky_Water_2">
<button name="btn_personal_lighting" label="Persönl. Beleuchtung" tool_tip="Öffnet das Fenster Persönliche Beleuchtung. Dort können temporäre Anpassung an die aktuelle Umgebung vorgenommen werden. Dies ist hilfreich für Fotografie oder um die Umgebung den eigenen Wünschen anzupassen. Es können KEINE eigenen Umgebungen erstellt noch die Änderungen gespeichert werden."/>
<button name="ResetToRegionDefault" tool_tip="Setzt die Umgebungseinstellungen auf die Standard-Umgebung der Region zurück."/>
<button name="PauseClouds" label="Wolken pausieren" tool_tip="Pausiert die Wolken-Animation für statische Kompositionen des Himmels."/>
</panel>
<panel name="P_Q_Windlights">
@ -29,55 +32,89 @@
Standard-Umgebungen
</text>
<view_border name="horiz_separator1"/>
<button name="Sunrise" label="Sonnenaufgang"/>
<button name="Noon" label="Mittag"/>
<button name="Sunset" label="Sonnenuntergang"/>
<button name="Midnight" label="Mitternacht"/>
<button name="Revert to Region Default" label="Gemeinsame Umgebung"/>
<button name="Sunrise" label="Sonnenaufgang" tool_tip="Setzt die Beleuchtungsverhältnisse der Umgebung auf Sonnenaufgang."/>
<button name="Noon" label="Mittag" tool_tip="Beleuchtung anpassen, um die Helligkeit zur Mittagszeit zu simulieren."/>
<button name="Sunset" label="Sonnenuntergang" tool_tip="Beleuchtungsverhältnisse für Sonnenuntergang für warme, goldene Farbtöne setzen."/>
<button name="Midnight" label="Mitternacht" tool_tip="Auf Nacht-Einstellungen für Umgebung mit schwachen Lichtverhältnissen wechseln."/>
<button name="Revert to Region Default" label="Gemeinsame Umgebung" tool_tip=""/>
</panel>
<panel name="P_WL_Presets">
<text name="T_WL_Presets" tool_tip="Einen der nachfolgenden Button klicken, um eine neue Voreinstellung zu erzeugen oder eine existierende zu bearbeiten.">
WL-Voreinstellungen
Umgebungseinstell.
</text>
<button name="new_sky_preset" label="Neuer Himmel"/>
<button name="edit_sky_preset" label="Himmel bearbeiten"/>
<button name="new_water_preset" label="Neues Wasser"/>
<button name="edit_water_preset" label="Wasser bearbeiten"/>
<button name="new_sky_preset" label="Neuer Himmel" tool_tip="Neue Voreinstellung basierend auf den aktuell geladenen Einstellungen für den Himmel erstellen."/>
<button name="new_water_preset" label="Neues Wasser" tool_tip="Neue Voreinstellung basierend auf den aktuell geladenen Einstellungen für das Wasser erstellen."/>
<button name="new_day_preset" label="Neuer Tag" tool_tip="Neue Voreinstellung basierend auf den aktuell geladenen Einstellungen für den Tag erstellen."/>
</panel>
<panel name="P_W_Reflections">
<text name="T_W_Reflections">
Einstellungen Wasser-Reflektionen
Reflexionseinstellungen
</text>
</panel>
<panel name="P_W_R_Types">
<text name="T_W_R_Types" tool_tip="Legt fest, was in den Wasser-Reflektionen sichtbar ist.">
Typ
<panel name="P_R_Res">
<check_box label="Transparentes Wasser" name="TransparentWater" tool_tip="Stellt Wasser transparent dar. Falls diese Einstellung deaktiert ist, wird Wasser undurchsichtig und mit einer einfachen Textur versehen dargestellt."/>
<check_box label="Screen Space Reflections aktivieren" name="ScreenSpaceReflections" tool_tip="Aktiviert Reflexionen basierend auf der aktuellen Ansicht. Erzeugt realistische Relexionen für Objekte innerhalb des Kamera-Sichtfelds, aber kann Details außerhalb versäumen. Kann die Performance abhängig von der Komplexität der Szene beeinflussen."/>
<check_box label="Spiegelung aktivieren" name="Mirrors" tool_tip="Aktiviert Spiegel-Reflexionen in Echtzeit. Spiegelt die Umgebung akkurat inklusive Objekte und Avatare, aber kann die Performance signifikant beinflussen."/>
<check_box label="Auswahl Reflexionstests aktivieren" name="checkbox select probes" tool_tip="Aktiviert das Auswählen und Inspizieren von Reflexionstests in der Szene."/>
</panel>
<panel name="P_R_Res_2">
<text name="ReflectionDetailText" tool_tip="Legt das Detaillevel in Reflexionen fest. „Nur statisch“ reflektiert nur nicht-bewegliche Objekte, während höhrere Einstellungen dynamische Objekte und Reflexionen in Echtzeit einschließen.">
Reflexionsdetail
</text>
<combo_box name="Reflections">
<combo_box.item label="Minimal" name="0"/>
<combo_box.item label="Terrain und Bäume" name="1"/>
<combo_box.item label="Alle statischen Objekte" name="2"/>
<combo_box.item label="Alle Avatare und Objekte" name="3"/>
<combo_box.item label="Alles" name="4"/>
<combo_box name="ReflectionDetail">
<combo_box.item label="Nur statisch" name="0"/>
<combo_box.item label="Statisch &amp; Dynamisch" name="1"/>
<combo_box.item label="Echtzeit" name="2"/>
</combo_box>
<text name="ReflectionProbeText" tool_tip="Legt fest, wieviel der Szene durch Reflexionen abgedeckt wird. „Nur manuelle“ reflektiert nur ausgewählte Objekte, während „Komlette Szene“ alles in der aktuellen Ansicht einschließt.">
Reflexionsumfang:
</text>
<combo_box name="ReflectionLevel">
<combo_box.item label="Keiner" name="0"/>
<combo_box.item label="Nur manuelle" name="1"/>
<combo_box.item label="Manuelle &amp; Terrain" name="2"/>
<combo_box.item label="Komplette Szene" name="3"/>
</combo_box>
<text name="MirrorResolutionText" tool_tip="Legt die Auflösung für Spiegelungen fest. Höhere Werte erzeugen schärfere Reflexionen, benötigen aber mehr Rechenleistung.">
Spiegelungsauflösung:
</text>
<combo_box name="MirrorResolution">
<combo_box.item label="256" name="0"/>
<combo_box.item label="512" name="1"/>
<combo_box.item label="1024" name="2"/>
<combo_box.item label="2048" name="3"/>
</combo_box>
<text name="HeroProbeUpdateText" tool_tip="Legt fest, wie häufig Spiegel-Reflexionen aktualisiert werden. Höhere Einstellungen bieten gleichmäßigere Reflexionen, können aber die Performance beeinträchtigen.">
Aktualisierung Spiegelung:
</text>
<combo_box name="HeroProbeUpdateRate">
<combo_box.item label="Niedrig" name="6"/>
<combo_box.item label="Mittel" name="3"/>
<combo_box.item label="Hoch" name="1"/>
<combo_box.item label="Ultra" name="0"/>
</combo_box>
<text name="Probe_Resolution" tool_tip="Definiert die Auflösung von Reflexionstests. Höhere Auflösungen bieten detalliertere Reflexionen, könen aber den Speicherverbrauch erhöhen und benötigen einen Neustart, um wirksam zu werden. Werte über 128 können signifikant mehr Videospeicher verbrauchen und die Performance auf Systemen mit begrenzten GPU-Ressourcen beinträchtigen.">
Test-Auflösung (Neustart)
</text>
<combo_box name="Probe_Resolution_Combo">
<combo_box.item label="64" name="0"/>
<combo_box.item label="128" name="1"/>
<combo_box.item label="256" name="2"/>
<combo_box.item label="512" name="3"/>
<combo_box.item label="1024" name="4"/>
<combo_box.item label="2048" name="5"/>
</combo_box>
</panel>
<panel name="P_R_Res">
<text name="T_R_Res" tool_tip="Legt die Qualität der Wasserreflektionen fest.">
Qualität
<panel name="P_R_Res_3">
<text name="T_Reflection_Distance" tool_tip="Legt die Reichweite für die Sichtbarkeit von Reflexionen fest und beeinflusst das Reflexionsdetail und die Performance von Reflexionstests, Spiegelungen und Screen Space Reflections. Höhere Werte vergrößern die Distanz, in der Reflexionen sichtbar sind, verbessern das Detail, aber erhöhen die Performance-Kosten.">
Reflex.-Dist.
</text>
<combo_box name="ReflectionRescombo">
<combo_box.item label="Annehmbar" name="0"/>
<combo_box.item label="Gut" name="1"/>
<combo_box.item label="Sehr gut" name="2"/>
<combo_box.item label="Exzellent" name="3"/>
<combo_box.item label="Überragend" name="4"/>
<combo_box.item label="Lebensecht" name="5"/>
</combo_box>
<check_box label="Transparentes Wasser" name="TransparentWater" tool_tip="Stellt Wasser transparent dar. Falls diese Einstellung deaktiert ist, wird Wasser undurchsichtig und mit einer einfachen Textur versehen dargestellt."/>
<button name="Reset_Reflection_Distance" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
</panel>
@ -89,32 +126,42 @@
</panel>
<panel name="P_L_S_Settings">
<check_box label="Angehängte Lichter aktivieren (Facelights)" name="Render Attached Lights" tool_tip="Diese Einstellung aktiviert alle Lichter wie zum Beispiel Facelights, die von Avataren getragen werden. Nützlich, falls Facelights deaktiviert werden sollen."/>
</panel>
<panel name="P_Shadows">
<text name="T_Shadow_Types" tool_tip="Diese Einstellung hat nur Einfluss auf Schatten, die von Lichtquellen erzeugt werden. Die Lichter funktionieren ansonsten ganz normal. Punktuelle Beleuchtung (Lichter, die keine Projektion aktiviert haben) erzeugt immer eine Art von Schatten, werfen diesen aber auf keine Oberfläche. Es ist zu beachten, dass unabhängig von der gewählten Einstellung Texturen, die von Projektoren ausgehen, weiterhin aktiviert sind.">
Schatten- Typen
<text name="T_Shadow_Types" tool_tip="Kontrolliert den Schattentyp, der von Lichtquellen erzeugt wird. Punkt-Lichter ohne Projektionen erzeugen Lichteffekte, aber werfen keine Schatten. Projizierte Light-Texturen bleiben unabhängig von dieser Einstellung sichtbar.">
Schatten-Typen
</text>
<combo_box name="ShadowDetail">
<combo_box.item label="Keine" name="0"/>
<combo_box.item label="Sonne/Mond" name="1"/>
<combo_box.item label="Sonne/Mond + Projektoren" name="2"/>
</combo_box>
<text name="local lights_label" tool_tip="Legt die Anzahl an gleichzeitig dargestellten Lichtquellen fest. Ein Wert von 0 deaktiviert alle lokalen Lichtqzellen. Höhere Werte können die Performance in komplexen Szene beeinträchtigen. Erfordert Neustart.">
Punkt. Beleucht. (Neust.)
</text>
<combo_box name="LocalLightsDetail">
<combo_box.item label="Vollständig (Standard)" name="3"/>
<combo_box.item label="Reduziert" name="2"/>
<combo_box.item label="Nur Sonne/Mond" name="1"/>
</combo_box>
<check_box label="Angehängte Lichter aktivieren (Facelights)" name="Render Attached Lights" tool_tip="Diese Einstellung aktiviert alle Lichter wie zum Beispiel Facelights, die von Avataren getragen werden. Nützlich, falls Facelights deaktiviert werden sollen."/>
</panel>
<panel name="P_Shadow_Res">
<text name="T_Shadow_Res" tool_tip="Schatten-Qualität: Eine besonders wichtige Einstellung. Sie legt die Qualität der Schatten fest. Zudem ist sie sehr recheninstensiv und beansprucht den Computer dementsprechend. Sofern kein Shooting stattfindet, sollte dieser Wert möglichst klein sein. Während den Vorbereitungen zu einem Shooting empfiehlt sich, den Wert auf 1.0 zu setzen. Anschließend den Regler langsam nach rechts bewegen, um den Wert zu erhöhen. Dabei sollte die Framerate im Auge behalten werden. Es ist hilfreich, das Statistik-Fenster hierfür zu aktivieren. HINWEIS: Wird die Einstellung zu hoch gewählt oder zu schnell bewegt, kann dies zum Absturz des Viewers führen!">
Sch.Qual.
<text name="T_Local_Lights" tool_tip="Anzahl an lokalen Lichtquellen, die dargestellt werden sollen.">
Lok. Lichter
</text>
<button name="Reset_Local_Lights" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Shadow_Res" tool_tip="Legt die Qualität und Schärfe der Schatten fest. Höhere Werte erzeugen detailliertere Schatten, können die Performance aber signifikant beeinträchtigen, insbesondere in komplexen Szenen. Im normalen Betrieb sollte der Wert gering gehalten werden, um eine gleichmäßige Performance er ermöglichen. Während den Vorbereitungen zu einem Shooting empfiehlt sich, den Wert auf 1.0 zu setzen. Anschließend den Regler langsam nach rechts bewegen, um den Wert zu erhöhen. Dabei sollte die Framerate im Auge behalten werden. Es ist hilfreich, das Statistik-Fenster hierfür zu aktivieren. HINWEIS: Wird die Einstellung zu hoch gewählt oder zu schnell bewegt, kann dies zum Absturz des Viewers führen!">
Sch.Aufl.
</text>
<button name="Reset_Shadow_Res" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Shd_Clarity" tool_tip="Dies ist eine sehr wichtige Einstellung. Sie bestimmt, wie klar die Sonne oder der Mond dargestellt wird. Sie sollte zuerst gesetzt werden, bevor die unten folgenden Einstellungen angepasst werden. Bei einem Wert für „Sch.Qual.“ von größer 1.0 sollte der Wert für „Sch.Klarh.“ so verändert werden, bis die bestmögliche Schärfe erreicht wird. Hinweis: Die Klarheit von Schatten ist direkt abhängig von der Position der Kamera und der Sonne bzw. des Mondes. Jedes Mal, wenn die Kamera oder die Sonne oder der Mond bewegt wird, sollte die Einstellung daher angepasst werden. Um die Anpassung zu vereinfachen, sollte vorher der Wert für „Sch.Unsch.“ auf 0.0 gesetzt werden.">
<text name="T_Shd_Clarity" tool_tip="Legt fest, wie klar die Sonne oder der Mond dargestellt wird. Sie sollte erst gesetzt werden, nachdem die Schattenauflösung („Sch.Aufl.“) auf einen Wert um 1.0 gesetzt wurde, um optimale Ergebnisse zu erzielen. Anschließend langsam den Wert für Schattenklarheit erhöhen, bis die gewünschte Schärfe erreicht ist. Die Klarheit von Schatten ist direkt abhängig von der Position der Kamera und der Sonne bzw. des Mondes. Jedes Mal, wenn die Kamera oder die Sonne oder der Mond bewegt wird, sollte die Einstellung daher angepasst werden. Um die Anpassung zu vereinfachen, sollte vorher der Wert für „Sch.Unsch.“ temporär auf 0.0 gesetzt werden, um den Effekt der Anpassung besser erkennen zu können.">
Sch.Klarh.
</text>
<button name="Shd_Clarity_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Blur_Size" tool_tip="Je höher der Wert ist, desto weicher werden die Schattenränder. Ein Wert von 0 erzeugt die höchstmögliche Schärfe. Dieser Wert ist direkt mit der darunter verbunden. Sie erlaubt es, denn insgesamt möglichen Wert an Schattenunschärfe zu setzen. Bei einem Wert von 4.0 kann „Sch.Weich.“ dazu verwendet werden, die Schattenunschärfe unabhängig von der Ambient Occlusion angepasst werden. HINWEIS: Damit diese Einstellung eine Auswirkung hat, muss „Ambient Occlusion“ aktiviert sein.">
<text name="T_Blur_Size" tool_tip="Legt fest, wie weich Schattenränder dargestellt werden, und erlaubt es, entweder scharfe, gut-definierte Schatten oder weiche, unscharfe Schatten zu erzeugen. Ein höherer Wert erzeugt verschwommene Schatten-Kanten, während ein Wert von 0 die höchstmögliche Schärfe erzeugt. Dieser Wert arbeitet in Verbindung mit Schatten-Weichzeichnung („Sch.Weich.“), die ein zusätzliches Feintuning von Schatten-Weichheit ermöglicht, insbesondere wenn Schatten-Unschärfe auf einen höheren Wert gesetzt ist (z.B. um 4.0). Für präzise Anpassungen sollte sollte Schattenunschärfe zunächst temporär auf 0.0 gesetzt werden, um Änderungen in der Klarheit beim Anpassen erkennen zu können. Hinweis: Damit diese Einstellung eine Auswirkung hat, muss „Ambient Occlusion“ aktiviert sein.">
Sch.Unsch.
</text>
<button name="Blur_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
@ -124,16 +171,21 @@
</text>
<button name="Shd_Soften_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Blur_Dist" tool_tip="Legt den Punkt fest, ab dem Schatten relativ zur Kamera zu verschwimmen beginnen. Je kleiner der Wert, desto näher an der Kamera beginnen die Schatten unscharf zu werden. HINWEIS: Damit diese Einstellung eine Auswirkung hat, muss „Ambient Occlusion“ aktiviert sein.">
<text name="T_Blur_Dist" tool_tip="Legt den Punkt fest, ab dem Schatten relativ zur Kamera zu verschwimmen beginnen. Je kleiner der Wert, desto näher an der Kamera beginnen die Schatten unscharf zu werden. „Ambient Occlusion“ muss hierfür aktiviert sein.">
Unsch.Dist.
</text>
<button name="Blur_Dist_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_FOV_Cutoff" tool_tip="Legt den Punkt im Sichtbereich fest, an dem der Viewer zwischen orthogonaler und perspektivischer Projektion wechselt. Falls Schatten zackig und zerklüftet aussehen, sollte diese Einstellung justiert werden. Zusätzlich kann das justieren der XYZ-Werte für die Debug-Einstellung „RenderShadowSplitExponent“ äußerst hilfreich sein.">
<text name="T_FOV_Cutoff" tool_tip="Legt den Punkt im Sichtbereich fest, an dem der Viewer zwischen orthogonaler und perspektivischer Projektion wechselt. Anpassen, um zackige und zerklüftete Schatten zu reduzieren.">
FOV Cutoff
</text>
<button name="FOV_Cutoff_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Spot_Cutoff" tool_tip="Legt den Versatz von Schatten fest, die von Scheinwerfern erzeugt werden, um Artefakte wie Schatten-Akne oder unerwünschte Linien auf Oberflächen zu reduzieren.">
Sch.Vers.
</text>
<button name="Spot_Cutoff_Reset" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Shd_Bias">
Sch. Bias
</text>
@ -147,38 +199,48 @@
</panel>
<panel name="P_Amb_Occ_Settings">
<check_box label="Ambient Occlusion aktivieren (Tiefenwahrn.)" name="UseSSAO" tool_tip="Ambient Occlusion fügt Schattierungen zu allen Objekten hinzu. Es ist am effektivsten, wenn die Effekt- und Weichzeinungs-Einstellungen genutzt werden und kann zum Bild ein hohes Maß an Realismus hinzufügen. Dies trifft besonders dann zu, wenn Bilder mit einer Auflösung von 2048 Pixel oder mehr erzeugt werden."/>
<check_box label="Ambient Occlusion aktivieren (Tiefenwahrn.)" name="UseSSAO" tool_tip="Ambient Occlusion simuliert weiche Schatten, die in Falten, Ecken und wo Objekte dicht beieinander sind auftreten, verbessert die Tiefe und Realismus, indem nachgeahmt wird, die Umgebungslicht natürlich überdeckt wird. Während Ambient Occlusion alleine bereits effektiv arbeitet, können die Einstellungen 'Effekt' und 'AO Weich.' helfen, die Intensität und Weichheit der Schattierung zu optimieren. Ambient Occlusion trägt zu realistischeren Bildern in jeder Auflösung bei, die feinen Details sind jedoch erst bei höheren Auflösung wie 2048 Pixel und höher deutlicher zu erkennen."/>
</panel>
<panel name="P_Scale">
<text name="T_Scale" tool_tip="Legt die Sampling-Region fest, wobei größere Region genauer sind. Es kann hilfreich sein, hier einen hohen Wert einzustellen und anschließend mit etwas Schattenunschärfe den Effekt abzumildern.">
<text name="T_Scale" tool_tip="Legt die Größe der Sampling-Region für Ambient Occlusion fest. Größere Regionen erhöhen die Schatten-Genauigkeit, können aber die Performance beeinträchtigen. Wird am besten zusammen mit Schattenunschärfe verwendet, um den Effekt abzumildern.">
Skalierung
</text>
<button name="Reset_Scale" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Max_Scale" tool_tip="Legt den maximalen Bildschirmradius fest, von dem das Sample genommen wird, um Cache-Fehler der Grafikkarte und Performance-Einbußen zu verhindern. Es kann hilfreich sein, hier einen hohen Wert einzustellen und anschließend mit etwas Schattenunschärfe den Effekt abzumildern.">
<text name="T_Max_Scale" tool_tip="Legt die maximale Distanz fest, aus der Proben für Amibient Occlusion genommen werden. Höhere Werte verbessen Schattentiefe in großen Szenen, können jedoch die Performance verringern. Wird am besten zusammen mit Skalierung verwendet, um den Effekt abzumildern.">
Max. Skal.
</text>
<button name="Reset_Max_Scale" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Scaling_Factor" tool_tip="Skalierungsfaktor für den Effekt (höherer Wert = dunkler). Es kann hilfreich sein, hier einen hohen Wert einzustellen und anschließend mit etwas Schattenunschärfe den Effekt abzumildern.">
<text name="T_Scaling_Factor" tool_tip="Legt die Stärke des Effekts von Ambient Occlusion fest. Höhere Werte erzeugen dunklere, betontere Schatten in Falten und Ecken. Mit Vorsicht verwenden, um unnatürliche Verdunkelung zu vermeiden.">
Faktor
</text>
<button name="Reset_Scaling_Factor" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Effect" tool_tip="Kontrolliert den Verdunkelungeffekt von Ambient Occlusion. Der Standardwert von 0.8 erzeugt einen kaum wahrnehmbaren Effekt. Werte von 0.0 oder weniger erzeugen realistischere Ergebnisse. Hinweis: Ambient Occlusion erzeugt ein Bildrauschen, das über die Einstellung „AO Weich.“ vermindert werden kann. Zusätzlich kann der Standard Avatar-Mesh weniger gut mit hohen Effekt-Werten aussehen aufgrund der geringen Qualität der Geometrie der Avatare. Hinweis: Der kleinste Wert, der mit dem Schieber gesetzt werden kann, ist 0, während die Eingabebox negative Werte bis -10000 erlaubt.">
<text name="T_I_Max" tool_tip="Legt das maximale Helligkeitslimit für die Strahlungsstärke in Berechnungen für Ambient Occlusion fest. Dient als obere Begrenzung, um zu verhindern, dass besonders helle Bereiche den Effekt dominieren.">
Stärk.Max
</text>
<button name="Reset_I_Max" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_I_Scaling" tool_tip="Legt die Skalierung von Strahlungsstärke innerhalb von Ambient Occlusion fest und beinflusst die Lichtintensität auf die Dunkelheit von Schatten. Anpassen, um ausbalancierte Beleuchtung in hellen Szenen zu erreichen.">
Stärk.Max
</text>
<button name="Reset_I_Scaling" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Effect" tool_tip="Kontrolliert die Intensität des Verdunkelungeffekts von Ambient Occlusion, der feine Schatten in Falten, Ecken und wo sich Objekte berühren erzeugt, um Tiefe und Realismus zu erhöhen. Niedrige Werte erzeugen weichere, natürlichere Schatten, die sich nahtlos in die Umgebung einfügen und ein realistisches Aussehen erzeugen. Höhere Werte erzeugen stärkeren, dramatischeren Kontrast, wodurch ein stärkerer Effekt von Ambient Occlusion erzeugt wird, aber unnatürlich in einigen Lichtverhältnissen erscheinen kann. Diese Einstellung sollte vorsichtig angepasst werden, um übermäßig dunkle oder raue Schatten zu erzeugen, die die natürliche Beleuchtung einer Szene stören können. Für kreative oder experimentelle Effekte können negative Werte verwendet werden, um die Schattierung umzukehren und ungewöhnliche Lichteffekte zu erzeugen. Diese Einstellung wird am besten zusammen mit „AO Weich“ verwendet, um die Balance zwischen Schärfe und Weichheit zu kontrollieren.">
Effekt
</text>
<button name="Reset_Effect" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_AO_Soften" tool_tip="Legt die Weichzeichnung des Ambient-Occlusion-Effekts fest. Eine einfache Möglichkeit, diesen Wert für die spezifische Anforderung zu bestimmen, liegt daran, zunächst den Wert für „Sch.Unsch.“ auf ca. 4.0 zu setzen. Anschließend kann der Wert für die Weichzeichnung den eigenen Wünschen angepasst werden. Hinweis: Ein Wert von 0.0 deaktiviert effektiv Ambient Occlusion.">
<text name="T_AO_Soften" tool_tip="Legt die Weichzeichnung des Ambient-Occlusion-Effekts fest, um raue Kanten und Rauschen zu reduzieren. Wird am besten zusammen mit einem Wert für „Sch.Unsch.“ von ca. 4.0 für ausbalancierte Weichheit verwendet.">
AO Weich.
</text>
<button name="Reset_AO_Soften" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
</panel>
<panel name="P_DoF_Glow" label="DoF/Ltn">
<panel name="P_DoF_Glow" label="VFX">
<panel name="PT_DoF_Glow">
<text name="T_DoF">
Einstellungen Schärfentiefe (DoF)
@ -188,6 +250,7 @@
<panel name="P_DoF_Settings">
<check_box label="Schärfentiefe aktivieren" name="UseDepthofField" tool_tip="Diese Einstellung aktiviert die Schärfentiefe, die die Ausdehnung des Bildausschnitts festlegt, der noch scharf dargestellt wird. Falls diese Funktion nicht benötigt wird, sollte sie deaktiviert werden, um die Framerate zu erhöhen. Falls diese Funktion nicht aktiviert werden kann oder kein Effekt sichtbar ist, muss „Erweitertes Beleuchtungsmodell“ auf dem Reiter „Licht“ aktiviert werden."/>
<check_box label="Schärfentiefe-Fokus folgt Mauszeiger" name="FSFocusPointFollowsPointer" tool_tip="Der Fokus der Schärfentiefe folgt der Maus, ähnlich dem Verhalten bei der Verwendung einer Flycam. In Verbindung mit fixiertem Schärfentiefe-Fokus verwenden."/>
<button name="FocusPointRenderToggle" tool_tip="Anzeige von Fokuspunkt-Fadenkreuz umschalten. Das Fadenkreuz ist gelb falls frei, und rot falls fixiert."/>
<check_box label="Aktuelles Kamera-Sichtfeld (FOV) anzeigen" name="MIC_Show_FOV" tool_tip="Zeigt das aktuelle vertikale Sichtfeld der Kamera an. Im Viewer ist es wie im echten Leben möglich, die Brennweite der Kameralinse zu verändern. Je kleiner der Sichtbereich, desto größer die Brennweite. Eine 50mm-Linse hat ein Sichtfeld von 27.0 Grad. Siehe auch http://de.wikipedia.org/wiki/Bildwinkel für weitergehende Informationen. ACHTUNG: DIESE EINSTELLUNG SOLLTE VOR DEM FOTOGRAFIEREN AUSGESCHALTET WERDEN, DA SIE SONST AUF DEM BILD ERSCHEINT!"/>
</panel>
@ -233,6 +296,30 @@
<button name="Reset_Aspect_Ratio" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
<panel name="P_Tone_Settings">
<text name="T_Tone_Settings">
HDR-Tone-Mapping-Einstellungen
</text>
</panel>
<panel name="P_Tone_Settings_2">
<check_box label="HDR und Emissive aktivieren" name="Disable_Vintage_Mode" tool_tip="Aktiviert zusätzliche Features der Rendering-Pipeline auf neueren Maschinen, wie HDR und Emissive-Texturen auf PBR-Materialien."/>
</panel>
<panel name="P_Tone_Settings_3">
<text tool_tip="Legt den Algorithmus fest, der für HDR Tone-Mapping verwendet wird, der beinflusst, die helle und dunkle Bereiche ausbalanciert werden. Khronos Neutral erzeugt ein natürliches, neutrales Aussehen mit wenig Kontrast und minimaler Farb-Manipulation. ACES (Academy Color Encoding System) bietet reichere Farben und höheren Kontrast.">
HDR-Tonemaper-Typ
</text>
<combo_box name="CB_Tonemap_Type">
<combo_box.item label="Khronos Neutral" name="0"/>
<combo_box.item label="ACES" name="1"/>
</combo_box>
<text name="T_Tonemap_Type" tool_tip="Mix zwischen linearen und tone-gemappten Farben">
Tone-Mix
</text>
<button name="Reset_Tonemap_Type" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
<panel name="P_Glow_Settings">
<text name="T_Glow_Settings">
Einstellungen „Leuchten“
@ -240,13 +327,16 @@
</panel>
<panel name="P_Glow_Quality">
<check_box label="Leucht-Effekt aktivieren" name="UseGlow" tool_tip="Stellt Leuchteffekte dar. Stärke muss auf 0 gesetzt werden, um Leuchteffekte zu deaktiveren, falls Schatten aktiviert sind."/>
<check_box label="HDR für Leucht-Effekt aktivieren" name="GlowHDR" tool_tip="Aktiviert HDR für die Verarbeitung des Leucht-Effekts."/>
</panel>
<panel name="P_Glow_Iterations">
<text name="T_Glow_Quality" tool_tip="Legt die Qualität von Leucht-Effekt fest, wobei ein höherer Wert eine höhere Qualität bedeutet. Zwischen 8 und 10 gibt es kaum sichtbare Unterschiede.">
Qualität
</text>
<button name="Reset_Glow_Quality" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
<panel name="P_Glow_Iterations">
<text name="T_Glow_Iterations" tool_tip="Anzahl an Iterationen/Wiederholungen des Leuchtens (Höherer Wert = ausgedehnter, weicher und etwas langsamer).">
Iterationen
</text>
@ -257,25 +347,10 @@
</text>
<button name="Reset_Glow_Strength" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Luminance" tool_tip="Minimale Leuchtkraft-Intensität, die notwendig ist, damit ein Objekt als hell genug angesehen wird um zu leuchten.">
Leuchtkraft
</text>
<button name="Reset_Luminance" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Warmth" tool_tip="Menge an Wärme-Extraktion, die verwendet werden soll (im Vergleich zur Leuchtkraft-Extraktion). 0 = Kälte, 1.0 = Wärme. HAT OFTMALS WENIG ODER KEINEN EFFEKT!">
Wärme
</text>
<button name="Reset_Warmth" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Glow_Width" tool_tip="Größe des Leucht-Samples. Höherer Wert = breiteres und sanfteres Leuchten, aber eventuell pixeliger.">
Breite
</text>
<button name="Reset_Glow_Width" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_Alpha" tool_tip="Maximale Helligkeit, die das Leuchten annehmen darf.">
Alpha
</text>
<button name="Reset_Alpha" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
</panel>
@ -341,23 +416,16 @@
Him-Det.
</text>
<button name="Reset_Sky_Detail" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
<panel name="P_Vignetting">
<text name="T_VignetteX" tool_tip="Legt die Höhe des Vignette-Effekts fest.">
Vig.-Höhe
<text name="T_Sharpening" tool_tip="Legt die schärfe des Gesamtbilds mit Hilfe von Contrast-Adaptive Sharpening (CAS) fest.">
Schärfung
</text>
<button name="Reset_VignetteX" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<button name="Reset_Sharpening" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_VignetteY" tool_tip="Legt die Stärke des Vignette-Effekts fest.">
Vig.-Stärke
<text name="T_Exposure" tool_tip="Kontrolliert die Helligkeit der Szene, indem Belichtungseinstellungen einer Kamera simuliert werden.">
Belichtung
</text>
<button name="Reset_VignetteY" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<text name="T_VignetteZ" tool_tip="Legt den Multiplikator-Faktor des Vignette-Effekts fest.">
Vig.-Multipl.
</text>
<button name="Reset_VignetteZ" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
<button name="Reset_Exposure" label="S" tool_tip="Auf Standardwert zurücksetzen."/>
</panel>
<panel name="P_Render">
@ -369,15 +437,22 @@
</panel>
<panel name="P_Anti-aliasing">
<text name="T_Antialiasing_Type" tool_tip="Eine Änderung dieser Einstellung kann auf bestimmter Hardware einen Neustart erfordern.">
Anti-Aliasing-Typ:
</text>
<combo_box name="fsaa">
<combo_box.item label="Deaktiviert" name="FSAADisabled"/>
<combo_box.item label="FXAA" name="FXAA"/>
<combo_box.item label="SMAA" name="SMAA"/>
</combo_box>
<text name="T_Anti-aliasing" tool_tip="Legt fest, wie scharf und weich die Kanten von Objekten dargestellt werden. Auf High-End-Grafikkarten haben höhere Werte praktisch KEINEN Einfluss auf die Performance, auf Low-End-Grafikkarten kann ein höherer Wert die Performance verschlechtern.">
Anti-Aliasing
</text>
<combo_box name="fsaa">
<combo_box.item label="Deaktiviert (Rauere Kanten)" name="FSAADisabled"/>
<combo_box.item label="2x (Weiche Kanten)" name="2x"/>
<combo_box.item label="4x (Weichere Kanten)" name="4x"/>
<combo_box.item label="8x (Noch weicher)" name="8x"/>
<combo_box.item label="16x (Am weichsten)" name="16x"/>
<combo_box.item label="Niedrig" name="Low"/>
<combo_box.item label="Mittel" name="Medium"/>
<combo_box.item label="Hoch" name="High"/>
<combo_box.item label="Ultra" name="Ultra"/>
</combo_box>
<text name="T_Texture_Bumpiness" tool_tip="Legt die Stärke und Qualität von Normal- und Bump-Maps fest.">
Textur-Holprigkeit
@ -390,6 +465,17 @@
<combo_box.item label="Rau (stärker)" name="4"/>
<combo_box.item label="Rauer (sehr stark)" name="5"/>
</combo_box>
<text name="T_RestrictMaxTexture" tool_tip="Legt die maximale Auflösung fest, in der Texturen dargestellt werden.">
Max. Textur-Auflösung
</text>
<text name="T_AvatarDisplay" tool_tip="Legt fest, wie Avatar basierend auf Komplexität und Freundschaftsstatus dargestellt werden.">
Avatar-Anzeige:
</text>
<combo_box name="AvatarComplexityModeSelection">
<combo_box.item label="Komplexitätsbegrenzung" name="0"/>
<combo_box.item label="Freunde immer anzeigen" name="1"/>
<combo_box.item label="Nur Freunde anzeigen" name="2"/>
</combo_box>
</panel>
</panel>
@ -400,20 +486,22 @@
</text>
</panel>
<check_box label="Bounding Boxes für Lichtquellen anzeigen" name="Lights"/>
<check_box label="Lichtradius für ausgewählte Lichter anzeigen" name="Show Light Radius for Selection"/>
<check_box label="Bounding Boxes für Objekte anzeigen" name="Bounding Boxes"/>
<check_box label="Statistiken-Fenster anzeigen" name="Statistics Bar"/>
<check_box label="Detaillierte Kamerapositionsdaten anzeigen" name="Camera"/>
<check_box label="Detaillierte Texturlade-Informationen anzeig." name="Texture Console"/>
<check_box label="RGB-I-Farbwerte unter Mauszeiger anzeigen" name="Show Color Under Cursor"/>
<check_box label="Transparente Objekte in rot hervorheben" name="Highlight Transparent"/>
<check_box label="Szene als Wireframe darstellen" name="Wireframe"/>
<check_box label="Angehängte HUD-Objekte anzeigen" name="Show HUD Attachments"/>
<check_box label="Avatar verlangsamen (nur in eigenem Viewer)" name="Slow Motion Animations"/>
<button label="Aussehen aktualisieren (Rebake)" name="Rebake Texture"/>
<button label="Viewer-Fenstergröße festlegen..." name="Set Window Size..."/>
<button label="Debug-Einstellungen anzeigen" name="Debug Settings"/>
<panel name="P_Aids_Settings">
<check_box label="Bounding Boxes für Lichtquellen anzeigen" name="Lights"/>
<check_box label="Lichtradius für ausgewählte Lichter anzeigen" name="Show Light Radius for Selection"/>
<check_box label="Bounding Boxes für Objekte anzeigen" name="Bounding Boxes"/>
<check_box label="Statistiken-Fenster anzeigen" name="Statistics Bar"/>
<check_box label="Detaillierte Kamerapositionsdaten anzeigen" name="Camera"/>
<check_box label="Detaillierte Texturlade-Informationen anzeig." name="Texture Console"/>
<check_box label="RGB-I-Farbwerte unter Mauszeiger anzeigen" name="Show Color Under Cursor"/>
<check_box label="Transparente Objekte in rot hervorheben" name="Highlight Transparent"/>
<check_box label="Szene als Wireframe darstellen" name="Wireframe"/>
<check_box label="Angehängte HUD-Objekte anzeigen" name="Show HUD Attachments"/>
<check_box label="Avatar verlangsamen (nur in eigenem Viewer)" name="Slow Motion Animations"/>
<button label="Aussehen aktualisieren (Rebake)" name="Rebake Texture"/>
<button label="Viewer-Fenstergröße festlegen..." name="Set Window Size..."/>
<button label="Debug-Einstellungen anzeigen" name="Debug Settings"/>
</panel>
<panel name="P_Quick_Stats">
<text name="T_Quick_Stats"
@ -421,7 +509,7 @@
Statistiken
</text>
</panel>
<scroll_container name="statistics_scroll">
<container_view name="statistics_view">
<stat_view name="basic">

View File

@ -164,6 +164,7 @@
<menu_item_call label="Fototools" name="phototools_item_call"/>
<menu_item_call label="Kameratools" name="cameratools_item_call"/>
<menu_item_check label="Schärfentiefe-Fokus fixieren" name="lock_focus_point"/>
<menu_item_check label="Fadenkreuz für Schärfentiefe-Fokus anzeigen" name="render_focus_point"/>
</menu>
<menu_item_call label="Umgebungssuche" name="area_search"/>
<menu_item_call label="Sound-Explorer" name="Sound Explorer"/>

View File

@ -1822,6 +1822,8 @@ Fortfahren?
</notification>
<notification name="WebLaunchExternalTarget">
Möchten Sie Ihren Internetbrowser öffnen, um diesen Inhalt anzuzeigen?
Öffnen von Webseiten aus unsicherer Quelle kann Ihren Computer gefährden.
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Meinen Browser starten, um eine Webseite anzuzeigen" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Atmosphäre &amp; Beleuchtung" name="panel_fs_settings_sky_atmos">
<string name="hdr_string">
HDR-Skalierung:
</string>
<string name="brightness_string">
Helligkeit:
</string>
<string name="hdr_tooltip">
Intensität von von Belichtungseffekten wie realistischer strahlender Himmel und dynamische Belichtung. 1.0 ist Standard, 0 ist aus, Werte zwuschen 0 und 1 mischen Umgebung mit HDR.
</string>
<panel name="P_Atmosphere_Header">
<text name="T_Atmosphere_Header" value="Atmosphärische Farben"/>
</panel>
<panel name="P_Atmos_Settings">
<text name="ambient_color_label">
Farbe Umgebung:
</text>
<text name="blue_horizon_label">
Blauer Horizont:
</text>
<text name="blue_density_label">
Blau-Dichte:
</text>
</panel>
<panel name="P_Atmosphere_Header">
<text name="T_Atmosphere_Header" value="Einstellungen Atmosphäre"/>
</panel>
<panel name="P_Atmosphere_OtherSettings">
<text name="haze_horizon_label" width="120">
Dunst-Horizont:
</text>
<slider name="haze_horizon" width="151"/>
<text name="haze_density_label" width="120">
Dunst-Dichte:
</text>
<slider name="haze_density" width="151"/>
<text name="density_multiplier_label" width="120">
Dichte-Multiplikator:
</text>
<slider name="density_multip" width="151"/>
<text name="distance_multiplier_label" width="120">
Distanz-Multiplikator:
</text>
<slider name="distance_multip" width="151"/>
<text name="maximum_altitude_label" width="120">
Maximale Höhe:
</text>
<slider name="max_alt" width="151"/>
<text name="scene_gamma_label" width="120">
Helligkeit:
</text>
<slider name="scene_gamma" width="151"/>
<text name="probe_ambiance_label" tool_tip="Strahlungsintensität. Aktiviert HDR-Beleuchtungsmodell, falls nicht 0." width="120">
Umgebung Reflexionstest (HDR):
</text>
<slider name="probe_ambiance" tool_tip="Intensität von umgebungsbasierter indirekter Beleuchtung. Bei 0 HDR wird die Skala zu Helligkeit." width="151"/>
</panel>
<panel name="P_Rainbow_Header">
<text name="T_Rainbow_Header" value="Einstellungen Regenbogen und Halo"/>
</panel>
<panel name="P_Rainbow_OtherSettings">
<text name="moisture_level_label" width="120">
Feuchtigkeitslevel:
</text>
<slider name="moisture_level" width="151"/>
<text name="droplet_radius_label" width="120">
Tröpfchen-Radius:
</text>
<slider name="droplet_radius" width="151"/>
<text name="ice_level_label" width="120">
Eis-Level:
</text>
<slider name="ice_level" width="151"/>
</panel>
</panel>

View File

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Wolken" name="panel_fs_settings_sky_clouds">
<panel name="P_Clouds_Header">
<text name="T_Clouds_Header" value="Wolken-Einstellungen"/>
</panel>
<panel name="P_Atmos_Settings">
<text name="cloud_color_label">
Wolkenfarbe:
</text>
</panel>
<panel name="P_Cloud_Density">
<text name="cloud_coverage_label" width="110">
Wolkenbedeckung:
</text>
<slider name="cloud_coverage" width="161"/>
<text name="cloud_scale_label" width="110">
Wolken-Skalierung:
</text>
<slider name="cloud_scale" width="161"/>
<text name="cloud_variance_label" width="110">
Wolken-Varianz:
</text>
<slider name="cloud_variance" width="161"/>
</panel>
<panel name="P_Cloud_Density">
<text name="cloud_density_label" tool_tip="Wolken-XY/Dichte - Die X- und Y-Schieber verändern die horizontale Position aller Wolken. Mit dem D-Schieber wird die Dichte angepasst.">
Wolkendichte:
</text>
<text name="Cloud_XY_Density_X">
X:
</text>
<text name="Cloud_XY_Density_Y">
Y:
</text>
<text name="Cloud_XY_Density_D">
D:
</text>
</panel>
<panel name="P_Cloud_Detail">
<text name="cloud_detail_label">
Wolkendetail:
</text>
<text name="Cloud_XY_Detail_X">
X:
</text>
<text name="Cloud_XY_Detail_Y">
Y:
</text>
<text name="Cloud_XY_Detail_D">
D:
</text>
</panel>
<panel name="P_Cloud_Scroll">
<text name="cloud_scroll_label">
Wolken-Bewegung:
</text>
<text name="cloud_image_label">
Wolken-Bild:
</text>
</panel>
</panel>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Sonne und Mond" name="panel_fs_settings_sky_hbodies">
<panel name="P_Sun_Color">
<text name="T_Sun_Header" value="Farbe Sonne und Mond"/>
</panel>
<panel name="P_SM_Color">
<text name="color_label" width="140">
Farbe Sonne und Mond:
</text>
</panel>
<panel name="P_Sun_Header">
<text name="T_Sun_Header" value="Einstellungen Sonne und Sterne"/>
</panel>
<panel name="P_Sun_Setting">
<text name="image_label" width="150">
Bild:
</text>
<check_box label="Beacon anzeigen" name="sunbeacon" />
<text name="glow_focus_label">
Leuchtfokus:
</text>
<text name="glow_size_label">
Leuchtgröße:
</text>
<text name="star_brightness_label">
Helligk. Sterne:
</text>
<text name="sun_scale_label">
Skalierung:
</text>
<text name="sun_azimuth_label">
Azimut:
</text>
<text name="sun_elevation_label">
Höhenwinkel:
</text>
</panel>
<panel name="P_Moon_Header">
<text name="T_Moon_Header" value="Einstellungen Mond"/>
</panel>
<panel name="P_Moon_Setting">
<text name="moon_image_label" width="150">
Bild:
</text>
<check_box label="Beacon anzeigen" name="moonbeacon" />
<text name="moon_scale_label">
Skalierung:
</text>
<text name="brightness_label">
Helligkeit:
</text>
<text name="moon_azimuth_label">
Azimut:
</text>
<text name="moon_elevation_label">
Höhenwinkel:
</text>
</panel>
</panel>

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel label="Wasser" name="panel_fs_settings_water">
<panel name="P_Wave_Fog">
<text name="water_fog_label" tool_tip="Farbe Wasser-Nebel: Verändert die Farbe des Wasserkörpers. Ohne Nebel erscheint das Wasser klar und farblos.">
Farbe Wasser-Nebel
</text>
<text name="normal_map_label" tool_tip="Normal-Map: Bild, welches zur Bestimmung der Reflexionen und Lichtbrechung verdendet wird.">
Normal-Map
</text>
</panel>
<panel name="P_Wave_Fog" label="Nebel">
<text name="density_exponent_label">
Dichte-Exponent:
</text>
<text name="underwater_modifier_label">
Unterw.-Modifizierer:
</text>
<text name="FresnelScaleText">
Fresnel-Skalierung:
</text>
<text name="FresnelOffsetText">
Fresnel-Versatz:
</text>
</panel>
<panel name="P_Water_Wave">
<text name="large_wave_speed_label">
Geschw. große Welle:
</text>
<text name="small_wave_speed_label">
Geschw. kleine Welle:
</text>
<text name="reflection_wavelet_scale_label">
Skalierung Wellen-Reflexion:
</text>
<slider label="X:" name="water_normal_scale_x"/>
<slider label="Y:" name="water_normal_scale_y"/>
<slider label="Z:" name="water_normal_scale_z"/>
</panel>
<panel name="P_Water_Reflection">
<text name="refraction_scale_above_label" width="165">
Skali. Lichtbrechung (oberh.):
</text>
<slider name="water_scale_above" width="105"/>
<text name="refraction_scale_below_label" width="165">
Skali. Lichtbrechung (unterh.):
</text>
<slider name="water_scale_below" width="105"/>
<text name="blur_multiplier_label" width="165">
Unschärfe-Multiplikator:
</text>
<slider name="water_blur_multip" width="105"/>
</panel>
</panel>

View File

@ -4,6 +4,7 @@
<button name="fl_upload_image" label="Foto hochladen"/>
<button name="fl_change_image" label="Foto ändern"/>
<button name="fl_remove_image" label="Foto entfernen"/>
<button name="btn_preview" tool_tip="Vorschau der Über-Mich-Beschreibung umschalten"/>
<button name="fl_save_changes" label="Speichern"/>
<button name="fl_discard_changes" label="Verwerfen"/>
</panel>

View File

@ -11,6 +11,7 @@
<text name="description_label">
Beschreibung:
</text>
<button name="btn_preview" tool_tip="Vorschau der Auswahl-Beschreibung umschalten"/>
<text name="location_label">
Standort:
</text>

View File

@ -69,6 +69,7 @@
</layout_panel>
</layout_stack>
<text name="About:" value="Info:"/>
<button name="btn_preview" tool_tip="Vorschau der Über-Mich-Beschreibung umschalten"/>
<text name="Groups:" value="Gruppen:"/>
<button label="+" label_selected="+" name="group_invite" tool_tip="In Gruppe einladen"/>
<text name="Give item:" value="Teilen:"/>

View File

@ -34,7 +34,7 @@
Geschw. kleine Welle:
</text>
<text name="reflection_wavelet_scale_label">
Skalierung Wellen-Reflektion:
Skalierung Wellen-Reflexion:
</text>
<slider label="X:" name="water_normal_scale_x"/>
<slider label="Y:" name="water_normal_scale_y"/>
@ -45,7 +45,7 @@
Lichtbrechung und Unschärfe
</text>
<text name="refraction_scale_above_label">
Skalierung Lichtbrechung (obenrhalb):
Skalierung Lichtbrechung (oberhalb):
</text>
<text name="refraction_scale_below_label">
Skalierung Lichtbrechung (unterhalb):

View File

@ -27,7 +27,7 @@
tab_height="21"
tab_position="top"
top="7"
height="565"
height="570"
follows="all"
halign="center">
<panel

View File

@ -0,0 +1,177 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater
can_tear_off="false"
can_resize="false"
can_drag_on_left="false"
can_close="true"
can_dock="false"
bevel_style="in"
height="463"
layout="topleft"
name="Fixed Environment"
save_rect="true"
title="Fixed Environment"
save_visibility="false"
help_topic="fs_fixed_environment"
single_instance="true"
width="288">
<string name="edit_sky">Edit Sky:</string>
<string name="edit_water">Edit Water:</string>
<layout_stack name="floater_stack"
left="0"
top="0"
right="-1"
bottom="-1"
follows="left|top|right|bottom"
orientation="vertical">
<layout_panel name="info_panel"
auto_resize="false"
user_resize="false"
height="23"
width="288">
<text
follows="left|top"
top="5"
left="0"
width="40"
height="15"
name="info_panel_label"
font="SansSerif">
Name:
</text>
<line_editor
follows="left|top"
top_delta="-2"
left_pad="3"
width="235"
name="settings_name"
prevalidator="ascii"
max_length_chars="63"
height="20"/>
<!--
<button
height="23"
label="Load"
follows="left|top"
left_delta="260"
font="SansSerif"
top_delta="-2"
name="btn_load"
tool_tip="Load a settings from inventory"
width="96" />
<button
height="23"
label="Import"
follows="right|top"
right="-10"
font="SansSerif"
top_delta="0"
name="btn_import"
tool_tip="Import legacy settings from disk."
width="96" />
-->
</layout_panel>
<layout_panel name="tab_area"
auto_resize="true"
user_resize="false"
height="11"
min_height="0"
visible="true">
<tab_container
follows="all"
halign="center"
layout="topleft"
left="0"
name="tab_settings"
tab_position="top"
tab_max_width="93"
tab_width="90"
top_pad="0">
<!-- Tabs inserted here in code -->
</tab_container>
</layout_panel>
<layout_panel name="button_panel"
follows="left|top|right|bottom"
auto_resize="false"
user_resize="false"
height="23"
visible="true">
<layout_stack
follows="all"
height="23"
layout="topleft"
mouse_opaque="false"
name="button_bar_ls"
left="0"
orientation="horizontal"
top="0"
width="288">
<layout_panel
follows="bottom|left|right"
height="25"
layout="topleft"
left="0"
mouse_opaque="false"
name="load_btn_lp"
width="288">
<button
height="23"
label="Load"
follows="left|top"
left="5"
layout="topleft"
name="btn_load"
top="0"
width="70"
tool_tip="Load a settings from inventory"/>
<button
height="23"
label="Import"
follows="left|top"
left_pad="0"
layout="topleft"
name="btn_import"
top_delta="0"
width="70"
tool_tip="Import legacy settings from disk."/>
<button
height="23"
label="Save"
follows="left|top"
left_pad="0"
layout="topleft"
name="btn_commit"
top="0"
width="50" />
<button
follows="right|top"
height="23"
name="btn_flyout"
label=""
layout="topleft"
top="0"
left_pad="0"
tab_stop="false"
image_selected="SegmentedBtn_Right_Selected_Press"
image_unselected="SegmentedBtn_Right_Off"
image_pressed="SegmentedBtn_Right_Press"
image_pressed_selected="SegmentedBtn_Right_Selected_Press"
image_overlay="Arrow_Small_Up"
width="20"/>
<button
height="23"
label="Cancel"
follows="right|top"
left_pad="0"
layout="topleft"
name="btn_cancel"
top="0"
tool_tip="Revert to last saved version"
width="70"/>
</layout_panel>
</layout_stack>
</layout_panel>
</layout_stack>
</floater>

View File

@ -38,6 +38,8 @@ width="403">
<string name="joint_transform_mHipRight" translate="false">NEGATE_PITCH</string>
<string name="joint_transform_mKneeRight" translate="false">NEGATE_PITCH NEGATE_ROLL</string>
<string name="joint_transform_mAnkleRight" translate="false">NEGATE_PITCH</string>
<string name="joint_transform_mFaceTeethLower" translate="false">SWAP_YAW_AND_ROLL NEGATE_PITCH</string>
<string name="joint_transform_mFaceTeethUpper" translate="false">SWAP_YAW_AND_ROLL NEGATE_PITCH</string>
<string name="joint_transform_mFaceLipCornerRight" translate="false">SWAP_YAW_AND_ROLL NEGATE_PITCH</string>
<string name="joint_transform_mFaceLipCornerLeft" translate="false">SWAP_YAW_AND_ROLL NEGATE_PITCH</string>
<string name="joint_transform_mFaceLipUpperLeft" translate="false">SWAP_YAW_AND_ROLL NEGATE_PITCH</string>
@ -139,7 +141,8 @@ width="403">
<string name="header_mWingsRoot">Wings</string>
<string name="header_mFaceEar1Left">Ears/Nose</string>
<!-- These are names to appear on the UI for the joints/bones/thingos -->
<!-- These are names to appear on the UI for the joints -->
<!-- If a name is not here, it does not appear -->
<string name="title_mPelvis">Whole Avatar</string>
<string name="title_mTorso">Torso</string>
<string name="title_mChest">Chest</string>

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@
can_minimize="true"
can_resize="false"
can_close="true"
height="480"
height="510"
layout="topleft"
name="Snapshot"
single_instance="true"
@ -91,7 +91,7 @@
left="10"
label="Refresh"
name="new_snapshot_btn"
top_pad="0"
top_pad="10"
width="167" />
<button
follows="left|top"

View File

@ -1574,6 +1574,17 @@
<menu_item_check.on_click
function="ToggleControl"
parameter="FSFocusPointLocked" />
</menu_item_check>
<menu_item_check
label="Draw DoF Focus crosshair"
layout="topleft"
name="render_focus_point">
<menu_item_check.on_check
function="CheckControl"
parameter="FSFocusPointRender" />
<menu_item_check.on_click
function="ToggleControl"
parameter="FSFocusPointRender" />
</menu_item_check>
</menu>
<menu_item_call

View File

@ -4543,6 +4543,7 @@ Deeding this object will cause the group to:
type="alertmodal">
Do you want to open your Web browser to view this content?
Opening webpages from an unknown source may place your computer at risk.
URL: [UNTRUSTED_URL]
<tag>confirm</tag>
<usetemplate
ignoretext="Launch my browser to view a web page"

View File

@ -221,7 +221,7 @@
left_pad="8"
height="16"
right="-1"
decimal_digits="0"
decimal_digits="2"
initial_value="0"
min_val="0"
max_val="999"

View File

@ -0,0 +1,424 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="true"
follows="all"
height="390"
label="Atmosphere"
layout="topleft"
left="0"
help_topic="fs_skies"
name="panel_fs_settings_sky_atmos"
top="0">
<string name="hdr_string">HDR Scale:</string>
<string name="brightness_string">Brightness:</string>
<string name="hdr_tooltip">Intensity of lighting effects such as realistically bright skies and dynamic exposure. 1.0 is the default, 0 is off, values between 0 and 1 are mixing Ambient with HDR.</string>
<panel
name="P_Atmosphere_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
background_visible="true">
<text
name="T_Atmosphere_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Atmospheric Colors"/>
</panel>
<panel
name="P_Atmos_Settings"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="87"
border_visible="true"
background_visible="true">
<text
name="ambient_color_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="10"
width="105">
Ambient Color:
</text>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="25"
label_height="0"
layout="topleft"
left_pad="0"
name="ambient_light"
top_delta="-5"
width="166" />
<text
name="blue_horizon_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="7"
width="105">
Blue Horizon:
</text>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="25"
label_height="0"
layout="topleft"
left_pad="0"
name="blue_horizon"
top_delta="-5"
width="166" />
<text
name="blue_density_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="7"
width="105">
Blue Density:
</text>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="25"
label_height="0"
layout="topleft"
left_pad="0"
name="blue_density"
top_delta="-5"
width="166" />
</panel>
<panel
name="P_Atmosphere_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
background_visible="true">
<text
name="T_Atmosphere_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Atmosphere Settings"/>
</panel>
<panel
name="P_Atmosphere_OtherSettings"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="149"
border_visible="true"
background_visible="true">
<text
name="haze_horizon_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
top_pad="7"
width="100">
Haze Horizon:
</text>
<slider
decimal_digits="3"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
layout="topleft"
min_val="0"
max_val="5"
name="haze_horizon"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="haze_density_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Haze Density:
</text>
<slider
decimal_digits="3"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
layout="topleft"
min_val="0"
max_val="5"
name="haze_density"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="density_multiplier_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Density Multiplier:
</text>
<slider
decimal_digits="4"
follows="left|top"
height="16"
increment="0.0001"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="2"
name="density_multip"
width="171"
can_edit_text="true"/>
<text
name="distance_multiplier_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Distance Multiplier:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0.8"
layout="topleft"
min_val="0"
max_val="1000"
name="distance_multip"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="maximum_altitude_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Maximum Altitide:
</text>
<slider
decimal_digits="1"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="10000"
name="max_alt"
width="171"
can_edit_text="true"/>
<text
name="scene_gamma_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Brightness:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.1"
initial_value="0"
layout="topleft"
max_val="100"
name="scene_gamma"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="probe_ambiance_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
tool_tip="Irradiance control. When not zero, enables HDR lighting model."
width="100"
word_wrap="true">
Reflection Probe Ambiance (HDR):
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.5"
initial_value="0"
layout="topleft"
max_val="100"
name="probe_ambiance"
left_pad="0"
width="171"
can_edit_text="true"/>
</panel>
<panel
name="P_Rainbow_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
border_thickness="1"
background_visible="true">
<text
name="T_Rainbow_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Rainbow and Halo Settings"
width="250"/>
</panel>
<panel
name="P_Rainbow_OtherSettings"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="63"
border_visible="true"
background_visible="true">
<text
name="moisture_level_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
top_pad="7"
width="100">
Moisture Level:
</text>
<slider
decimal_digits="3"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
left_pad="0"
layout="topleft"
min_val="0"
max_val="1"
name="moisture_level"
width="171"
can_edit_text="true"/>
<text
name="droplet_radius_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Droplet Radius:
</text>
<slider
decimal_digits="3"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
left_pad="0"
layout="topleft"
min_val="0"
max_val="1000.0"
name="droplet_radius"
width="171"
can_edit_text="true"/>
<text
name="ice_level_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Ice Level:
</text>
<slider
decimal_digits="3"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="ice_level"
width="171"
can_edit_text="true"/>
</panel>
</panel>

View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="true"
follows="all"
height="390"
label="Clouds"
layout="topleft"
left="0"
help_topic="fs_skies"
name="panel_fs_settings_sky_clouds"
top="0">
<panel
name="P_Clouds_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
border_thickness="1"
background_visible="true">
<text
name="T_Clouds_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Cloud Settings"/>
</panel>
<panel
name="P_Atmos_Settings"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="35"
border_visible="true"
background_visible="true">
<text
name="cloud_color_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="10"
width="105">
Cloud Color:
</text>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="25"
label_height="0"
layout="topleft"
left_pad="0"
name="cloud_color"
top_delta="-5"
width="166" />
</panel>
<panel
name="P_Cloud_Density"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="63"
border_visible="true"
background_visible="true">
<text
name="cloud_coverage_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
top_pad="7"
width="100">
Cloud Cover:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0"
max_val="1"
name="cloud_coverage"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="cloud_scale_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Cloud Scale:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0"
max_val="3"
name="cloud_scale"
left_pad="0"
width="171"
can_edit_text="true"/>
<text
name="cloud_variance_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="100">
Cloud Variance:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0"
max_val="1.0"
name="cloud_variance"
left_pad="0"
width="171"
can_edit_text="true"/>
</panel>
<panel
name="P_Cloud_Density"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="77"
border_visible="true"
background_visible="true">
<text
type="string"
length="1"
follows="left|top"
height="16"
layout="topleft"
left="3"
name="cloud_density_label"
top_pad="5"
tool_tip="Cloud XY/Density - Use the X and Y sliders to change the horizontal position of all clouds in the sky. The D slider affects the overall density of the individual clouds; at low settings you will see thin, wispy clouds, and at higher settings you will see thicker, more solid clouds.">
Cloud Density:
</text>
<text
name="Cloud_XY_Density_X"
follows="left|top"
height="15"
layout="topleft"
left="5"
top_pad="0"
width="15">
X:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="cloud_density_x"
width="255"
can_edit_text="true"/>
<text
name="Cloud_XY_Density_Y"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="15">
Y:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="cloud_density_y"
width="255"
can_edit_text="true"/>
<text
name="Cloud_XY_Density_D"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="15">
D:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="3"
name="cloud_density_d"
width="255"
can_edit_text="true"/>
</panel>
<panel
name="P_Cloud_Detail"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="77"
border_visible="true"
background_visible="true">
<text
type="string"
length="1"
follows="left|top"
height="16"
layout="topleft"
left="3"
name="cloud_detail_label"
top_pad="5"
width="240">
Cloud Detail:
</text>
<text
name="Cloud_XY_Detail_X"
follows="left|top"
height="15"
layout="topleft"
left="5"
top_pad="0"
width="15">
X:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="cloud_detail_x"
width="255"
can_edit_text="true"/>
<text
name="Cloud_XY_Detail_Y"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="15">
Y:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="cloud_detail_y"
width="255"
can_edit_text="true"/>
<text
name="Cloud_XY_Detail_D"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="15">
D:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="1"
name="cloud_detail_d"
width="255"
can_edit_text="true"/>
</panel>
<panel
name="P_Cloud_Scroll"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="103"
border_visible="true"
background_visible="true">
<text
name="cloud_scroll_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="5"
width="134">
Cloud Scroll:
</text>
<text
name="cloud_image_label"
follows="left|top"
height="10"
layout="topleft"
left_pad="1"
top_delta="0"
width="134">
Cloud Image:
</text>
<xy_vector
follows="left|top"
name="cloud_scroll_xy"
width="80"
height="80"
visible="true"
left="5"
top_pad="5"
min_val_x="-30"
max_val_x="30"
min_val_y="-30"
max_val_y="30"
logarithmic="1"/>
<texture_picker
height="100"
layout="topleft"
left_pad="55"
name="cloud_map"
top_delta="0"
width="80"/>
</panel>
</panel>

View File

@ -0,0 +1,432 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="true"
follows="all"
height="390"
label="Sun &amp; Moon"
layout="topleft"
left="0"
help_topic="fs_skies"
name="panel_fs_settings_sky_hbodies"
top="0">
<panel
name="P_Sun_Color"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
border_thickness="1"
background_visible="true">
<text
name="T_Sun_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Sun &amp; Moon Color"/>
</panel>
<panel
name="P_SM_Color"
follows="left|top"
layout="topleft"
top_pad="5"
left="3"
width="280"
height="35"
border_visible="true"
background_visible="true">
<text
name="color_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="10"
width="105">
Sun &amp; Moon Color:
</text>
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="25"
label_height="0"
layout="topleft"
left_pad="0"
name="sun_moon_color"
top_delta="-5"
right="-5" />
</panel>
<panel
name="P_Sun_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
border_thickness="1"
background_visible="true">
<text
name="T_Sun_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Sun &amp; Stars Settings"/>
</panel>
<panel
name="P_Sun_Setting"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="145"
border_visible="true"
background_visible="true">
<text
name="image_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="5"
width="180">
Image:
</text>
<check_box
control_name="sunbeacon"
width="60"
height="16"
label="Show Beacon"
layout="topleft"
name="sunbeacon"
top_delta="0"
left_pad="0"/>
<texture_picker
height="83"
layout="topleft"
left="5"
name="sun_image"
top_pad="0"
width="60"/>
<text
name="glow_focus_label"
follows="left|top"
height="15"
layout="topleft"
left_pad="5"
top_delta="10"
width="85">
Glow Focus:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="-2"
max_val="2"
name="glow_focus"
left_pad="0"
width="120"
can_edit_text="true"/>
<text
name="glow_size_label"
follows="left|top"
height="15"
layout="topleft"
left="70"
width="85">
Glow Size:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="10"
name="glow_size"
width="120"
can_edit_text="true"/>
<text
name="star_brightness_label"
follows="left|top"
height="15"
layout="topleft"
left="70"
width="85">
Star Brightness:
</text>
<slider
decimal_digits="0"
follows="left|top"
height="16"
increment="1"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="50000"
name="star_brightness"
width="120"
can_edit_text="true"/>
<text
name="sun_scale_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="55">
Scale:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
top_delta="0"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0.0"
max_val="100"
name="sun_scale"
width="215"
can_edit_text="true"/>
<text
name="sun_azimuth_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="55">
Azimuth:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="359.99"
name="sun_azimuth"
width="215"
can_edit_text="true"/>
<text
name="sun_elevation_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="55">
Elevation:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="-90"
max_val="90"
name="sun_elevation"
left_pad="0"
width="215"
can_edit_text="true"/>
</panel>
<panel
name="P_Moon_Header"
follows="left|top"
layout="topleft"
top_pad="3"
left="0"
width="288"
height="22"
bg_alpha_color="EmphasisColor"
border_visible="true"
border_thickness="1"
background_visible="true">
<text
name="T_Moon_Header"
follows="left|top"
layout="topleft"
left="5"
font="SansSerif"
value="Moon Settings"/>
</panel>
<panel
name="P_Moon_Setting"
follows="left|top"
layout="topleft"
top_pad="1"
left="3"
width="280"
height="125"
border_visible="true"
background_visible="true">
<text
name="moon_image_label"
follows="left|top"
height="10"
layout="topleft"
left="5"
top_pad="5"
width="180">
Image:
</text>
<check_box
control_name="moonbeacon"
width="60"
height="16"
label="Show Beacon"
layout="topleft"
name="moonbeacon"
top_delta="0"
left_pad="0"/>
<texture_picker
height="83"
layout="topleft"
left="5"
name="moon_image"
top_pad="0"
width="60"/>
<text
name="moon_scale_label"
follows="left|top"
height="15"
layout="topleft"
left_pad="5"
top_delta="28"
width="60">
Scale:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
top_delta="0"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="20"
name="moon_scale"
width="145"
can_edit_text="true"/>
<text
name="brightness_label"
follows="left|top"
height="15"
layout="topleft"
left="70"
width="60">
Brightness:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="0.0"
max_val="1.0"
name="moon_brightness"
left_pad="0"
width="145"
can_edit_text="true"/>
<text
name="moon_azimuth_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="55">
Azimuth:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="359.99"
name="moon_azimuth"
width="215"
can_edit_text="true"/>
<text
name="moon_elevation_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="55">
Elevation:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="-90"
max_val="90"
name="moon_elevation"
left_pad="0"
width="215"
can_edit_text="true"/>
</panel>
</panel>

View File

@ -0,0 +1,377 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
border="true"
follows="all"
height="390"
label="Water"
layout="topleft"
left="0"
name="panel_fs_settings_water"
top="0">
<panel
name="P_Wave_Fog"
label="Fog"
follows="left|top"
layout="topleft"
top_pad="0"
left="0"
width="280"
height="65"
border_visible="true"
background_visible="true">
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="40"
label_height="0"
layout="topleft"
left="20"
name="water_fog_color"
top_pad="5"
width="90"/>
<texture_picker
height="60"
layout="topleft"
left_pad="60"
name="water_normal_map"
top_delta="0"
width="40"/>
<text
follows="top|left"
font="SansSerifSmall"
layout="topleft"
left="20"
name="water_fog_label"
top_pad="-16"
width="110"
tool_tip="Water Fog Color - This changes the color of the volume tint of the water, essentially defining the color of the water itself. If your water has no fog, it will appear crystal clear and colorless."
word_wrap="true">
Water Fog Color
</text>
<text
follows="left|top|right"
font="SansSerifSmall"
layout="topleft"
left_pad="30"
name="normal_map_label"
top_delta="0"
tool_tip="Normal Map - Image used for determining reflections and refractions. Any texture may be used for this setting- but true normal maps work best. Try snake skin, tiles, or any other normal map for some wacky effects!"
width="100">
Normal Map
</text>
</panel>
<panel
name="P_Wave_Fog"
label="Fog"
follows="left|top"
layout="topleft"
top_pad="0"
left="0"
width="280"
height="80"
border_visible="true"
background_visible="true">
<text
name="density_exponent_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="115">
Density Exponent:
</text>
<slider
decimal_digits="1"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
min_val="-10"
max_val="10"
name="water_fog_density"
left_pad="0"
width="155"
can_edit_text="true"/>
<text
name="underwater_modifier_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="115">
Underwater Modifier:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0.0"
max_val="20.0"
name="water_underwater_mod"
width="155"
can_edit_text="true"/>
<text
name="FresnelScaleText"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="115">
Fresel Scale:
</text>
<slider
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0.7"
layout="topleft"
name="water_fresnel_scale"
left_pad="0"
width="155"
can_edit_text="true"/>
<text
name="FresnelOffsetText"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="115">
Fresnel Offset:
</text>
<slider
decimal_digits="2"
follows="left|top"
increment="0.01"
initial_value="0.7"
height="16"
layout="topleft"
left_pad="0"
name="water_fresnel_offset"
width="155"
can_edit_text="true"/>
</panel>
<panel
name="P_Water_Wave"
follows="left|top"
label="Wave"
layout="topleft"
top_pad="0"
left="0"
width="280"
height="180"
border_visible="true"
background_visible="true">
<text
name="large_wave_speed_label"
follows="left|top"
height="16"
width="130"
layout="topleft"
top_pad="5"
left="5">
Large Wave Speed
</text>
<text
name="small_wave_speed_label"
follows="left|top"
height="16"
layout="topleft"
top_delta="0"
left_pad="10">
Small Wave Speed
</text>
<xy_vector
follows="top|left"
name="water_wave1_xy"
width="130"
height="75"
visible="true"
left="5"
top_pad="0"
min_val_x="-20"
max_val_x="20"
increment_x="0.01f"
min_val_y="-20"
max_val_y="20"
increment_y="0.01f"
arrow_color="white"/>
<xy_vector
follows="top|left"
name="water_wave2_xy"
width="130"
height="75"
visible="true"
left_pad="10"
top_delta="0"
min_val_x="-20"
max_val_x="20"
min_val_y="-20"
max_val_y="20"
increment_x="0.01f"
increment_y="0.01f"
arrow_color="white"/>
<text
name="reflection_wavelet_scale_label"
follows="left|top|right"
height="16"
layout="topleft"
left="5"
top_pad="5"
width="215">
Reflection Wavelet Scale
</text>
<slider
decimal_digits="1"
follows="left|top"
increment="0.01"
height="16"
initial_value="0.7"
layout="topleft"
label="X:"
left="5"
max_val="10"
name="water_normal_scale_x"
top_pad="0"
width="270"
can_edit_text="true"/>
<slider
decimal_digits="1"
follows="left|top"
increment="0.01"
initial_value="0.7"
height="16"
layout="topleft"
left="5"
max_val="10"
name="water_normal_scale_y"
top_pad="5"
label="Y:"
width="270"
can_edit_text="true"/>
<slider
decimal_digits="1"
follows="left|top"
increment="0.01"
initial_value="0.7"
height="16"
layout="topleft"
left="5"
max_val="10"
name="water_normal_scale_z"
top_pad="5"
label="Z:"
width="270"
can_edit_text="true"/>
</panel>
<panel
name="P_Water_Reflection"
label="Refraction"
follows="left|top"
layout="topleft"
top_pad="0"
left="0"
width="280"
height="60"
border_visible="true"
background_visible="true">
<text
name="refraction_scale_above_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="155">
Refract Above Scale (Above):
</text>
<slider
control_name="water_scale_above"
decimal_digits="2"
follows="left|top"
increment="0.01"
initial_value="0.1"
height="16"
layout="topleft"
min_val="0"
max_val="3"
name="water_scale_above"
left_pad="0"
width="115"
can_edit_text="true" />
<text
name="refraction_scale_below_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="155">
Refract Scale (Below):
</text>
<slider
control_name="water_scale_below"
decimal_digits="2"
follows="left|top"
height="16"
increment="0.01"
initial_value="0"
layout="topleft"
left_pad="0"
min_val="0"
max_val="3"
name="water_scale_below"
width="115"
can_edit_text="true"/>
<text
name="blur_multiplier_label"
follows="left|top"
height="15"
layout="topleft"
left="5"
width="155">
Blur Multiplier:
</text>
<slider
control_name="water_blur_multip"
follows="left|top"
height="16"
increment="0.001"
initial_value="0"
layout="topleft"
min_val="-0.5"
max_val="0.5"
name="water_blur_multip"
left_pad="0"
width="115"
can_edit_text="true"/>
</panel>
</panel>

View File

@ -1058,7 +1058,7 @@
<combo_box.item
label="Ultra"
name="Ultra"
value="2" />
value="3" />
</combo_box>
<check_box

View File

@ -46,7 +46,7 @@
<button
name="fl_upload_image"
label="Upload Photo"
top="80"
top="55"
left="285"
height="20"
width="120"
@ -70,6 +70,21 @@
width="120"
follows="top|left"
layout="topleft"/>
<!-- [AS:chanayane] Preview button -->
<button
name="btn_preview"
tool_tip="Toggle preview of your first life introduction"
top_pad="5"
left_delta="0"
height="20"
width="120"
follows="top|left"
layout="topleft"
image_overlay="Profile_Group_Visibility_On"
is_toggle="true"
enabled="false"
visible="false"/>
<!-- [/AS:chanayane] -->
<text_editor
name="fl_description_edit"
trusted_content="false"

View File

@ -84,6 +84,21 @@
>
Description:
</text>
<!-- [AS:chanayane] Preview button -->
<button
name="btn_preview"
tool_tip="Toggle preview of your pick description"
top_pad="-18"
left="280"
height="20"
width="20"
follows="top|right"
layout="topleft"
image_overlay="Profile_Group_Visibility_On"
is_toggle="true"
enabled="false"
visible="false"/>
<!-- [/AS:chanayane] -->
<text_editor
name="pick_desc"
trusted_content="false"

View File

@ -601,8 +601,22 @@
follows="left|top"
layout="topleft"
halign="right"/>
<!-- [AS:chanayane] Preview button -->
<button
name="btn_preview"
tool_tip="Toggle preview of your profile 'about' section"
top_delta="20"
left="35"
height="20"
width="20"
follows="left|top"
layout="topleft"
image_overlay="Profile_Group_Visibility_On"
is_toggle="true"
enabled="false"
visible="false"/>
<view_border
top_delta="-4"
top_delta="-24"
left="59"
right="-5"
height="103"
@ -610,6 +624,7 @@
follows="all"
name="info_border_sl_description_edit"
bevel_style="in"/>
<!-- [/AS:chanayane] -->
<text_editor
name="sl_description_edit"
trusted_content="false"

View File

@ -1648,6 +1648,7 @@ Haz clic en OK para instalar.
</notification>
<notification name="WebLaunchExternalTarget">
¿Quieres abrir tu navegador para ver este contenido?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Abrir mi navegador para ver una página web" name="okcancelignore" notext="Cancelar" yestext="Aceptar"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -5,6 +5,7 @@
<check_box label="Vêtements" name="check_clothing"/>
<check_box label="Gestes" name="check_gesture"/>
<check_box label="Repères" name="check_landmark"/>
<check_box label="Matériaux" name="check_material"/>
<check_box label="Notes" name="check_notecard"/>
<check_box label="Objets" name="check_object"/>
<check_box label="Scripts" name="check_script"/>

View File

@ -1777,6 +1777,7 @@ Continuer ?
</notification>
<notification name="WebLaunchExternalTarget">
Voulez-vous ouvrir votre navigateur web système pour afficher ce contenu ?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Ouvrir mon navigateur pour consulter une page web" name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -34,7 +34,9 @@
<combo_box.item value="filter_type_sounds" label="Sons"/>
<combo_box.item value="filter_type_textures" label="Textures"/>
<combo_box.item value="filter_type_snapshots" label="Photos"/>
<combo_box.item value="filter_type_materials" label="Matériaux" />
<combo_box.item value="filter_type_settings" label="Paramètres" />
<combo_box.item value="filter_type_folders" label="Dossiers" />
<combo_box.item value="filter_type_coalesced" label="Uniquement les objets groupés"/>
<combo_box.item value="filter_type_custom" label="Personnalisé..."/>
</combo_box>

View File

@ -1860,6 +1860,7 @@ Si vous continuez à recevoir ce message, veuillez contacter l'assistance de Sec
<string name="Clothing" value=" Habits,"/>
<string name="Gestures" value=" Gestes,"/>
<string name="Landmarks" value=" Repères,"/>
<string name="Materials" value=" Matériaux," />
<string name="Notecards" value=" Notes,"/>
<string name="Objects" value=" Objets,"/>
<string name="Scripts" value=" Scripts,"/>
@ -1867,6 +1868,7 @@ Si vous continuez à recevoir ce message, veuillez contacter l'assistance de Sec
<string name="Textures" value=" Textures,"/>
<string name="Settings" value=" Paramètres," />
<string name="Snapshots" value=" Photos,"/>
<string name="Folders" value=" Dossiers," />
<string name="No Filters" value="Non "/>
<string name="Since Logoff" value="depuis la déconnexion"/>
<string name="Modifiable" value="Modifiable" />

View File

@ -215,6 +215,7 @@
<slider name="trackpad_sensitivity_slider" tool_tip="Regola sensibilità del trackball e della rotellina del mouse" />
<check_box name="stop_posing_on_close_checkbox" label="Stop Poser quando è chiuso" tool_tip="Non interrompere il Poser può essere utile per non perdere la posa accidentalmente" />
<check_box name="reset_base_rotation_on_edit_checkbox" label="Reset rotaz. di base in Edit" tool_tip="Quando modifichi una rotazione per la prima volta, reimpostala su zero. Ciò significa che il tuo lavoro può salvare la posa (non la differenza, vedi caricamento/salvataggio). Accanto a ciascuna giuntura azzerata ed esportata, appare un segno di spunta verde" />
<check_box name="also_save_bvh_checkbox" label="Crea BVH al salvataggio**" tool_tip="Quando salvi una posa, crea anche un file BVH che può essere caricato tramite 'Costruisci > Carica > Animazione', così potrai mettere in posa te stesso o altri nel mondo. La 'base' delle giunture deve essere reimpostata a zero poiché il formato BVH richiede un lavoro originale" />
</panel>
</tab_container>
</panel>
@ -227,7 +228,7 @@
<button name="undo_change" tool_tip="Annulla l'ultima modifica della rotazione" />
<button name="button_redo_change" tool_tip="Ripristina l'ultima modifica annullata" />
<button name="poser_joint_reset" tool_tip="Fai doppio clic per ripristinare tutte le parti del corpo selezionate al momento in cui hai iniziato a modificare la posa" />
<button name="delta_mode_toggle" tool_tip="Se si cambiano più giunture, ognuna cambia della stessa quantità, anziché ottenere la stessa rotazione per tutte" />
<button name="delta_mode_toggle" tool_tip="Se si cambiano più giunture, ognuna cambia della stessa quantità, anziché ottenere la stessa rotazione per tutte. Utilizzato anche per rimuovere il Gimbal Lock" />
<button label="Spec." name="button_toggleMirrorRotation" tool_tip="Cambia la giuntura opposta, come in uno specchio" />
<button label="Simp." name="button_toggleSympatheticRotation" tool_tip="Cambia la giuntura opposta, ma nello stesso modo" />
</panel>
@ -253,7 +254,7 @@
<button name="toggleAdvancedPanel" tool_tip="Mostra / Nascondi le impostazioni avanzate" />
<button name="FlipPose_avatar" tool_tip="Capovolgi l'intera posa a sinistra / destra" />
<button name="FlipJoint_avatar" tool_tip="Specchia le parti del corpo selezionate a sinistra / destra" />
<button label="Ricatt." name="button_RecaptureParts" tool_tip="Se le parti del corpo selezionate sono disattivate, ricattura ciò che quelle parti del corpo stanno facendo in questo momento. Questo pulsante verrà disabilitato se attivi la posa a T" />
<button label="Ricatt." name="button_RecaptureParts" tool_tip="Se le parti del corpo selezionate sono disattivate, ricattura ciò che quelle parti del corpo stanno facendo in questo momento" />
<button label="Attiv./Dis. parti" name="toggle_PosingSelectedBones" tool_tip="Attiva / Disattiva il Poser per le parti del corpo selezionate. Quando è disattivata, quella parte del corpo si anima normalmente (con il tuo AO o una poseball)" />
<button label="Le mie pose" name="toggleLoadSavePanel" tool_tip="Carica, salva e gestisci le pose che crei" />
<button tool_tip="Apri la cartella con le tue pose" name="open_poseDir_button" />
@ -268,7 +269,7 @@
<slider label="Posizione X:" name="Advanced_Position_X" />
<slider label="Posizione Y:" name="Advanced_Position_Y" />
<slider label="Posizione Z:" name="Advanced_Position_Z" />
<button label="Annulla modif. posiz." name="undo_position_change" tool_tip="Annulla l'ultima modifica della posizione" />
<button label="Annulla posiz." name="undo_position_change" tool_tip="Annulla l'ultima modifica della posizione" />
<button label="Rifai posizione" name="redo_position_change" tool_tip="Ripristina l'ultima modifica della posizione annullata" />
<button label="Reset posizione" name="reset_positions" tool_tip="Fai doppio clic per ripristinare la posizione originale" />
</panel>
@ -276,7 +277,7 @@
<slider label="Dimens. X:" name="Advanced_Scale_X" />
<slider label="Dimens. Y:" name="Advanced_Scale_Y" />
<slider label="Dimens. Z:" name="Advanced_Scale_Z" />
<button label="Annulla modif. dimens." name="undo_scale_change" tool_tip="Annulla l'ultima modifica delle dimensioni" />
<button label="Annulla dimen." name="undo_scale_change" tool_tip="Annulla l'ultima modifica delle dimensioni" />
<button label="Rifai dimens." name="redo_scale_change" tool_tip="Ripristina l'ultima modifica delle dimensioni annullata" />
<button label="Reset dimens." name="reset_scales" tool_tip="Fai doppio clic per ripristinare le dimensioni originali" />
</panel>

View File

@ -11,7 +11,7 @@
<check_box label="Script" name="check_script"/>
<check_box label="Suoni" name="check_sound"/>
<check_box label="Texture" name="check_texture"/>
<check_box label="Fotografie" name="check_snapshot"/>
<check_box label="Foto" name="check_snapshot"/>
<check_box label="Ambienti" name="check_settings" />
<button label="Tutti" label_selected="Tutti" name="All"/>
<button label="Nessuno" label_selected="Nessuno" name="None"/>
@ -19,6 +19,12 @@
<check_box label="Cop." name="check_copy" />
<check_box label="Trasf." name="check_transfer" />
<check_box label="Mostra sempre cartelle" name="check_show_empty"/>
<check_box label="Solo multi-oggetto" name="check_only_coalesced" width="125" />
<combo_box tool_tip="Filtra elementi linkati" name="inventory_filter_show_links_combo">
<combo_box.item name="show_links" label="Mostra i link" />
<combo_box.item name="show_links_only" label="Mostra solo i link" />
<combo_box.item name="hide_links" label="Nascondi i link" />
</combo_box>
<check_box label="Creati da me" name="check_created_by_me" />
<check_box label="Creati da altri" name="check_created_by_others" />
<check_box label="Dalla disconnessione" name="check_since_logoff"/>

View File

@ -53,6 +53,8 @@
<check_box label="Interfaccia" name="ui_check"/>
<check_box label="Credito L$" name="currency_check" />
<check_box label="HUD" name="hud_check" />
<check_box label="Mostra frame di cattura" tool_tip="Mostra una cornice sullo schermo che circonda le aree della foto. Le parti della scena che sono al di fuori della foto saranno desaturate e leggermente sfocate" name="show_frame" />
<check_box label="Mostra guida all'inquadratura" tool_tip="Mostra la guida all'inquadratura (regola dei terzi) all'interno della cornice della foto" name="show_guides" />
<check_box label="Fermo immagine (tutto schermo)" name="freeze_frame_check"/>
<check_box label="Aggiornamento automatico" name="auto_snapshot_check"/>
<check_box label="Nessuna post-elaborazione" name="no_post_check" />

View File

@ -1,10 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<toggleable_menu name="Settings">
<menu_item_call label="Carica solo rotazioni" name="rotations" />
<menu_item_call label="Carica solo posizioni" name="positions" />
<menu_item_call label="Carica solo dimensioni" name="scale" />
<menu_item_call label="Carica rotazioni e posizioni" name="rotations_positions" />
<menu_item_call label="Carica rotazioni e dimensioni" name="rotations_scales" />
<menu_item_call label="Carica posizioni e dimensioni" name="positions_scales" />
<menu_item_call label="Carica tutte" name="load_all" />
<menu_item_call label="Caricamento selettivo" tool_tip="Carica solo le giunture che sono disabilitate e le abilita" name="load_selective" />
<menu_item_call label="Caricamento selettivo - Solo rotazioni" tool_tip="Carica solo le rotazioni delle giunture che sono disabilitate e le abilita" name="rotations_positions" />
<menu_item_call label="Caricamento - Solo rotazioni" tool_tip="Carica solo le rotazioni. Adatto alle pose create per altri avatar/corpi" name="rotations" />
<menu_item_call label="Caricamento - Tutte" tool_tip="Carica rotazioni, posizioni e dimensioni" name="load_all" />
</toggleable_menu>

View File

@ -1663,6 +1663,7 @@ Se il messaggio si ripresenta, controllare su [SUPPORT_SITE].
<notification name="WebLaunchExternalTarget">
Vuoi aprire il browser per vedere questi contenuti?
L&apos;apertura di pagine da una sorgente sconosciuta può mettere a rischio il computer.
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Lancia il browser per consultare una pagina web" name="okcancelignore" notext="Annulla" />
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -11,6 +11,8 @@
<text name="working_lbl">
Caricamento...
</text>
<check_box label="Frame di cattura" tool_tip="Mostra una cornice sullo schermo che circonda le aree della foto. Le parti della scena che sono al di fuori della foto saranno desaturate e leggermente sfocate" name="show_frame" />
<check_box label="Guida inquadrat." tool_tip="Mostra la guida all'inquadratura (regola dei terzi) all'interno della cornice della foto" name="show_guides" />
<button label="Aggiorna" name="new_snapshot_btn" tool_tip="Fai clic per aggiornare"/>
<button label="Anteprima" name="big_preview_btn" tool_tip="Fai clic per alternare l&apos;anteprima"/>
<text name="title_label">

View File

@ -41,10 +41,12 @@
<combo_box.item value="filter_type_scripts" label="Script" />
<combo_box.item value="filter_type_sounds" label="Suoni" />
<combo_box.item value="filter_type_textures" label="Texture" />
<combo_box.item value="filter_type_snapshots" label="Fotografie" />
<combo_box.item value="filter_type_snapshots" label="Foto" />
<combo_box.item value="filter_type_meshes" label="Modelli mesh" />
<combo_box.item value="filter_type_materials" label="Materiali" />
<combo_box.item value="filter_type_settings" label="Ambienti" />
<combo_box.item value="filter_type_folders" label="Cartelle" />
<combo_box.item value="filter_type_coalesced" label="Solo multi-oggetto" />
<combo_box.item value="filter_type_custom" label="Personalizzato..." />
</combo_box>
<menu_button tool_tip="Mostra opzioni di visibilità per la ricerca" name="options_visibility_btn" />
@ -75,6 +77,9 @@
<button label="Espandi" name="expand_btn" tool_tip="Apri tutte le cartelle" />
</panel>
<!-- / Used by StarLight skins -->
<panel name="show_filters_panel">
<button name="show_filters_inv_btn" tool_tip="Mostra filtri - Quando selezionato, mostra il menu laterale dei filtri. Diventa evidenziato quando un filtro è abilitato" />
</panel>
<panel name="view_mode_panel">
<button name="view_mode_btn" tool_tip="Cambia modalità di visualizzazione" />
</panel>

View File

@ -25,8 +25,20 @@
<text name="ObjectInspectorTooltipDelay_text">
secondi
</text>
<slider label="Inizio sparizione testo sopra (in m):" tool_tip="Distanza a cui il testo sopra agli oggetti inizia a sbiadire" name="FSHudTextFadeDistance"/>
<slider label="Distanza sparizione testo (in m):" tool_tip="Imposta la distanza a cui il testo sopra agli oggetti diventa totalmente invisibile" name="FSHudTextFadeRange"/>
<text name="FSHudTextLabel">
Opzioni testo fluttuante:
</text>
<slider label="Il testo inizia a sbiadire a (metri):" tool_tip="Imposta la distanza alla quale il testo fluttuante sopra agli oggetti inizia a sbiadire" name="FSHudTextFadeDistance"/>
<slider label="Il testo scompare dopo (metri):" tool_tip="Imposta la distanza alla quale il testo fluttuante sopra agli oggetti diventerà completamente invisibile dopo aver iniziato a sbiadire" name="FSHudTextFadeRange"/>
<check_box name="FSHudTextUseHoverHighlight" label="Passa il mouse su un oggetto per evidenziare il testo fluttuante:" tool_tip="Quando passi il mouse su un oggetto, se presente, evidenzia il testo fluttuante (hovertext) portandolo in primo piano senza la trasparenza" />
<text name="FSHudTextShowBackgroundLabel">
Mostra sfondo testo fluttuante:
</text>
<combo_box name="FSHudTextShowBackgroundDropdown" tool_tip="Visualizza uno sfondo bianco o nero dietro al testo fluttuante per renderlo più leggibile. La trasparenza può essere modificata in Preferenze > Colori > Varie">
<combo_box.item label="Disattivato" name="ScriptDialogOption_0" />
<combo_box.item label="Solo sugli oggetti evidenziati" name="ScriptDialogOption_1" />
<combo_box.item label="Su tutti gli oggetti" name="ScriptDialogOption_2" />
</combo_box>
</panel>
<panel label="Sovrapposiz. 2D" name="ui-2d-overlay">
<text name="UI Size:" width="95">

View File

@ -197,13 +197,14 @@
Opacità console:
</text>
<color_swatch name="console_background" tool_tip="Scegliere colore sfondo"/>
<slider label="Opacità:" name="console_background_opacity" tool_tip="Regolare l&apos;opacità dello sfondo della console"/>
<slider label="Opacità:" name="console_background_opacity" tool_tip="Scegli l'opacità dello sfondo della console"/>
<slider label="Opacità sfondo testo fluttuante:" name="FSHudTextBackgroundOpacity" tool_tip="Scegli l'opacità dello sfondo del testo fluttuante" />
<text name="preferences_search_label">
Colore evidenza ricerca nelle Preferenze:
Risultati di ricerca nelle preferenze:
</text>
<color_swatch name="preferences_search_color" tool_tip="Scegli il colore"/>
<text name="area_search_beacon_color_label">
Colore raggio marcatore (ad es. per ricerca oggetti):
Raggio di tracciamento (ad es. per Cerca Oggetti):
</text>
<color_swatch name="area_search_beacon_color" tool_tip="Scegli il colore" />
<text name="notecard_editor_color_label">

View File

@ -864,7 +864,7 @@ https://www.firestormviewer.org/support per avere aiuto nella soluzione.
parte del corpo
</string>
<string name="snapshot">
fotografia
foto
</string>
<string name="lost and found">
oggetti smarriti
@ -1853,9 +1853,15 @@ Se il messaggio persiste, contattare il supporto Second Life per assistenza http
<string name="Scripts" value=" Script,"/>
<string name="Sounds" value=" Suoni,"/>
<string name="Textures" value=" Texture,"/>
<string name="Snapshots" value=" Fotografie,"/>
<string name="Settings" value=" Ambienti," />
<string name="Snapshots" value=" Foto,"/>
<string name="Folders" value=" Cartelle,"/>
<string name="No Filters" value="No "/>
<string name="Since Logoff" value=" - Dall&apos;uscita"/>
<string name="Modifiable" value="Modificabile" />
<string name="Copyable" value="Copiabile" />
<string name="Transferable" value="Trasferibile" />
<string name="PermissionsFilter" value=" - Solo [PERMISSIONS]" />
<string name="InvFolder My Inventory">
Inventario
</string>
@ -5712,7 +5718,7 @@ Prova a racchiudere il percorso dell&apos;editor in doppie virgolette.
Apre la lista nera delle risorse de-renderizzate
</string>
<string name="Command_Phototools_Tooltip">
Strumenti per una fotografia accurata (Alt+P).
Strumenti per una foto accurata (Alt+P).
</string>
<string name="Command_Phototools_View_Tooltip">
Controlli avanzati per la cam (Ctrl+Maius+C)

View File

@ -1805,6 +1805,7 @@ https://secondlife.com/support/downloads/ からダウンロードしてくだ
</notification>
<notification name="WebLaunchExternalTarget">
Web ブラウザを開いてこのコンテンツを表示しますか?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="ブラウザを起動して Web ページを見るとき" name="okcancelignore" notext="キャンセル" yestext="OK"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -1735,6 +1735,7 @@ Jeśli ciągle widzisz tą wiadomość sprawdź [SUPPORT_SITE].
<notification name="WebLaunchExternalTarget">
Czy chcesz otworzyć swoją przeglądarkę internetową by zobaczyć zawartość?
Otwieranie stron internetowych z nieznanego źródła może narazić Twój komputer na niebezpieczeństwo.
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć stronę" name="okcancelignore" notext="Anuluj" />
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -1592,6 +1592,7 @@ Deseja prosseguir?
</notification>
<notification name="WebLaunchExternalTarget">
Abrir uma janela do navegador para ver essas informações?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Abrir o navegador para acessar uma página na web" name="okcancelignore" notext="Cancelar" yestext="OK"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -1769,6 +1769,7 @@
<notification name="WebLaunchExternalTarget">
Открыть браузер для просмотра этого контента?
Открытие сайтов от неизвестных источников может нанести вред вашему компьютеру
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Запустить браузер для просмотра веб-страницы" name="okcancelignore" notext="Отмена" yestext="Да"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -1650,6 +1650,7 @@ Devam edilsin mi?
</notification>
<notification name="WebLaunchExternalTarget">
Bu içeriği görüntülemek için Web tarayıcınızı açmak istiyor musunuz?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="Bir web sayfasını görüntülemek için tarayıcımı başlat" name="okcancelignore" notext="İptal" yestext="Tamam"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -1828,6 +1828,7 @@ SHA1指紋[MD5_DIGEST]
</notification>
<notification name="WebLaunchExternalTarget">
你確定要開啟網頁瀏覽器去檢視這個內容?
URL: [UNTRUSTED_URL]
<usetemplate ignoretext="啟用我的網頁瀏覽器去檢視網頁" name="okcancelignore" notext="取消" yestext="確定"/>
</notification>
<notification name="WebLaunchJoinNow">

View File

@ -114,9 +114,11 @@
<combo_box.item value="filter_type_scripts" label="Script" />
<combo_box.item value="filter_type_sounds" label="Suoni" />
<combo_box.item value="filter_type_textures" label="Texture" />
<combo_box.item value="filter_type_snapshots" label="Fotografie" />
<combo_box.item value="filter_type_snapshots" label="Foto" />
<combo_box.item value="filter_type_materials" label="Materiali" />
<combo_box.item value="filter_type_settings" label="Ambienti" />
<combo_box.item value="filter_type_folders" label="Cartelle" />
<combo_box.item value="filter_type_coalesced" label="Solo multi-oggetto" />
<combo_box.item value="filter_type_custom" label="Personalizzato..." />
</combo_box>
<panel name="default_inventory_panel">