search
Logo

Авторизация

Личные сообщения

Вы не авторизованы.

интерполяция нормалей к точкам PDF Печать E-mail
17.10.2009 19:17
интерполяция нормалей к точкам
  Nq.x =w* N2.x +(1-w)* N1.x;
Nq.y =w* N2.y +(1-w)* N1.y;
Nq.z =w* N2.z +(1-w)* N1.z;
  Nr.x=t*N3.x+(1-t)*N1.x;
Nr.y=t*N3.y+(1-t)*N1.y;
Nr.z=t*N3.z+(1-t)*N1.z;
//Определение интенсивности в точках интерполяции
  Colq= Color (Nq, nab, ist, col_pov);
Colr= Color (Nr, nab, ist, col_pov); 
  z_buff(x3,x2,y3,y2,yq,xq,Colq);
  z_buff(x3,x1,y3,y1,yq,xr,Colr);
  dp=abs(xq-xr);
  if(xq<xr)
  dp1=xq;
  else dp1=xr;
  for(int e=1;e<dp;e++){
  dp1+=1;
  zp1=zq+ abs(xq-dp1)*(zq-zr)/abs(xq-xr);
  if(xq<xr){
  u=Lenght(dp1,yq,xq,yq)/ Lenght(dp1,yq,xr,yr);  
  }
  else u=Lenght(dp1,yq,xq,yq)/ Lenght(dp1,yq,xr,yr);  
  //интерполяция нормали
  Np.x=u*Nq.x+(1-u)*Nr.x;
  Np.y=u*Nq.y+(1-u)*Nr.y;
  Np.z=u*Nq.z+(1-u)*Nr.z;
  //определение интенсивности точки
  Colp= Color (Np, nab, ist, col_pov);
  z_buff(dp1,yq,zp1,Colp);
  } 
  }  
Где p[1], p[2] , p[3] – вершины полигона, x1, x2, x3, y1, y2, y3, z1, z2, z3 – соответственно их координаты, Col1, Col2, Col3 – их интенсивность.

 

Полезное

Облако тегов