// This file is distributed under a BSD license. See LICENSE.txt for details. vs.2.0 // material 2.0: envi pass (vertex shader) // flag data layout, constants flags Flags _pad[7] TexFlags[4] TexScale[4] LgtFlags[4] LgtScale[4] SRT1[9] SRT2[5] ColC[4] TexUsed[4] LgtUsed[4] SrcScale[4] SrcScale2[4] LgtType endflags alias mWVP = c0 alias mModel = c4 alias cCam = c8 def c16,2,-1,0,0 // inputs alias vPos = v0,vUV = v1,vNormal = v2,vTangent = v3 dcl_position vPos dcl_texcoord0 vUV dcl_normal vNormal dcl_tangent vTangent // position m4x4 oPos,vPos,mWVP // unpack tangent space basis temp N,B,T vmov N,vNormal mov T,vTangent /*mov N,vNormal vmov T,vTangent*/ mul B.xyz,N.yzx,T.zxy mad B.xyz,-N.zxy,T.yzx,B // normal (=x basis vector) m3x3 oT0.xyz,N,mModel // eye temp eye add eye,cCam,-vPos m3x3 oT1.xyz,eye,mModel // uv, y/z basis vector (only if bumped) if LgtFlags[2][17] mov oT2.xy,vUV m3x3 oT3.xyz,B,mModel m3x3 oT4.xyz,T,mModel endif