Lines Matching full:params
56 UBO params;
77 return normalize(dist) * params.springStiffness * (length(dist) - restDist);
83 uint index = id.y * params.particleCount.x + id.x;
84 if (index > params.particleCount.x * params.particleCount.y)
95 float3 force = params.gravity.xyz * params.particleMass;
103 force += springForce(particleIn[index-1].pos.xyz, pos, params.restDistH);
106 if (id.x < params.particleCount.x - 1) {
107 force += springForce(particleIn[index + 1].pos.xyz, pos, params.restDistH);
110 if (id.y < params.particleCount.y - 1) {
111 force += springForce(particleIn[index + params.particleCount.x].pos.xyz, pos, params.restDistV);
115 force += springForce(particleIn[index - params.particleCount.x].pos.xyz, pos, params.restDistV);
118 if ((id.x > 0) && (id.y < params.particleCount.y - 1)) {
119 force += springForce(particleIn[index + params.particleCount.x - 1].pos.xyz, pos, params.restDistD);
123 force += springForce(particleIn[index - params.particleCount.x - 1].pos.xyz, pos, params.restDistD);
126 if ((id.x < params.particleCount.x - 1) && (id.y < params.particleCount.y - 1)) {
127 force += springForce(particleIn[index + params.particleCount.x + 1].pos.xyz, pos, params.restDistD);
130 if ((id.x < params.particleCount.x - 1) && (id.y > 0)) {
131 force += springForce(particleIn[index - params.particleCount.x + 1].pos.xyz, pos, params.restDistD);
134 force += (-params.damping * vel);
137 float3 f = force * (1.0 / params.particleMass);
138 particleOut[index].pos = float4(pos + vel * params.deltaT + 0.5 * f * params.deltaT * params.deltaT, 1.0);
139 particleOut[index].vel = float4(vel + f * params.deltaT, 0.0);
142 float3 sphereDist = particleOut[index].pos.xyz - params.spherePos.xyz;
143 if (length(sphereDist) < params.sphereRadius + 0.01) {
145 particleOut[index].pos.xyz = params.spherePos.xyz + normalize(sphereDist) * (params.sphereRadius + 0.01);
157 b = particleIn[index - params.particleCount.x - 1].pos.xyz - pos;
158 c = particleIn[index - params.particleCount.x].pos.xyz - pos;
161 if (id.x < params.particleCount.x - 1) {
162 a = particleIn[index - params.particleCount.x].pos.xyz - pos;
163 b = particleIn[index - params.particleCount.x + 1].pos.xyz - pos;
168 if (id.y < params.particleCount.y - 1) {
170 a = particleIn[index + params.particleCount.x].pos.xyz - pos;
171 b = particleIn[index + params.particleCount.x - 1].pos.xyz - pos;
175 if (id.x < params.particleCount.x - 1) {
177 b = particleIn[index + params.particleCount.x + 1].pos.xyz - pos;
178 c = particleIn[index + params.particleCount.x].pos.xyz - pos;