Ответ: Xors3D
самая мякотка вот она
float PlxDepth=.03;
float PlxDist=1000;
float3 PosCam;
float3 OrigPosCam;
OrigPosCam=PosCam;
PosCam=normalize(PosCam-IN.pWorld); //pworld это мул(in.position,MatWorld)
float depth;
float height;
float bias=PlxDepth/2;
float3x3 matTangentSpace=float3x3(IN.Tangent,IN.Binormal,IN .Normal);
matTangentSpace = transpose(matTangentSpace);
float3 CamPosPlx = normalize(mul(PosCam,matTangentSpace));
PlxDist = 1-(distance(OrigPosCam,IN.pWorld)/PlxDist);
if (PlxDist>.05) {
depth = tex2D(depthtex,TexCoords).r;
height = (PlxDepth*depth-bias);
TexCoords = TexCoords+height*CamPosPlx.xy*PlxDist;
}
юзаем texcoords теперь для диффуза и чего угодно
|