Open1
頂点シェーダーとピクセルシェーダーの補完の話

正規化デバイス座標出す際のw除算でおかしな値が出た
頂点シェーダーとピクセルシェーダーで補完された後の値が違うために起きていた
頂点A: xy=(2,2), w=2 → xy/w=(1,1)
頂点B: xy=(8,8), w=4 → xy/w=(2,2)
頂点シェーダーでw除算の場合:
中間点 = (1,1) + (2,2) / 2 = (1.5, 1.5)
ピクセルシェーダーでw除算の場合:
補間されたxy = (2,2) + (8,8) / 2 = (5,5)
補間されたw = 2 + 4 / 2 = 3
中間点 = (5,5) / 3 = (1.67, 1.67)
wも保管された値で計算しないといけない
この記事を参考に補完の勉強
頂点シェーダーの結果は線形補完される
vertex shaderは頂点ごとに実行される
fragment shaderはピクセルごとに実行される