|........................................|
|........................................|
|........................................|
|.....................................x..|
|....................................x*..|
|..................................*xx...|
|.................................*xxx...|
|................................*xxx*...|
|...............................xxxxx....|
|..............................xxxxxx....|
|............................*xxxxxx*....|
|...........................*xxxxxxx.....|
|..........................*xxxxxxxx.....|
|.........................xxxxxxxxx*.....|
|........................xxxxxxxxxx*.....|
|......................*xxxxxxxxxxx......|
|.....................*xxxxxxxxxxx*......|
|....................*xxxxxxxxxxxx*......|
|...................xxxxxxxxxxxxxx.......|
|..................xxxxxxxxxxxxxx*.......|
|................*xxxxxxxxxxxxxxx*.......|
|...............*xxxxxxxxxxxxxxxx........|
|..............*xxxxxxxxxxxxxxxxx........|
|.............xxxxxxxxxxxxxxxxxx*........|
|............xxxxxxxxxxxxxxxxxxx.........|
|..........*xxxxxxxxxxxxxxxxxxxx.........|
|.........*xxxxxxxxxxxxxxxxxxxx*.........|
|........*xxxxxxxxxxxxxxxxxxxxx..........|
|.......xxxxxxxxxxxxxxxxxxxxxxx..........|
|......xxxxxxxxxxxxxxxxxxxxxxx*..........|
|....*xxxxxxxxxxxxxxxxxxxxxxxx*..........|
|...*xxxxxxxxxxxxxxxxxxxxxxxxx...........|
|..xxxxxxxxxxxxxxxxxxxxxxxxxx*...........|
|....**xxxxxxxxxxxxxxxxxxxxxx*...........|
|........**xxxxxxxxxxxxxxxxxx............|
|............**xxxxxxxxxxxxx*............|
|................**xxxxxxxxx*............|
|....................**xxxxx.............|
|........................**x.............|
|........................................|
so, digging into the GE of the consoles made in the 90s, I 've found another way to fill the triangle by a module able to determine whether a point is "on", "above" or "below" a line, defined by 2 points; The module uses two multipliers, several adders, and combinational logic, and three of these modules are used to determine which side of the line formed by 2 of the vertices of the triangle the third point is on. By doing this for all three vertices, a set of three sides is used by the line finders in the drawing stage to check if the processed pixel is also on the same side of the three lines as the third point, and, If this is true for all the vertices of the triangle, the point is within it.
bits market as '*' represent the correct outline of the triangle
bits market as 'x' represent the output of the new module
pro: it doesn't require a table, and it's fast
con: it doesn't interpolate, and it's a bit defective on borders since it loses some bits.