per-pixel shading ready but buggy