Я уже обратился https://github.com/orangeduck/Corange/issues/28 к разработчику движка который я форкнул, парень он клёвый, а ещё очень умный, но обычно он довольно занят, так что я продублирую вопрос тута ))
Короче наткнулся на http://apoorvaj.io/exploring-bump-mapping-with-webgl.html#normal-mapping
смотрю прикольно, дай думаю себе присобачу, но не тут то было всё кривое. Вот пример как оно выглядит https://www.youtube.com/watch?v=bK-7biXVgHk
Сама parallax фцнкция
vec2 parallax_uv(vec2 uv, vec3 view_dir)
{
  float num_layers = 22;
  float layer_depth = 1.0 / num_layers;
  float cur_layer_depth = 0.0;
  vec2 delta_uv = view_dir.xy  * parallax_level / num_layers;
  vec2 cur_uv = uv;
  float depth_from_tex = texture2D(parallax_map, cur_uv).r;
  for (int i = 0; i < num_layers; i++) {
      cur_layer_depth += layer_depth;
      cur_uv -= delta_uv;
      depth_from_tex = texture2D(parallax_map, cur_uv).r;
      if (depth_from_tex < cur_layer_depth){
          break;
      }
  }
  /*
   //Step Parallax mapping
  return cur_uv;
  */
  // Parallax occlusion mapping
  vec2 prev_uv = cur_uv + delta_uv;
  float next = depth_from_tex - cur_layer_depth;
  float prev = texture2D(parallax_map, prev_uv).r - cur_layer_depth
               + layer_depth;
  float weight = next / (next - prev);
  return mix(cur_uv, prev_uv, weight);
  /*
  //Simple Parallax mapping
  float dep = texture2D(parallax_map,uv).z;
  vec2  uvn = view_dir.xy * (dep * parallax_level);
  return uv - uvn ;
  */
}
- Вариант 1 Расчёты позиций в фрагментном шейдере (не по канону) Тут на коробке корректно отображаются только две противоположные стороны выглядит это так https://youtu.be/bK-7biXVgHk?t=77
 
остальные вообще непонятно кривят, но это хоть частично работает сам код https://github.com/fedor-elizarov/parallax_data/blob/master/assets_core/shaders/deferred/static.fs
mat3 TBN=transpose(mat3(normalize(fTBN[0]),
                        normalize(fTBN[1]),
                        normalize(fTBN[2])));
          vec3 position  = normalize(camera_position - fPosition);
          vec3 ViewPos   = TBN * position;
               ViewPos.y = -ViewPos.y;
          /*calculate from fragment shader*/
          //Variant 1 
          uvs=parallax_uv(uvs, ViewPos);         // correct 2 plane in box
- Вариант 2 Расчёты позиций в вершинном шейдере с интерполированным возвратом (по канону) вообще всё криво, но! все стороны подчиняются одинаковым искажениям, но лбом об стену и так и сяк никак не работает корректно сам код тут https://github.com/fedor-elizarov/parallax_data/blob/master/assets_core/shaders/deferred/static.vs
 
//vs
  mat3 TBN= transpose(mat3(normalize (w_tangent),
                           normalize (w_binormal),
                           normalize (w_normal)));
  fTanFragPos = TBN * fPosition;
  fTanViewPos = TBN * camera_position;
  fTanViewPos = normalize(fTanViewPos - fTanFragPos);
  fTanViewPos.y = -fTanViewPos.y;
//fs
/*calculate from vertex shader*/
//Variant 2 
uvs = parallax_uv(uvs,fTanViewPos); // all planes in box is broken
И ещё раз ссылку на видео где характер искажений виден https://www.youtube.com/watch?v=bK-7biXVgHk
Вот рабочая сборка для примера https://github.com/fedor-elizarov/parallax_data
запустить ./parallax и из каталога ./assets/deep/ мышкой перетащить obj и или mat файлы 
Ткните палочкой где я недосмотрел? Если в первом варианте всё работает корректно только для двух сторон то проблема в TBN? он неверно расчитан? А как тогда правильно?
Так я запилил вторую демку там уже можно просто открыть ./assets/deep/parallax.vs и ./assets/deep/parallax.fs и заимплементировать в parallax.c кастомный рендер в обход основного из движка. Если у кого руки чешутся помочь parallax этот багрённый заимплементить велкам ))))))))))
https://github.com/fedor-elizarov/parallax_data/ (version2)
- UDP: It woked!
 
Короче аллилуя, проблема решилась расчётом TBN в вершинном шейдере, реверсе значений камеры x to y, y to x и последующем инфертировании в отрицательное значение позиции камеры по y (изначально x соотвецтвенно) если кто-то форкал Corange думаю будет это полезно знать рабочий код parallax околюжена тут https://github.com/fedor-elizarov/parallax_dataА тут видяшка как всё работает https://youtu.be/FUYzaYnRJWY


