Is there any difference between cubes5 and polytex renderers?

Yes. Cubes5 is a slightly updated version of a constant-z renderer. As it draws 
each diagonal line, it has 2 sets of U/V increments, depending on the last 
direction (horizontal or vertical) moved. Using different increments cleans up 
the rough sawtooth edges that are normally seen with constant-z rendering. When 
viewing polygons at sharp angles, the algo fails, in which case I switch to 
using the old method.

You know, it's possible to do perfect 6dof texture mapping without any divides 
or multiplies per pixel. I'll show you how to transform the inner loop of a 
brute-force texture mapper:
Code:

iu = u/d; u += ui; d += di;

Note that I am calculating only for U to simplify things. 'iu' is the integer 
index that addresses the texture map. Now see if you can follow along:
Code:

while (u/d > iu) { iu++; } u += ui; d += di;

while (u > iu*d) { iu++; } u += ui; d += di;

while (u > iud) { iu++; iud += d; } u += ui; d += di; iud += iu*di;

while (u > iud) { iu++; iudi += di; iud += d; } u += ui; d += di; iud += iudi;


If you're looking for a demo of this in action, check out KUBE.EXE. Note that 
the algo performs best when the texture is low resolution. Higher resolution 
requires more iterations of the while() loops.