レイトレーサーを作るシリーズ:

視線が鏡面にぶつかったとき、法線に対する視線の反射ベクトル(入射角=反射角)を次の式で求める:

求めた反射ベクトルと交差点で光線追跡を継続する:

// 反射ベクトルを求める
vec reflection(vec v, vec normal) {
  return v.add(normal.scale(-2 * v.dot(normal)));
}

  vec calc_reflection(vec pos, vec normal, vec raydir) {
    vec refvec = reflection(raydir, normal);
    return raytrace(pos, refvec);
  }