Slide 61
Slide 61 text
ϝογϡ͔Β੍Λੜ
uint i2,
vec3 p0,
vec3 p1,
vec3 p2,
uint 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εϨουͰ࣮ߦ͢Δ