Дополнен 1 месяц назад
if proj_u >= 0 and proj_v >= 0 and proj_w >= 0:
res_a, res_b, res_c = proj_u * inv_az, proj_w * inv_bz, proj_v * inv_cz
res_sum = res_a + res_b + res_c
point_u, point_v, point_w = res_a / res_sum, res_b / res_sum, res_c / res_sum
point_z = point_u * vertex_az + point_v * vertex_bz + point_w * vertex_cz
prev_z = z_buffer[pixel_x, pixel_y]
if prev_z > point_z or prev_z == 0:
z_buffer[pixel_x, pixel_y] = point_z
colour = 255 * abs(normal_az + normal_bz + normal_cz) / 3
surfarray[pixel_x, pixel_y] = colour, colour, colour
функция довольно большая и не помещается в вопросе, поэтому я оставлю 2 частями