diff --git a/index.html b/index.html index c05d7b2c3d72ad623df7690d65b732bac157c71a..28cf377ef909c6171773cf2167c8aba5a5ee5df5 100755 --- a/index.html +++ b/index.html @@ -142,6 +142,7 @@ uniform vec2 u_textureDimNodeFaces; uniform float u_creasePercent; uniform float u_dt; + uniform float u_axialStiffness; uniform sampler2D u_lastPosition; uniform sampler2D u_lastVelocity; uniform sampler2D u_originalPosition; @@ -304,8 +305,7 @@ vec3 normal = getFromArray(faceMeta[0], u_textureDimFaces, u_normals).xyz; //calc forces - float triangleStiffness = 0.1; - anglesDiff *= triangleStiffness; + anglesDiff *= u_axialStiffness/100.0; if (faceIndex == 0){//a vec3 normalCrossAC = cross(normal, ac)/lengthAC; vec3 normalCrossAB = cross(normal, ab)/lengthAB; diff --git a/js/controls.js b/js/controls.js index 1fa8a130e994d8dbfff29294a497c575147428f5..2983bc60f9ffc4417c4dce5b38d1fa23180f1e5f 100755 --- a/js/controls.js +++ b/js/controls.js @@ -179,10 +179,10 @@ function initControls(globals){ globals.materialHasChanged = true; }); - setSliderInput("#triStiffness", globals.triStiffness, 0, 10, 0.01, function(val){ - globals.triStiffness = val;//todo update - // globals.materialHasChanged = true; - }); + // setSliderInput("#triStiffness", globals.triStiffness, 0, 10, 0.01, function(val){ + // globals.triStiffness = val;//todo update + // // globals.materialHasChanged = true; + // }); setSliderInput("#creaseStiffness", globals.creaseStiffness, 0, 3, 0.01, function(val){ globals.creaseStiffness = val; diff --git a/js/dynamic/dynamicSolver.js b/js/dynamic/dynamicSolver.js index 3c96830bfa8d0ebaa17fc614bae4a12cf1770b41..af711eb970e2f43a6427c23233caaafc5aa3dfa7 100755 --- a/js/dynamic/dynamicSolver.js +++ b/js/dynamic/dynamicSolver.js @@ -308,6 +308,7 @@ function initDynamicSolver(globals){ gpuMath.setUniformForProgram("velocityCalc", "u_textureDimNodeCreases", [textureDimNodeCreases, textureDimNodeCreases], "2f"); gpuMath.setUniformForProgram("velocityCalc", "u_textureDimNodeFaces", [textureDimNodeFaces, textureDimNodeFaces], "2f"); gpuMath.setUniformForProgram("velocityCalc", "u_creasePercent", globals.creasePercent, "1f"); + gpuMath.setUniformForProgram("velocityCalc", "u_axialStiffness", globals.axialStiffness, "1f"); gpuMath.createProgram("thetaCalc", vertexShader, document.getElementById("thetaCalcShader").text); gpuMath.setUniformForProgram("thetaCalc", "u_normals", 0, "1i"); @@ -383,8 +384,13 @@ function initDynamicSolver(globals){ } } globals.gpuMath.initTextureFromData("u_beamMeta", textureDimEdges, textureDimEdges, "FLOAT", beamMeta, true); - //recalc dt - if (programsInited) setSolveParams(); + + + if (programsInited) { + globals.gpuMath.setProgram("velocityCalc"); + globals.gpuMath.setUniformForProgram("velocityCalc", "u_axialStiffness", globals.axialStiffness, "1f"); + setSolveParams();//recalc dt + } } function updateExternalForces(){