Place an royagonal-pointing arrow in every unshaded pearl. An arrow "sees" every cell whose center lies along the direction it's pointing in, with arrows blocking each other's line of sight.
Every unshaded cell must be seen by an arrow(s), and every shaded cell may not be seen by an arrow(s).
Every arrow must see exactly one arrow and be seen by exactly one arrow.
The arrows must make one "sight loop"--if one were to follow an arrow's line of sight to the arrow it sees and continue on, that process should reach every arrow on the board before returning to the starting arrow.