bumpFragment.fx 700 B

1234567891011121314151617181920212223242526272829
  1. vec2 uvOffset = vec2(0.0, 0.0);
  2. #if defined(BUMP) || defined(PARALLAX)
  3. #ifdef NORMALXYSCALE
  4. float normalScale = 1.0;
  5. #else
  6. float normalScale = vBumpInfos.y;
  7. #endif
  8. #if defined(TANGENT) && defined(NORMAL)
  9. mat3 TBN = vTBN;
  10. #else
  11. mat3 TBN = cotangent_frame(normalW * normalScale, vPositionW, vBumpUV);
  12. #endif
  13. #endif
  14. #ifdef PARALLAX
  15. mat3 invTBN = transposeMat3(TBN);
  16. #ifdef PARALLAXOCCLUSION
  17. uvOffset = parallaxOcclusion(invTBN * -viewDirectionW, invTBN * normalW, vBumpUV, vBumpInfos.z);
  18. #else
  19. uvOffset = parallaxOffset(invTBN * viewDirectionW, vBumpInfos.z);
  20. #endif
  21. #endif
  22. #ifdef BUMP
  23. normalW = perturbNormal(TBN, vBumpUV + uvOffset);
  24. #endif