Hi,
The main difference between the logic of Dense Mode (multicast application is so popular that every subnet in the network has at least one receiver waiting to receive the group traffic) and Sparse Mode (group users are located on a few subnets) forwarding, is that in DM the router automatically receives the traffic, if it doesn't want the traffic, it has to say no (send a Prune Message to the sender if a condition of this three exists: receiving multicast packets on a non-RPF interface / if the router does not have any active downstream routers that need packets for that group / the router does not know of any hosts on directly connected subnets that have joined that group) -> Otherwise when a router receives a multicast packet it forwards a copy out all other interfaces with some exception -> Never send it out the interface it was received from + it must pass the RPF check to prevent multicast routing loops depending on the optimized loop free unicast routing table (only in the case of PIM-DM, while in the case of DVMRP and OSPF for the RPF check they create their own independent routing tables).
While in SM unless the router specifically makes a request to a RP using a PIM Join Message for example (Rendezvous Point -> is either statically configured on all routers or dynamically chosen) it doesn't receive the multicast traffic -> SM routers also performs RPF check using the IP address of the RP rather than the IP address of the source of the multicast packet, because it is receiving the group traffic from the RP and after passing the check the traffic is forwarded.
HTH, please rate if it does help,
Mohammed Mahmoud.