OpenGL 4.5 コア プロファイル仕様のセクション 14.4.1「Basic Point Rasterization」には、次のように記載されています。
ポイントのラスタライズは、現在のポイント サイズに等しい辺の長さで、ポイントの (xw; yw) を中心とする正方形の内側に中心があるフレーム バッファ ピクセルごとにフラグメントを生成します。
そのため、ポイント サイズ > 1 の場合、複数のフラグメントが生成される可能性があります。フラグメント シェーダーは、フラグメントごとに少なくとも 1 回呼び出されます。画像からマルチサンプリングを続けると、フラグメントごとに 1 回呼び出されるため、360,000 回が正解です。
これは、FSが呼び出される前にフラグメントを破棄する可能性があるため、説明するシーンで役割を果たすかどうかにかかわらず、初期の深度テストも無視することに注意してください。
仕様の同じセクションから:
ポイント スプライトをラスタライズする際に生成されるすべてのフラグメントには、ポイントに対応する頂点のデータである同じ関連データが割り当てられます。ただし、組み込みのフラグメント シェーダーには、gl_PointCoord
ポイント スプライト テクスチャ座標が含まれています。ポイント スプライト テクスチャ座標は、s
ポイントを水平方向に左から右に 0 から 1 まで変化します。POINT_SPRITE_COORD_ORIGIN
が
の場合LOWER_LEFT
、t 座標は垂直方向に下から上に 0 から 1 まで変化します。それ以外の場合、ポイント スプライト テクスチャ座標の原点がUPPER_LEFT
の場合、t
座標は垂直方向に上から下に 0 から 1 まで変化します。[...]
したがって、ポイント座標は、それが表すと期待するものを正確に表します。この定義は、ポイント サイズが 1 でマルチサンプリングが使用されていない場合でも、ポイント座標が必ずしも 0.5 になるとは限らないことを意味することに注意してください。その場合、ピクセル センターに対してフラグメント シェーダーが呼び出されますが、ポイントが正確にピクセル センター上にない可能性があるため、サンプリングしている 1x1 ピクセルの大きなポイントの正確な場所がわかります。