Glsl VS.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. PAR HP Flt VtxHeightmap;
  2. PAR MP Flt VtxSkinning;
  3. #define ATTR attribute
  4. // !! must be in sync with GL_VTX_SEMANTIC !!
  5. ATTR HP Vec4 ATTR0 ; // pos
  6. ATTR MP Vec ATTR9 ; // hlp
  7. ATTR MP Vec ATTR1 ; // nrm
  8. ATTR MP Vec4 ATTR2 ; // tan bin
  9. ATTR HP Vec2 ATTR3 ; // tex
  10. ATTR HP Vec2 ATTR4 ; // tex1
  11. ATTR HP Vec2 ATTR11; // tex2
  12. ATTR MP Flt ATTR10; // size
  13. ATTR MP Vec ATTR5 ; // bone, should be MP VecI but won't compile
  14. ATTR MP Vec ATTR6 ; // weight
  15. ATTR LP Vec4 ATTR8 ; // material
  16. ATTR LP Vec4 ATTR7 ; // color
  17. MP Vec vtx_nrm () {return ATTR1 ;}
  18. MP Vec vtx_tan () {return ATTR2.xyz;}
  19. MP Flt vtx_tanW () {return ATTR2.w;}
  20. HP Vec2 vtx_pos2 () {return ATTR0.xy;}
  21. HP Vec vtx_pos () {return ATTR0.xyz;}
  22. HP Vec4 vtx_pos4 () {return ATTR0 ;}
  23. MP Vec vtx_hlp () {return ATTR9 ;}
  24. HP Vec2 vtx_tex () {return ATTR3;}
  25. HP Vec2 vtx_texHM () {return ATTR0.xz*Vec2(VtxHeightmap, -VtxHeightmap);}
  26. HP Vec2 vtx_tex1 () {return ATTR4 ;}
  27. HP Vec2 vtx_tex2 () {return ATTR11;}
  28. MP VecI vtx_bone () {return Bool(VtxSkinning) ? VecI(ATTR5) : VecI(0, 0, 0);}
  29. #ifdef GL_ES // GLSL may not support "#if GL_ES" if GL_ES is not defined
  30. MP Vec vtx_weight () {MP Flt w=ATTR6.x/(ATTR6.x+ATTR6.y); return Vec(w, 1.0-w, 0.0);} // use only 2 weights on OpenGL ES
  31. #else
  32. MP Vec vtx_weight () {return ATTR6;}
  33. #endif
  34. LP Vec4 vtx_color () {return ATTR7 ;}
  35. LP Vec vtx_color3 () {return ATTR7.rgb;}
  36. LP Vec4 vtx_material () {return ATTR8 ;}
  37. LP Vec vtx_material3() {return ATTR8.xyz;}
  38. MP Flt vtx_size () {return ATTR10 ;}