GitHub PushEvent at 2014-07-18 18:33:52
Repository: three.js
Actor: ikerr
Payload: {"shas":[["aff4c1c2a11dce340b34e1ede805258d9b0a7283","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","This commit improves the flexibility of the animation system by allowing any\nObject3D instace to be used for skinning--not just Bone instances.  Furthermore,\nthis commit removes the restriction that a SkinnedMesh can only be skinned by\nchild objects/bones.  Now, a SkinnedMesh can reference arbitrary objects for the\npurpose of skinning.  One implication of this is that Bone.skinMatrix has been\nremoved as it is no longer necessary.\n\nHere is a breakdown of the notable changes:\n\nsrc/extras/animation/Animation.js\n* Fixed animation of non-bones\n* Removed references to skinMatrix\n\nsrc/extras/animation/AnimationHandler.js\n* Removed special handling of SkinnedMatrix instances\n\nsrc/extras/animation/KeyFrameAnimation.js\n* Removed special handling of Bone instances\n* Removed references to skinMatrix\n\nsrc/extras/helpers/SkeletonHelper.js\n* Removed references to skinMatrix and Skeleton\n\nsrc/objects/Bone.js\n* Removed references to skinMatrix\n\nsrc/objects/Skeleton.js\n* Removed entirely, refactoring functionality back into SkinnedMesh\n\nsrc/objects/SkinnedMesh.js\n* Re-added code to construct the skeleton hierarchy when it is present in the geometry object that is passed to the constructor.  This is here for backwards compatibility and could be refactored at a later time.\n* Added bind() function that takes an array of bones (Object3D instances) that are used to skin the mesh.  This function establishes the initial bind transforms of the mesh and bones.\n* Added initBoneInverses() function that is used internally by bind() to calculate the bind matrices.\n* Added initBoneMatrices(), which contains refactored code that previously existed in the constructor (prior to the THREE.Skeleton refactor).  This code sets up storage for the bone matrices and/or texture.  It is used internally by bind().\n* Added updateBoneMatrices(), which is called by the renderer after the scene's world matrices have been updated.  This is done in a separate pass because SkinnedMesh can depend on objects that are stored anywhere in the scene hierarchy, not necessarily child objects.\n\nsrc/renderers/WebGLRenderer.js\n* Call updateBoneMatrices() on SkinnedMesh instances after world matrices have been updated\n* Removed references to Skeleton","Ian Kerr",false],["da425be8a9712a6df3ad62c7e7887bd82e8d3b74","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Merge branch 'dev' into refactor_flexible_skinning\n\nConflicts:\n\tbuild/three.js\n\tbuild/three.min.js","Ian Kerr",false],["c18a8b9a8ab0f90bfc530bf47186f3da432eac74","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Re-added special handling of SkinnedMesh.","Ian Kerr",false],["889fa9ff6372724402cae24f7f3ea7d62b4e48ec","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","This commit re-introduces THREE.Skeleton to decouple bone/object transformations\nfrom the transforms that bind a THREE.Skeleton to a THREE.SkinnedMesh.  This\nallows us to animate multiple THREE.SkinnedMesh instances with a single\nTHREE.Skeleton.\n\nHere is a summary of the major changes:\n\nextras/helpers/SkeletonHelper.js\n* Fixed code mistakes (missing 'THREE').\n\nobjects/Bone.js\n* Removed duplicate code that is already in THREE.Object3D.\n\nobjects/Skeleton.js\n* Not a descendant of THREE.Object3D (previous version was).\n* Stores boneMatrices and boneTexture.\n* Independent of THREE.SkinnedMesh.\n\nobjects/SkinnedMesh.js\n* Refactored boneMatrices and boneTexture related code into THREE.Skeleton.\n* Added two bind matrix modes: \"attached\" and \"detached\".\n\nrenderers/WebGLRenderer.js\nrenderers/webgl/WebGLProgram.js\n* Attach bindMatrix and bindMatrixInverse to shaders.\n\nrenderers/shaders/ShaderChunk.js\nrenderers/shaders/ShaderLib.js\n* Use bind matrices during skinning.","Ian Kerr",false],["5bbb2adc3b9a0cb4c8127abfa63c7fd935fba54b","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Re-added Skeleton and SkeletonHelper to includes.","Ian Kerr",false],["f705dc45f076a7d3f091087a3559e604da6e6fd8","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Merge branch 'dev' into refactor_flexible_skinning","Ian Kerr",false],["a89b5adf1ff6e4da846a11806832a1caef9cd497","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Merge branch 'dev' into refactor_flexible_skinning\n\nConflicts:\n\tbuild/three.js\n\tsrc/extras/animation/Animation.js\n\tsrc/objects/Skeleton.js","Ian Kerr",false],["416837e37132b93a87fe1a6f16a38ede3b0e7e72","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Reverted three.min.js.","Ian Kerr",false],["e018acb0a11b15e3c7226dfe5d30bfefbf777fb3","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Reverted three.min.js to the version stored in dev.","Ian Kerr",false],["715eb8ec8f800e60883216831c4c77a0505a3363","38ae6c0e2772a20e8e989f80cb8c99d274e44242@nvidia.com","Refresh light uniforms only when needed\n\nAfter this change, if 'clean' property is added to an uniform and\nevaluates to true, the uniform is not uploaded to the GPU. This is used\nto avoid needlessly refreshing lights uniforms when the material changes\nbut the program does not, saving CPU usage.","Olli Etuaho",false],["be10e32247650143a82f8e3b38097eb656d5f38f","38ae6c0e2772a20e8e989f80cb8c99d274e44242@nvidia.com","Improve code style in light uniform optimization","Olli Etuaho",false],["8437bfb9c6330479aca1772ebd10ca662fff6fac","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Merge branch 'dev' into refactor_flexible_skinning\n\nConflicts:\n\tsrc/objects/Skeleton.js\n\tsrc/renderers/shaders/ShaderChunk.js","Ian Kerr",false],["083a42ca20cb644ed5bf39863e4a484773af6147","fb301fbcbf3098eedb598988a6dba3023a5f3753@meterplugs.com","Updated skinning shader chunks to use the bind matrices.","Ian Kerr",false],["c3ea17849262fe7f23d814882558bdc269af4a89","38ae6c0e2772a20e8e989f80cb8c99d274e44242@nvidia.com","Only put those uniforms to uniformsList which are in the program\n\nAlso cache uniform locations in the uniformsList, so that querying them\nfrom the program is not needed. This reduces CPU usage.","Olli Etuaho",false],["a9a3e317f9ef8dc7e23486c07d0e2c9d6a1b6ab0","38ae6c0e2772a20e8e989f80cb8c99d274e44242@nvidia.com","Replace uniform.skipUpdate with uniform.needsUpdate\n\nThis is consistent with usage of needsUpdate throughout the rest of the\ncode. The property is not added to all uniforms for now, so the check\nneeds to be needsUpdate === false rather than just ! needsUpdate.","Olli Etuaho",false],["92e53d1a2ded9cc70a924641f7a6011fbc0ec55d","4ebb4595eab529e499b9b866707a956aee2bf4ab@ameco.tv","PnlTri.js Rev. 1.4; smaller & faster","Juergen Ahting",false],["242e95108ef8b35f95126f383a27b70ef0e15b28","59bd0a3ff43b32849b319e645d4798d8a5d1e889@mrdoob.com","Merge pull request #5036 from NVIDIA/optimize-uniforms-list\n\nOnly put those uniforms to uniformsList which are in the program","Mr.doob",false],["1125122175ccd4d1ae54bb1b70c962c309573f35","59bd0a3ff43b32849b319e645d4798d8a5d1e889@mrdoob.com","Merge pull request #5034 from NVIDIA/optimize-uniform-updates-2\n\nRefresh light uniforms only when needed","Mr.doob",false],["089bbcfb7c7aabbfcdcdcca8dcba38979abcf098","59bd0a3ff43b32849b319e645d4798d8a5d1e889@mrdoob.com","Merge pull request #5038 from jahting/pnltrixmpl\n\nTriangulation example webgl_geometry_text2 with PnlTri.js Rev. 1.4: smaller & faster","Mr.doob",false],["64976be3a365a51f44f2608ffdd18da74875c03c","59bd0a3ff43b32849b319e645d4798d8a5d1e889@mrdoob.com","Updated builds.","Mr.doob",false]],"size":75,"ref":"refs/heads/dev","head":"b898e68decc6828b7d44085b292dd119285c1d7d"}