id_offset, float stiffness ) { distance_constraint_insert( i0, i1, id_offset, stiffness, distance( p0, p1 ) ); distance_constraint_insert( i1, i2, id_offset, stiffness, distance( p1, p2 ) ); distance_constraint_insert( i2, i0, id_offset, stiffness, distance( p2, p0 ) ); } void distance_constraint_insert( mat4 l2w, uint accessor_id, uint input_primitive_id, uint id_offset, float stiffness ) { const uint i0 = read_index( accessor_pool[ accessor_id + 0 ], input_primitive_id * 3u + 0u ); const uint i1 = read_index( accessor_pool[ accessor_id + 0 ], input_primitive_id * 3u + 1u ); const uint i2 = read_index( accessor_pool[ accessor_id + 0 ], input_primitive_id * 3u + 2u ); const vec4 p0 = l2w * read_vertex( accessor_pool[ accessor_id + 1 ], i0, vec4( 0.0, 0.0, 0.0, 1.0 ) ); const vec4 p1 = l2w * read_vertex( accessor_pool[ accessor_id + 1 ], i1, vec4( 0.0, 0.0, 0.0, 1.0 ) ); const vec4 p2 = l2w * read_vertex( accessor_pool[ accessor_id + 1 ], i2, vec4( 0.0, 0.0, 0.0, 1.0 ) ); distance_constraint_insert( i0, i1, i2, p0.xyz/p0.w, p1.xyz/p1.w, p2.xyz/p2.w, id_offset, stiffness ); } 1ϓϦϛςΟϒ=1εϨουͰ࣮ߦ͢Δ