From c7e886e770dd8980577206634081f888ece2df7f Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 1 Apr 2016 09:55:01 -0400 Subject: [PATCH 01/17] SL-344 WIP - added no-op scale field to some params that require it. --- indra/newview/character/avatar_lad.xml | 45 +++++++++++++++++--------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index d72d445577..d0f8a8a36a 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -1885,10 +1885,12 @@ scale = "0.10 0.3 0.0" /> + offset = "0 0.0025 0" + scale = "0.0 0.0 0.0" /> + offset = "0 -0.0025 0" + scale = "0.0 0.0 0.0" /> + offset = "0 0.005 0" + scale = "0.0 0.0 0.0" /> + offset = "0 -0.005 0" + scale = "0.0 0.0 0.0" /> @@ -2715,10 +2719,12 @@ + offset = "0.0 -0.0 0.0" + scale = "0.0 0.0 0.0" /> + offset = "0.0 0.0 0.0" + scale = "0.0 0.0 0.0" /> @@ -2731,10 +2737,12 @@ + offset = "-0.0149 0.001 0.016" + scale = "0.0 0.0 0.0" /> + offset = "-0.0149 -0.001 0.016" + scale = "0.0 0.0 0.0" /> @@ -2747,27 +2755,33 @@ + offset = "0.0 0.00 -0.02" + scale = "0.0 0.0 0.0" /> + offset = "0.0 0.00 0.02" + scale = "0.0 0.0 0.0" /> + offset = "0.0 0.00 0.02" + scale = "0.0 0.0 0.0" /> + offset = "0.0 0.00 0.02" + scale = "0.0 0.0 0.0" /> + offset = "0.0 0.00 0.02" + scale = "0.0 0.0 0.0" /> + offset = "0 0 0.02" + scale = "0.0 0.0 0.0" /> @@ -2782,7 +2796,8 @@ + offset = "0.0085 0.00 0" + scale = "0.0 0.0 0.0" /> From 33b12142fe40b37d0d35d8352bd1a82c43965753 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 1 Apr 2016 15:07:40 -0400 Subject: [PATCH 02/17] SL-344 - added missing scale to some skeleton distortion bones --- indra/newview/character/avatar_lad.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index d0f8a8a36a..13b624308f 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -771,8 +771,8 @@ - - + + @@ -813,7 +813,7 @@ name="mChest" scale="0.02 0.08 0" /> - + @@ -823,7 +823,7 @@ id="37" group="0" name="Hip Width" - label="Hip Width" + label="Hip Width" wearable="shape" edit_group="shape_legs" edit_group_order="3" From 538fac24a18cb02c406d77ae34d0a709b64daed9 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 1 Apr 2016 15:31:28 -0400 Subject: [PATCH 03/17] SL-344, SL-365 - avatar_lad formatting, hind limbs respond to same sliders as the legs. --- indra/newview/character/avatar_lad.xml | 101 ++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 13b624308f..dec4ef3629 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -613,6 +613,22 @@ name="mKneeRight" scale=".05 .05 .1" /> + + + + + + + + @@ -690,6 +706,22 @@ + + + + + + + + @@ -762,6 +794,22 @@ + + + + + + + + @@ -813,8 +861,15 @@ name="mChest" scale="0.02 0.08 0" /> - - + + + @@ -846,6 +901,16 @@ + + + + @@ -910,6 +975,22 @@ + + + + + + + + @@ -1799,6 +1880,22 @@ + + + + + + + + From a5b81fedc9b4d4f9020d29b1bc4bf004f3b3c4c2 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 4 Apr 2016 16:22:29 -0400 Subject: [PATCH 04/17] SL-344 - more slider support --- indra/newview/character/avatar_lad.xml | 288 +++++++++++++++++-------- 1 file changed, 195 insertions(+), 93 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index dec4ef3629..82efe733df 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -1275,32 +1275,28 @@ + scale="0.2 0 0" + offset="0 0 0" /> + offset=".01 0 0" /> + offset=".005 0 0" /> + offset=".005 0 0" /> - + offset=".005 0 0" /> + offset="0.01 0 0" /> + offset="0.01 0 0" /> + offset="0.01 0 0" /> + offset="0.005 0 0" /> - + + - + + + offset="-0.007 0 0" /> + + + + @@ -2074,6 +2082,11 @@ scale = "0.0 0.00 0.0" offset = "0.0 0.009 0.0" /> + + + + @@ -2592,24 +2610,24 @@ id="30764" group="0" name="Lip_Cleft_Deep" - value_min="-.5" + value_min="-1" value_max="1.2"> + offset = "0 0 0.002" /> + offset = "0 0 -0.001" /> + offset = "0 0 0.002" /> @@ -2647,6 +2665,11 @@ scale = "0.0 0.00 0.0" offset = "0.0 -0.003 0.0" /> + + + + - - - @@ -2895,6 +2917,12 @@ name = "mFaceJaw" offset = "0.0085 0.00 0" scale = "0.0 0.0 0.0" /> + + + @@ -2902,7 +2930,7 @@ id="30024" group="0" name="Wide_Eyes" - value_min="-1.5" + value_min="-2" value_max="2"> @@ -2948,6 +2976,25 @@ + + + + + + + + + offset="0.0025 0 -0.001" /> + + + + + + + + + + + + + + + + + + + + + + value_default="0.5"> @@ -4426,19 +4505,11 @@ + value_max="1.3"> @@ -4701,19 +4772,15 @@ + value_max="1.2"> @@ -5294,23 +5361,6 @@ - - - - - - - - + + + + + + + + + + + + + + id="30027" /> + + + + + + + + Date: Mon, 4 Apr 2016 22:11:46 -0400 Subject: [PATCH 05/17] SL-344 WIP - slider support for spine joints. --- indra/newview/character/avatar_lad.xml | 80 ++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 82efe733df..bac006ff59 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -593,10 +593,26 @@ name="mTorso" scale="0 0 .05" /> + + + + + + + + @@ -687,10 +703,26 @@ name="mTorso" scale="0 0 0.05" /> + + + + + + + + @@ -776,10 +808,26 @@ name="mTorso" scale="0.1 0.1 0" /> + + + + + + + + @@ -893,6 +941,14 @@ name="mPelvis" scale="0 0.1 0" /> + + + + + + + + @@ -956,10 +1020,26 @@ name="mTorso" scale="0 0 .3" /> + + + + + + + + From b138ca8aeec421f6e5b1412e7c7fbcefd87570d0 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 6 Apr 2016 16:12:39 -0400 Subject: [PATCH 06/17] SL-366 - more cases where skinned weights can go awry, and a bunch more asserts to verify. --- indra/llmath/llvolume.cpp | 10 ++++++---- indra/llprimitive/llmodel.cpp | 3 +-- indra/newview/llfloatermodelpreview.cpp | 5 ++++- indra/newview/llskinningutil.cpp | 9 ++++++++- 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index 725e50ee2b..e5b1cf536d 100755 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -2544,7 +2544,7 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size) U16 influence = weights[idx++]; influence |= ((U16) weights[idx++] << 8); - F32 w = llclamp((F32) influence / 65535.f, 0.f, 0.99999f); + F32 w = llclamp((F32) influence / 65535.f, 0.001f, 0.999f); wght.mV[cur_influence] = w; joints[cur_influence] = joint; cur_influence++; @@ -2561,11 +2561,13 @@ bool LLVolume::unpackVolumeFaces(std::istream& is, S32 size) F32 wsum = wght.mV[VX] + wght.mV[VY] + wght.mV[VZ] + wght.mV[VW]; if (wsum <= 0.f) { - wght = LLVector4(0.99999f,0.f,0.f,0.f); + wght = LLVector4(0.999f,0.f,0.f,0.f); } - for (U32 k=0; k<4; k++) + for (U32 k=0; k0); // If this fails, we have a floating point precision error. + joints_with_weights[k] = f_combined; } face.mWeights[cur_vertex].loadua(joints_with_weights.mV); diff --git a/indra/llprimitive/llmodel.cpp b/indra/llprimitive/llmodel.cpp index adf392fa21..398f0997f3 100755 --- a/indra/llprimitive/llmodel.cpp +++ b/indra/llprimitive/llmodel.cpp @@ -1001,7 +1001,7 @@ LLSD LLModel::writeModelToStream(std::ostream& ostr, LLSD& mdl, BOOL nowrite, BO LLModel::weight_list& LLModel::getJointInfluences(const LLVector3& pos) { - //1. If a vertex has been weighted then we'll find it via pos and return it's weight list + //1. If a vertex has been weighted then we'll find it via pos and return its weight list weight_map::iterator iterPos = mSkinWeights.begin(); weight_map::iterator iterEnd = mSkinWeights.end(); @@ -1224,7 +1224,6 @@ bool LLModel::loadModel(std::istream& is) } return false; - } bool LLModel::isMaterialListSubset( LLModel* ref ) diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index ceb3566d95..cda704f47b 100755 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -3317,14 +3317,17 @@ void LLModelPreview::genBuffers(S32 lod, bool include_skin_weights) LLVector3 pos(vf.mPositions[i].getF32ptr()); const LLModel::weight_list& weight_list = base_mdl->getJointInfluences(pos); + llassert(weight_list.size()>0 && weight_list.size() <= 4); // LLModel::loadModel() should guarantee this LLVector4 w(0,0,0,0); for (U32 i = 0; i < weight_list.size(); ++i) { - F32 wght = llmin(weight_list[i].mWeight, 0.999999f); + F32 wght = llclamp(weight_list[i].mWeight, 0.001f, 0.999f); F32 joint = (F32) weight_list[i].mJointIdx; w.mV[i] = joint + wght; + llassert(w.mV[i]-(S32)w.mV[i]>0.0f); // because weights are non-zero, and range of wt values + //should not cause floating point precision issues. } *(weights_strider++) = w; diff --git a/indra/newview/llskinningutil.cpp b/indra/newview/llskinningutil.cpp index fbe45c8ea6..732afdfa9a 100644 --- a/indra/newview/llskinningutil.cpp +++ b/indra/newview/llskinningutil.cpp @@ -291,12 +291,15 @@ void LLSkinningUtil::checkSkinWeights(LLVector4a* weights, U32 num_vertices, con { F32 *w = weights[j].getF32ptr(); + F32 wsum = 0.0; for (U32 k=0; k<4; ++k) { S32 i = llfloor(w[k]); llassert(i>=0); llassert(i 0.0f); } } #endif @@ -310,7 +313,7 @@ void LLSkinningUtil::getPerVertexSkinMatrix( LLMatrix4a& final_mat, U32 max_joints) { - + bool valid_weights = true; final_mat.clear(); S32 idx[4]; @@ -336,6 +339,7 @@ void LLSkinningUtil::getPerVertexSkinMatrix( if (handle_bad_scale && scale <= 0.f) { wght = LLVector4(1.0f, 0.0f, 0.0f, 0.0f); + valid_weights = false; } else { @@ -353,5 +357,8 @@ void LLSkinningUtil::getPerVertexSkinMatrix( final_mat.add(src); } + // SL-366 - with weight validation/cleanup code, it should no longer be + // possible to hit the bad scale case. + llassert(valid_weights); } From bd2b5b1666d7d7f43b86a24295e9a1f233fd7394 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 7 Apr 2016 10:52:37 -0400 Subject: [PATCH 07/17] Mac build fixes --- autobuild.xml | 28 ++++++++++++++-------------- indra/llkdu/llimagej2ckdu.cpp | 12 ++++++------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/autobuild.xml b/autobuild.xml index 6c29d5cb18..43bad77d25 100755 --- a/autobuild.xml +++ b/autobuild.xml @@ -1528,11 +1528,11 @@ archive hash - 468e88a527e610804c3eecf07f4ed70b + 01a7cc9d0e56238a9abedd7a41ccd0a3 hash_algorithm md5 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/Darwin/installer/llphysicsextensions_source-1.0.298369-darwin-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/Darwin/installer/llphysicsextensions_source-1.0.313564-darwin-313564.tar.bz2 name darwin @@ -1542,9 +1542,9 @@ archive hash - 793964e49c935b414c4bdbb8a0d14ad1 + c94dc7ab6efe59c0d5d04fc447257c57 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/Linux/installer/llphysicsextensions_source-1.0.298369-linux-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/Linux/installer/llphysicsextensions_source-1.0.313564-linux-313564.tar.bz2 name linux @@ -1554,16 +1554,16 @@ archive hash - 922aad5261aac150e5ce3c094e57f373 + 4a9dbeb437d0e1546b93d16073ff1442 url - http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions-source_llphysicsextensions-update/rev/298369/arch/CYGWIN/installer/llphysicsextensions_source-1.0.298369-windows-298369.tar.bz2 + http://s3-proxy.lindenlab.com/private-builds-secondlife-com/hg/repo/llphysicsextensions/rev/313564/arch/CYGWIN/installer/llphysicsextensions_source-1.0.313564-windows-313564.tar.bz2 name windows version - 1.0.298369 + 1.0.313564 llphysicsextensions_stub @@ -1582,11 +1582,11 @@ archive hash - 1175977a191ffc936fd0ccca433c8278 + c8c6e5867d1ead7ad452a3359b22cf44 hash_algorithm md5 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub_llphysicsextensions-update/rev/298370/arch/Darwin/installer/llphysicsextensions_stub-1.0.298370-darwin-298370.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions/rev/313563/arch/Darwin/installer/llphysicsextensions_stub-1.0.313563-darwin-313563.tar.bz2 name darwin @@ -1596,9 +1596,9 @@ archive hash - d13d7927692eab2d6a63e36166b72a8a + e99afb25a4fd5b08c5cd3060ae9c1d59 url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub_llphysicsextensions-update/rev/298370/arch/Linux/installer/llphysicsextensions_stub-1.0.298370-linux-298370.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions/rev/313563/arch/Linux/installer/llphysicsextensions_stub-1.0.313563-linux-313563.tar.bz2 name linux @@ -1608,16 +1608,16 @@ archive hash - 9594f6fd79ee924fe675a4a23e30516e + 6f4307a35c692e44b872125d7932df8e url - http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions-stub_llphysicsextensions-update/rev/298370/arch/CYGWIN/installer/llphysicsextensions_stub-1.0.298370-windows-298370.tar.bz2 + http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/llphysicsextensions/rev/313563/arch/CYGWIN/installer/llphysicsextensions_stub-1.0.313563-windows-313563.tar.bz2 name windows version - 1.0.298370 + 1.0.313563 mesa diff --git a/indra/llkdu/llimagej2ckdu.cpp b/indra/llkdu/llimagej2ckdu.cpp index 6a8959517d..4dde878366 100755 --- a/indra/llkdu/llimagej2ckdu.cpp +++ b/indra/llkdu/llimagej2ckdu.cpp @@ -1034,7 +1034,7 @@ all necessary level shifting, type conversion, rounding and truncation. */ val = (kdu_int32)(sp->fval*scale16); val = (val+128)>>8; // May be faster than true rounding val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffU)<<8)) { val = (val < 0 ? 0 : 255); } @@ -1052,7 +1052,7 @@ all necessary level shifting, type conversion, rounding and truncation. */ val = sp->ival; val = (val+offset)>>downshift; val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffU)<<8)) { val = (val < 0 ? 0 : 255); } @@ -1075,7 +1075,7 @@ all necessary level shifting, type conversion, rounding and truncation. */ val += (1<<(KDU_FIX_POINT-8))>>1; val >>= (KDU_FIX_POINT-8); val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffU)<<8)) { val = (val < 0 ? 0 : 255); } @@ -1094,7 +1094,7 @@ all necessary level shifting, type conversion, rounding and truncation. */ val = (val+offset)>>downshift; val <<= upshift; val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffU)<<8)) { val = (val < 0 ? 0 : 256 - (1<ival; val = (val+offset)>>downshift; val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffU)<<8)) { val = (val < 0 ? 0 : 255); } @@ -1132,7 +1132,7 @@ all necessary level shifting, type conversion, rounding and truncation. */ val = sp->ival; val <<= upshift; val += 128; - if (val & ((-1)<<8)) + if (val & ((0xffffffffu)<<8)) { val = (val < 0 ? 0 : 256 - (1< Date: Thu, 7 Apr 2016 11:50:16 -0400 Subject: [PATCH 08/17] SL-344 - added attachment points for hind feet --- indra/newview/character/avatar_lad.xml | 20 +++++++++++++++++++ .../newview/skins/default/xui/en/strings.xml | 2 ++ 2 files changed, 22 insertions(+) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index bac006ff59..e368e91988 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -545,6 +545,26 @@ rotation="0 0 0" visible_in_first_person="true"/> + + + + Alt Right Eye Tongue Groin + Left Hind Foot + Right Hind Foot Invalid Attachment Point Error: missing item Error: missing base item From a6319d419088c94e3ec91c76896004f2ab8d2763 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 7 Apr 2016 13:19:07 -0400 Subject: [PATCH 09/17] More mac build fixes --- indra/newview/llmaniprotate.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index ed40483029..acec4a4f7a 100755 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -68,8 +68,6 @@ const F32 SQ_RADIUS = RADIUS_PIXELS * RADIUS_PIXELS; const F32 WIDTH_PIXELS = 8; const S32 CIRCLE_STEPS = 100; const F32 DELTA = F_TWO_PI / CIRCLE_STEPS; -const F32 SIN_DELTA = sin( DELTA ); -const F32 COS_DELTA = cos( DELTA ); const F32 MAX_MANIP_SELECT_DISTANCE = 100.f; const F32 SNAP_ANGLE_INCREMENT = 5.625f; const F32 SNAP_ANGLE_DETENTE = SNAP_ANGLE_INCREMENT; From 0a05c3e65945bc8a40ee4e45e510c4f206dcd0f8 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 7 Apr 2016 15:45:10 -0400 Subject: [PATCH 10/17] More mac build fixes --- indra/newview/llmaniprotate.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp index acec4a4f7a..3a0f96cd37 100755 --- a/indra/newview/llmaniprotate.cpp +++ b/indra/newview/llmaniprotate.cpp @@ -67,7 +67,6 @@ const F32 RADIUS_PIXELS = 100.f; // size in screen space const F32 SQ_RADIUS = RADIUS_PIXELS * RADIUS_PIXELS; const F32 WIDTH_PIXELS = 8; const S32 CIRCLE_STEPS = 100; -const F32 DELTA = F_TWO_PI / CIRCLE_STEPS; const F32 MAX_MANIP_SELECT_DISTANCE = 100.f; const F32 SNAP_ANGLE_INCREMENT = 5.625f; const F32 SNAP_ANGLE_DETENTE = SNAP_ANGLE_INCREMENT; From e44bfcb5f5f489315159b9bd6bcfe0615c6a7265 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 8 Apr 2016 08:50:57 -0400 Subject: [PATCH 11/17] SL-344, SL-276 - chin bone, slider changes. --- indra/llcharacter/lljoint.h | 2 +- indra/newview/character/avatar_lad.xml | 415 +++++++++++++++----- indra/newview/character/avatar_skeleton.xml | 5 +- 3 files changed, 318 insertions(+), 104 deletions(-) diff --git a/indra/llcharacter/lljoint.h b/indra/llcharacter/lljoint.h index cc2f87ca20..fa4d0a5326 100755 --- a/indra/llcharacter/lljoint.h +++ b/indra/llcharacter/lljoint.h @@ -42,7 +42,7 @@ const S32 LL_CHARACTER_MAX_JOINTS_PER_MESH = 15; // BENTO JOINT COUNT LIMIT - need to set this to final skeleton size // (bones + attachments) + 2, rounded to next multiple of 4. -const U32 LL_CHARACTER_MAX_ANIMATED_JOINTS = 188; // must be divisible by 4! +const U32 LL_CHARACTER_MAX_ANIMATED_JOINTS = 192; // must be divisible by 4! const U32 LL_MAX_JOINTS_PER_MESH_OBJECT = 110; // These should be higher than the joint_num of any diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index e368e91988..ba295fff84 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -621,18 +621,6 @@ name="mSpine4" scale="0 0 .05" /> - - - - - - @@ -731,18 +719,6 @@ name="mSpine4" scale="0 0 0.05" /> - - - - - - @@ -1174,8 +1150,17 @@ name="mFaceEyebrowOuterRight" scale="0 0 0 " offset="0 -.005 0" /> - + + + + @@ -1329,6 +1314,16 @@ scale="0 0 0" offset="0 0 -.004" /> + + + + - - @@ -1457,7 +1452,7 @@ name="mFaceTeethLower" scale="0 0 0" offset="0.007 0 0" /> - + @@ -1496,11 +1491,21 @@ scale="0 0 0 " offset=".005 0 0" /> - - + + + + + + offset=".0013 0 0" /> + offset=".0013 0 0" /> + + @@ -1726,6 +1733,11 @@ + + @@ -3006,6 +3018,48 @@ + + + + + + + + + + + + + + + + + + + name = "mFaceTeethLower" + offset = "0.008 0 0" + scale = "0.0 0.0 0.0" /> + + + + + + + + + + + + + + + @@ -3199,7 +3284,7 @@ + offset="0.006 0 0.001" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4435,38 +4579,20 @@ + value_max=".5"> + value_max="1.5"> @@ -4560,20 +4686,11 @@ + value_max="1"> @@ -4587,20 +4704,11 @@ + value_max="1"> @@ -4875,10 +4983,6 @@ id="20880" group="0" name="Eyelid_Inner_Corner_Up" - label="Inner Eye Corner" - wearable="shape" - label_min="Corner Down" - label_max="Corner Up" value_min="-1.3" value_max="1.2"> @@ -5005,21 +5109,12 @@ + value_default="0"> @@ -11697,6 +11792,31 @@ render_pass="bump"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -62,6 +62,7 @@ + @@ -212,7 +213,7 @@ - + From 6a84d236f4e34a4b9192e6d1e68bca9bc6d8b8d7 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 11 Apr 2016 09:01:44 -0400 Subject: [PATCH 12/17] SL-362 - changed 'could not link driven params for wearable' into a debug message. Needs more diagnosis to figure out whether we care. Silencing for now to avoid redundant bug reports. --- indra/llappearance/llwearable.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llappearance/llwearable.cpp b/indra/llappearance/llwearable.cpp index 5ca9f55ac8..63069adcc8 100755 --- a/indra/llappearance/llwearable.cpp +++ b/indra/llappearance/llwearable.cpp @@ -173,7 +173,7 @@ void LLWearable::createVisualParams(LLAvatarAppearance *avatarp) { if( !param->linkDrivenParams(boost::bind(param_function,avatarp,_1 ), true)) { - LL_WARNS() << "could not link driven params for wearable " << getName() << " id: " << param->getID() << LL_ENDL; + LL_DEBUGS("Avatar") << "could not link driven params for wearable " << getName() << " id: " << param->getID() << LL_ENDL; continue; } } From 17152cc7ab5e354da75e23b310972310066f7aad Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 11 Apr 2016 11:45:28 -0400 Subject: [PATCH 13/17] SL-344 - additional slider tweaks --- indra/newview/character/avatar_lad.xml | 326 ++++++++++++++++++++----- 1 file changed, 265 insertions(+), 61 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index ba295fff84..61f06c6cf9 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -1370,7 +1370,7 @@ + + + + @@ -2170,7 +2180,7 @@ + scale = "0.10 0.85 0.0" /> + offset = "0.0 0.0008 0.0" /> + offset = "0.0 0.0008 0.0" /> + offset = "0.0 0.004 0.0" /> + + + + + + @@ -3022,38 +3047,38 @@ id="30760" group="0" name="Jaw_Angle" - value_min="-1.2" + value_min="-2" value_max="2" value_default="0"> @@ -3080,6 +3105,21 @@ + + + + + + + - + - + + + + + @@ -3226,6 +3276,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + offset="0.007 0 0.001" /> + offset="0.0 0.0038 0.0" /> + offset="0.0 -0.0038 0.0" /> @@ -3455,12 +3584,12 @@ + offset="0.002 0 0.0015" /> + offset="0.002 0 0.0015" /> @@ -3485,8 +3614,28 @@ - - + + + + + + + + + + + + name="mFaceCheekUpperLeft" + scale="0 0 0" + offset="0 0 0.02" /> + name="mFaceCheekUpperRight" + scale="0 0 0" + offset="0 0 0.02" /> @@ -3519,7 +3668,7 @@ + offset="0.001 0 -0.0015" /> + offset="0.001 0 -0.002" /> + offset="0.001 0 -0.002" /> @@ -4561,20 +4710,11 @@ + value_max="1"> @@ -4740,19 +4880,11 @@ + value_max="1.5"> @@ -11841,6 +11973,29 @@ render_pass="bump"> + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -13497,6 +13697,10 @@ render_pass="bump"> + + + @@ -13768,13 +13972,13 @@ render_pass="bump"> edit_group="shape_eyes" edit_group_order="1" name="Eye Size" - label="Eye Size" + label="Eye Size" label_min="Beady Eyes" label_max="Anime Eyes" value_min="0" value_max="1" value_default=".5" - show_simple="true" + show_simple="true" camera_elevation=".1" camera_distance=".35"> From 67eb559dc7c1be049898dd4216fbbd884496448d Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Mon, 11 Apr 2016 21:19:22 -0400 Subject: [PATCH 14/17] SL-344 - additional sliders, additional avatar_lad validation in skel_tool.py --- indra/newview/character/avatar_lad.xml | 236 ++++++++++++++++++++++++- scripts/content_tools/skel_tool.py | 17 ++ 2 files changed, 246 insertions(+), 7 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 61f06c6cf9..8c3a303996 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -3042,6 +3042,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + max1="-1.3" max2="-1.3" min2="1" - id="30017" /> + id="40017" /> + id="40185" /> + id="41629" /> + id="42629" /> + id="40007" /> + id="40647" /> diff --git a/scripts/content_tools/skel_tool.py b/scripts/content_tools/skel_tool.py index e5a7ce5f61..3b99be5e33 100644 --- a/scripts/content_tools/skel_tool.py +++ b/scripts/content_tools/skel_tool.py @@ -256,6 +256,22 @@ def validate_lad_tree(ladtree,skeltree): if not bone_name in bone_names: print "skel param references invalid bone",bone_name print etree.tostring(bone) + drivers = {} + for driven_param in ladtree.iter("driven"): + driver = driven_param.getparent().getparent() + driven_id = driven_param.get("id") + driver_id = driver.get("id") + if not driven_id in drivers: + drivers[driven_id] = set() + drivers[driven_id].add(driver_id) + for driven_id in drivers: + dset = drivers[driven_id] + if len(dset) != 1: + print "driven_id",driven_id,"has multiple drivers",dset + else: + if args.verbose: + print "driven_id",driven_id,"has one driver",dset + def remove_joint_by_name(tree, name): print "remove joint:",name @@ -325,6 +341,7 @@ def compare_skel_trees(atree,btree): if __name__ == "__main__": parser = argparse.ArgumentParser(description="process SL animations") + parser.add_argument("--verbose", action="store_true",help="verbose flag") parser.add_argument("--ogfile", help="specify file containing base bones") parser.add_argument("--ref_file", help="specify another file containing replacements for missing fields") parser.add_argument("--lad_file", help="specify avatar_lad file to check") From 9012a8a087ed8354001638471cc483bd2c0eee84 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 12 Apr 2016 11:09:54 -0400 Subject: [PATCH 15/17] SL-338 - added --set_version to anim_tool.py, for creating files to test upload of unsupported file versions. --- scripts/content_tools/anim_tool.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/content_tools/anim_tool.py b/scripts/content_tools/anim_tool.py index deac2607ba..08706074dd 100644 --- a/scripts/content_tools/anim_tool.py +++ b/scripts/content_tools/anim_tool.py @@ -510,6 +510,7 @@ if __name__ == "__main__": parser.add_argument("--summary", help="print summary of the output animation", action="store_true") parser.add_argument("--skel", help="name of the avatar_skeleton file") parser.add_argument("--lad", help="name of the avatar_lad file") + parser.add_argument("--set_version", nargs=2, type=int, help="set version and sub-version to specified values") parser.add_argument("infilename", help="name of a .anim file to input") parser.add_argument("outfilename", nargs="?", help="name of a .anim file to output") args = parser.parse_args() @@ -560,6 +561,9 @@ if __name__ == "__main__": anim.add_pos([joint], pos_array) else: print "no elt or no pos data for",joint + if args.set_version: + anim.version = args.set_version[0] + anim.sub_version = args.set_version[1] if args.dump: anim.dump(args.dump) if args.summary: From 31ea725b04f86856f051068020f2e710ce93cf59 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 12 Apr 2016 13:20:37 -0400 Subject: [PATCH 16/17] SL-344 - egg head, egg stretch, head length bug fixes --- indra/newview/character/avatar_lad.xml | 194 ++++++++++++++++++++++++- 1 file changed, 188 insertions(+), 6 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 8c3a303996..6701645a39 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -1446,7 +1446,7 @@ + offset="0.015 0 0" /> + offset="0 -0.004 0.0014" /> + + + + + + + + offset="0 0.004 0.0014" /> + + + + + + + + + + + + + + + + + + + + + + + + + offset="0 -0.004 0.0014" /> + + + + + + + + offset="0 0.004 0.0014" /> + + + + + + + + + + + + + + + + + + + + + + + + - + Date: Wed, 13 Apr 2016 09:31:23 -0400 Subject: [PATCH 17/17] SL-109 - reduced size of the spheres in 'show bones' display, to make it easier to see what's going on in crowded parts of the skeleton. --- indra/newview/llvoavatar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 2f0f377c40..d3ea864800 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1440,7 +1440,7 @@ void LLVOAvatar::renderBones() static LLVector3 EXTENDED_COLOR_OCCLUDED(0.0f, 1.0f, 0.0f); static LLVector3 EXTENDED_COLOR_VISIBLE(0.5f, 0.5f, 0.5f); - static F32 SPHERE_SCALEF = 0.003f; + static F32 SPHERE_SCALEF = 0.001f; for (; iter != end; ++iter) {