working manual perspective frag shader