| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- PAR HP Flt VtxHeightmap;
- PAR MP Flt VtxSkinning;
- #define ATTR attribute
- // !! must be in sync with GL_VTX_SEMANTIC !!
- ATTR HP Vec4 ATTR0 ; // pos
- ATTR MP Vec ATTR9 ; // hlp
- ATTR MP Vec ATTR1 ; // nrm
- ATTR MP Vec4 ATTR2 ; // tan bin
- ATTR HP Vec2 ATTR3 ; // tex
- ATTR HP Vec2 ATTR4 ; // tex1
- ATTR HP Vec2 ATTR11; // tex2
- ATTR MP Flt ATTR10; // size
- ATTR MP Vec ATTR5 ; // bone, should be MP VecI but won't compile
- ATTR MP Vec ATTR6 ; // weight
- ATTR LP Vec4 ATTR8 ; // material
- ATTR LP Vec4 ATTR7 ; // color
- MP Vec vtx_nrm () {return ATTR1 ;}
- MP Vec vtx_tan () {return ATTR2.xyz;}
- MP Flt vtx_tanW () {return ATTR2.w;}
- HP Vec2 vtx_pos2 () {return ATTR0.xy;}
- HP Vec vtx_pos () {return ATTR0.xyz;}
- HP Vec4 vtx_pos4 () {return ATTR0 ;}
- MP Vec vtx_hlp () {return ATTR9 ;}
- HP Vec2 vtx_tex () {return ATTR3;}
- HP Vec2 vtx_texHM () {return ATTR0.xz*Vec2(VtxHeightmap, -VtxHeightmap);}
- HP Vec2 vtx_tex1 () {return ATTR4 ;}
- HP Vec2 vtx_tex2 () {return ATTR11;}
- MP VecI vtx_bone () {return Bool(VtxSkinning) ? VecI(ATTR5) : VecI(0, 0, 0);}
- #ifdef GL_ES // GLSL may not support "#if GL_ES" if GL_ES is not defined
- 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
- #else
- MP Vec vtx_weight () {return ATTR6;}
- #endif
- LP Vec4 vtx_color () {return ATTR7 ;}
- LP Vec vtx_color3 () {return ATTR7.rgb;}
- LP Vec4 vtx_material () {return ATTR8 ;}
- LP Vec vtx_material3() {return ATTR8.xyz;}
- MP Flt vtx_size () {return ATTR10 ;}
|