反射と屈折 水面に映し込ませる周囲の情景の環境マップは、動的に生成したい場合は、視点位置を水面に対して反転させた仮想視点から情景をテクスチャに描けばよい。 そして水底の様子は普通に始点から水面下の情景を描けばよい。 水面のレンダリング時は、さざ波の微細凹凸を表現した法線マップから取りだした法線ベクトルに配慮して、ピクセル単位の反射ベクトルを求めて、これに従って環境マップをサンプルする。 前述したフレネル反射の方程式を計算してその結果に応じて、環境マップからサンプルしたテクセルと、レンダリングした水底の様子のブレンド具合を調整する。 水底の様子を水面で視線が屈折する(=水底の様子が屈折して目に届く)様をシミュレーションするとさらにリアリティ度が増す。 下図は反射ベクトルと屈折ベクトルを図式化したものだ。屈折変数rは0~1の範囲で適当に与えればいい。 水面に反射する情景だけでなく、この屈折ベク