il faut accéder au tableau de pixel de chaque surface de l´image.
regarde si tu as des méthodes Lock() avec directX, qui te donne un pointeur sur l´image.
la prodondeur du pixel dépend de ce que tu as défini !
la on tombe dans l´exploration octet par octet.
si tu es en 32 bits, chaque pixel fera 4 octets.
ils sont toujours rangés de gauche a droite et de haut en bas. le nombre d´octets pour une ligne est définie par le pitch de ta surface ( que tu dois avoir) d´une maniere ou d´une autre.
Tu calcules et accede au bon pixel.
Pour qu´il y aie supperposition de pixel, il faut et il suffit que pour un pixel donné, le pixel correspondant de la surface 1 soit différent de la couleur définie comme transparente pour la surface 1, ET que le pixel correspondant de la surface 2 soit différent de la couleur définie comme transparente pour la surface 2.
Dans ce cas la, il y a collision au pixel pres, sinon, non.
Aucun exemple d´implémentation, je sais faire ça sous SDL ou OpenGL, mais pas DirectX.