Basic bilinear filtering.  I don't think this is totally right yet.