Projected grid

I try to implement a projected grid solution to display ocean. I’m following this article :
“Real-time water rendering - Introducing the projected grid”

As it will be game for andoid I choose libgdx engine. The problem I met is how to calculate range (min/max) matrix mentioned in the paper. Currently I’m doing it like :

float[] frange= { x_max-x_min, 0, 0, x_min , 0, y_max-y_min, 0, y_min, 0, 0, 1f, 0f ,
0, 0, 0, 1f };

Matrix4 range=new Matrix4().set(frange); range.tra(); // transpose

This matrix is multiplied with InverseViewprojection matrix of projector. The goal is the projector to spread the projected grid in min max range calculated based on camera / plane intersection points.

The problem is that this matrix I take from the example implementation is using DirectX and do not work properly in my case. I try to switch Y/Z and receive better looking grid but still not 100% ok.

Can somebody help me with advice how to use the same matrix but for Open GL.