I'm writing a Software Renderer.
I need to cull a Polygon in Window Space.
For a Triangle the algorithm is:
function v3dPolyBackface(p: v3dPoly): boolean;
var
ax, ay, bx, by, cz : longint;
begin
ax:= p.v[0].prjX - p.v[1].prjX;
ay:= p.v[0].prjY - p.v[1].prjY;
bx:= p.v[0].prjX - p.v[2].prjX;
by:= p.v[0].prjY - p.v[2].prjY;
cz:= (ax * by - ay * bx) div 2;
if cz >= 0 then
result:= true else result:= false;
end;
how to cull a N-Pon?
Culling an Arbitrary Triangle out of a Polygon results sometimes to errors.