- /*
- if (polyplane != NULL)
- {
- */
- /*
- distinv = 1.0f / (polyplane->dist - DotProduct(r_origin, polyplane->normal));
- pavailsurf->wstepx = DotProduct(r_clip_viewmatrix[0], polyplane->normal) * xscaleinv * distinv;
- pavailsurf->wstepy = DotProduct(r_clip_viewmatrix[1], polyplane->normal) * yscaleinv * distinv;
- pavailsurf->w00 = DotProduct(r_clip_viewmatrix[2], polyplane->normal) * distinv - r_clip_viewcenterx * pavailsurf->wstepx - r_clip_viewcentery * pavailsurf->wstepy;
- */
- /*
- }
- else
- {
- */
- // calculate the plane for the polygon
- if (!R_Clip_TriangleToPlane(screenverts[0], screenverts[1], screenverts[2], &localplane))
- {
- for (i = 0;i < numverts;i++)
- for (j = i + 1;j < numverts;j++)
- for (k = j + 1;k < numverts;k++)
- if (R_Clip_TriangleToPlane(screenverts[i], screenverts[j], screenverts[k], &localplane))
- goto valid;
- return; // gave up
- valid:;
- }
-
- // Set up the 1/z gradients from the polygon, calculating the
- // base value at screen coordinate 0,0 so we can use screen
- // coordinates directly when calculating 1/z from the gradients
- distinv = 1.0f / localplane.normal[2];
- pavailsurf->wstepx = -(localplane.normal[0] * distinv);
- pavailsurf->wstepy = -(localplane.normal[1] * distinv);
- pavailsurf->w00 = localplane.dist * distinv;
- /*
- }
- */
- // REMOVELATER
- /*
- prevdist = z1 * plane.normal[2] - plane.dist;
- dist = z2 * plane.normal[2] - plane.dist;
- d = prevdist / (prevdist - dist);
- zc = z1 + d * (z2 - z1);
-
- prevdist = plane.normal[0] + z1 * plane.normal[2] - plane.dist;
- dist = plane.normal[0] + z2 * plane.normal[2] - plane.dist;
- d = prevdist / (prevdist - dist);
- zx = (z1 + d * (z2 - z1)) - zc;
-
- prevdist = plane.normal[1] + z1 * plane.normal[2] - plane.dist;
- dist = plane.normal[1] + z2 * plane.normal[2] - plane.dist;
- d = prevdist / (prevdist - dist);
- zy = (z1 + d * (z2 - z1)) - zc;
- */
-
- /*
- zc = (-plane.dist) / ((-plane.dist) - (plane.normal[2] - plane.dist));
- zx = ((plane.normal[0] - plane.dist) / ((plane.normal[0] - plane.dist) - (plane.normal[0] + plane.normal[2] - plane.dist))) - zc;
- zy = ((plane.normal[1] - plane.dist) / ((plane.normal[1] - plane.dist) - (plane.normal[1] + plane.normal[2] - plane.dist))) - zc;
- */
-
-// zc = (plane.dist / plane.normal[2]);
-// zx = -(plane.normal[0] / plane.normal[2]);
-// zy = -(plane.normal[1] / plane.normal[2]);
-// zy = ((plane.normal[1] - plane.dist) / (-plane.normal[2])) + ((plane.dist) / (-plane.normal[2]));
-#else // REMOVELATER
- for (i = 0;i < numverts;i++)
- {
- vx = tempverts2[i][0] - r_origin[0];
- vy = tempverts2[i][1] - r_origin[1];
- vz = tempverts2[i][2] - r_origin[2];
- screenverts[i][0] = r_clip_viewmatrix[0][0] * vx + r_clip_viewmatrix[0][1] * vy + r_clip_viewmatrix[0][2] * vz;
- screenverts[i][1] = r_clip_viewmatrix[1][0] * vx + r_clip_viewmatrix[1][1] * vy + r_clip_viewmatrix[1][2] * vz;
- screenverts[i][2] = r_clip_viewmatrix[2][0] * vx + r_clip_viewmatrix[2][1] * vy + r_clip_viewmatrix[2][2] * vz;
- }
-
- // REMOVELATER