text: [{"Owner":"Baker Xiao","Date":"2017-09-17T04:36:28Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tA weird problem again... a repro can be seen here_dd_ _lt_a href_eq__qt_https_dd_//www.babylonjs-playground.com/#0A74HT_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.babylonjs-playground.com/#0A74HT_lt_/a_gt_.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tPlaying this PG on android chrome_co_ or desktop browsers_co_ you will each character doing a different animation. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tHowever if you play this on iphone_co_ all characters will be playing the exact same animation always. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tAny theories?\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Wingnut","Date":"2017-09-18T01:42:49Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tHi BX.  I_t_m not an expert at all_co_ but there has been _qt_forum talk_qt_ about bone limits on mobile devices.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI_t_m not sure if it applies_co_ but perhaps...\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.html5gamedevs.com/topic/19796-skeleton-bones-limit/_qt_ rel_eq__qt__qt__gt_http_dd_//www.html5gamedevs.com/topic/19796-skeleton-bones-limit/_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.html5gamedevs.com/index.php?app_eq_core&amp_sm_module_eq_search&amp_sm_controller_eq_search&amp_sm_type_eq_forums_topic&amp_sm_nodes_eq_16_co_28_co_29_co_30_co_31_qt_ rel_eq__qt__qt__gt_Search the forum_lt_/a_gt_ carefully.  I_t_m sure I have seen others talking about similar issues.  Others will likely comment soon.  Sorry I didn_t_t have more answers.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Deltakosh","Date":"2017-09-18T15:33:22Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tCan you check with this scene and see if the rabbits are playing different animations?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_https_dd_//www.babylonjs.com/demos/bones/_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.babylonjs.com/demos/bones/_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Deltakosh","Date":"2017-09-18T15:34:00Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tAnd I think that _lt_span_gt__lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/5733-wingnut/?do_eq_hovercard_qt_ data-mentionid_eq__qt_5733_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/5733-wingnut/_qt_ rel_eq__qt__qt__gt_@Wingnut_lt_/a_gt__lt_/span_gt_ is on the right way.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tTo be sure can you just run this one as well_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_https_dd_//www.babylonjs-playground.com/#0A74HT%231_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.babylonjs-playground.com/#0A74HT#1_lt_/a_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2017-09-18T15:54:55Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tI see the same thing on iOS.  _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/?do_eq_hovercard_qt_ data-mentionid_eq__qt_28015_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/_qt_ rel_eq__qt__qt__gt_@Baker Xiao_lt_/a_gt_ turn on your playground debug layer.  My guess is that for instances_co_ it is trying to accomplish this in 1 draw call.  This is bad news for iOS which uses the minimum for the # of uniform buffers.  It also does not support WebGL 2_co_ so no uniform buffers.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThe console has the uniform limit was hit &amp_sm_ is was falling back to CPU skinning.  Now perhaps this is a problem there.  I know the only time I touched that_co_ someone had to fix it later_co_ so no opinion if anything can be done.  Best not to use instances &amp_sm_ skeleton at the same time_co_ if targeting mobile.  Android only allows double the minimum_co_ at least on my hardware &amp_sm_ chrome.\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/?do_eq_hovercard_qt_ data-mentionid_eq__qt_4442_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/_qt_ rel_eq__qt__qt__gt_@Deltakosh_lt_/a_gt__co_ I have a better handle of the scrolling problem of  debug / console on iOS.  I said it wasn_t_t working on one earlier topic.  On the Github issue_co_ I said it was.  The story is_co_ if a fallback is involved_co_ the text of all the shader source wraps and I guess keeps the field from scrolling. \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Baker Xiao","Date":"2017-09-18T21:20:36Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThanks _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/5733-wingnut/?do_eq_hovercard_qt_ data-mentionid_eq__qt_5733_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/5733-wingnut/_qt_ rel_eq__qt__qt__gt_@Wingnut_lt_/a_gt_ _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/?do_eq_hovercard_qt_ data-mentionid_eq__qt_4442_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/_qt_ rel_eq__qt__qt__gt_@Deltakosh_lt_/a_gt_ _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt_ for helping!\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/?do_eq_hovercard_qt_ data-mentionid_eq__qt_4442_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/_qt_ rel_eq__qt__qt__gt_@Deltakosh_lt_/a_gt_ making geometry unique fixes the issue! Is that what we should be doing? It fixes the individual animations but some faces on the mesh somehow appear missing... \n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt_ We_t_re not doing instancing though. We are cloning the meshes. Perhaps sharing the same geometry is the underlying cause? \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Deltakosh","Date":"2017-09-18T23:36:29Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tThe root problem is that you may have too much bones for some mobiles. Babylon.js will then fallback to software skeletons which require having unique geometry\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2017-09-19T15:09:41Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t_lt_p_gt_\n\tI should have looked at the source.  For iOS the theoretical max of bones is 32_co_ but in practice it is 22-23.  Uniforms other than for bones are going to reduce from the max.  Debug shows you have 41 per skeleton.  Unless there are many tied up in fingers_co_ toes_co_ and face that can be deleted prior to export_co_ it might be better to just start with a different skeleton.\n_lt_/p_gt_\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Baker Xiao","Date":"2017-09-20T03:15:30Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_189225_qt_ data-ipsquote-contentid_eq__qt_32960_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1505833781_qt_ data-ipsquote-userid_eq__qt_8492_qt_ data-ipsquote-username_eq__qt_JCPalmer_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t12 hours ago_co_ JCPalmer said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tI should have looked at the source.  For iOS the theoretical max of bones is 32_co_ but in practice it is 22-23.  Uniforms other than for bones are going to reduce from the max.  Debug shows you have 41 per skeleton.  Unless there are many tied up in fingers_co_ toes_co_ and face that can be deleted prior to export_co_ it might be better to just start with a different skeleton.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tThat makes perfect sense. Thanks for the info! We are going to try simplifying the skeleton for mobile. \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"gryff","Date":"2017-09-20T06:27:07Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/?do_eq_hovercard_qt_ data-mentionid_eq__qt_28015_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/_qt_ rel_eq__qt__qt__gt_@Baker Xiao_lt_/a_gt_ _dd_ As an additional thought it does not work in Firefox on my Windows XP machine (I know_co_ I know). It throws this amongst the errors_dd_\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_#define NUM_BONE_INFLUENCERS 7\n#define BonesPerMesh 42_lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt_ has explained the max number of bones issue  - but the NUM_Bone_Influencers surprised me given the low poly nature of the mesh ( I normally work with 2-3). How was the rigged mesh created?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tcheers_co_ gryff _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Baker Xiao","Date":"2017-09-21T00:08:10Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_189319_qt_ data-ipsquote-contentid_eq__qt_32960_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1505888827_qt_ data-ipsquote-userid_eq__qt_7026_qt_ data-ipsquote-username_eq__qt_gryff_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t17 hours ago_co_ gryff said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/?do_eq_hovercard_qt_ data-mentionid_eq__qt_28015_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/28015-baker-xiao/_qt_ rel_eq__qt__qt__gt_@Baker Xiao_lt_/a_gt_ _dd_ As an additional thought it does not work in Firefox on my Windows XP machine (I know_co_ I know). It throws this amongst the errors_dd_\n\t\t_lt_/p_gt_\n\n\t\t_lt_pre_gt_\n\n_lt_code_gt__lt_span_gt_#_lt_span_gt_define_lt_/span_gt_ NUM_BONE_INFLUENCERS 7_lt_/span_gt_\n_lt_span_gt_#_lt_span_gt_define_lt_/span_gt_ BonesPerMesh 42_lt_/span_gt__lt_/code_gt__lt_/pre_gt_\n\n\t\t_lt_p_gt_\n\t\t\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/?do_eq_hovercard_qt_ data-mentionid_eq__qt_8492_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/8492-jcpalmer/_qt_ rel_eq__qt__qt__gt_@JCPalmer_lt_/a_gt_ has explained the max number of bones issue  - but the NUM_Bone_Influencers surprised me given the low poly nature of the mesh ( I normally work with 2-3). How was the rigged mesh created?\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tcheers_co_ gryff _lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\t \n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tOh that_t_s good find! Thanks a lot for noticing this. We used _lt_a href_eq__qt_https_dd_//www.mixamo.com/#/_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.mixamo.com/_lt_/a_gt_ to auto rig the model. The algorithm is probably not very well optimized for low poly models. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tI_t_m not very experienced with this yet_co_ but does the max # of bone influencers have significant impact on performance as well? We haven_t_t noticed anything yet on the mobile devices we are testing with. \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JCPalmer","Date":"2017-09-21T15:29:02Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tFrom a RAM resource standpoint_co_ having a max of 1-4 all occupy the same space.  5-8 occupy doubles the amount.  The vertex shader will have less work to do with each one less though.  Remember that 5-8 is the double of 2 things_dd_  the indexes to the bones of each vert &amp_sm_ the amount of influence.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIn the Blender exporter_co_ one of the things I log is the # of vertices requiring the max used.  If say only 9 of 20_co_000 vertices are using 7_co_ dropping down to at least 6 ( and hopefully 4) during export should give pretty reasonable_co_ if not un-noticable results.  Blender also has its way to do it at the model level_co_ I think_co_ but to 4 is the only option.  Not sure your work flow_co_ but the point is you might search for a place to do it in multiple places.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Baker Xiao","Date":"2017-09-22T01:46:31Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_189457_qt_ data-ipsquote-contentid_eq__qt_32960_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1506007742_qt_ data-ipsquote-userid_eq__qt_8492_qt_ data-ipsquote-username_eq__qt_JCPalmer_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t10 hours ago_co_ JCPalmer said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tFrom a RAM resource standpoint_co_ having a max of 1-4 all occupy the same space.  5-8 occupy doubles the amount.  The vertex shader will have less work to do with each one less though.  Remember that 5-8 is the double of 2 things_dd_  the indexes to the bones of each vert &amp_sm_ the amount of influence.\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tIn the Blender exporter_co_ one of the things I log is the # of vertices requiring the max used.  If say only 9 of 20_co_000 vertices are using 7_co_ dropping down to at least 6 ( and hopefully 4) during export should give pretty reasonable_co_ if not un-noticable results.  Blender also has its way to do it at the model level_co_ I think_co_ but to 4 is the only option.  Not sure your work flow_co_ but the point is you might search for a place to do it in multiple places.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tThanks a lot! This is really helpful! \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"}]