out v2f { flat int cameraIndex; vec4 pos; vec3 originalP; vec2 uv; mat3 tbn; } oVert; in vec4 T; void main() { oVert.originalP = P; vec4 worldSpacePos = TDDeform(P); oVert.pos = worldSpacePos; vec3 texcoord = TDInstanceTexCoord(uv[0]); oVert.uv.st = texcoord.st; oVert.cameraIndex = TDCameraIndex(); vec3 worldSpaceT = normalize(TDDeformNorm(T.xyz)); vec3 worldSpaceN = normalize(TDDeformNorm(N)); oVert.tbn = TDCreateTBNMatrix(worldSpaceN, worldSpaceT, T.w); gl_Position = TDWorldToProj(worldSpacePos); }