CreerVecteur(u,v,1,xr); ProduitMV(Pr,xr,RayonR); if (cosinus(vdir,RayonR)>0) { //si on est du meme sens de point de //vue, on parcourt des DP les plus //profonds au plus proches if ((i<xres-1) && (j<yres-1)) { for (k=NombreLayer-1;k>-1;k--) { pDP=(pLDP->Layer)[k]; profondeur=pDP->Distance; profondeurD=Warping_Point_Simple(Pr,Pdd,Fromr,Fromd,xr,xd, profondeur,vdir); uint=arrondi(xd[0]); vint=arrondi(xd[1]); if ((pDP->Rouge!=ROUGE_FOND) ||(pDP->Vert!=VERT_FOND) ||(pDP->Bleu!=BLEU_FOND)) { if (profondeurD>0){ if ((uint>=1) && (vint>=1) && (uintxj<res-1) && (vintj<yres-1)) { SplatterSimple(imaged,xres,uint,vint, pDP->Rouge,pDP->Vert,pDP->Bleu,1); } } } } } } else { //sinon, des plus proches au plus //profonds if ((i<xres-1) && (j<yres-1)) { for (k=0;k<NombreLayer;k++) { pDP=(pLDP->Layer)[k]; profondeur=pDP->Distance; profondeurD=Warping_Point_Simple(Pr,Pdd,Fromr,Fromd,xr,xd, profondeur,vdir); uint=arrondi(xd[0]); vint=arrondi(xd[1]); if ((pDP->Rouge!=ROUGE_FOND) ||(pDP->Vert!=VERT_FOND) ||(pDP->Bleu!=BLEU_FOND)) { if (profondeurD>0){ if ((uint>=1) && (vint>=1) && (uintxj<res-1) && (vintj<yres-1)) { SplatterSimple(imaged,xres,uint,vint, pDP->Rouge,pDP->Vert,pDP->Bleu,1); } } } } } }