if a bullet drops 1 meter per 1000 meter distance, then to find how much is drops per given distance is:
1/1000 = ydrop/distance
distance/1000 = ydrop
example:
original ray = something you know how to calculate
original ray distance = 200
ydrop = distance * 1/1000 = 200/1000;
deviant ray = Vector3(originalray.x, originalray.y - ydrop, originalray.z).Normalized();
And only requires a single raycast, unless you’re applying this to something like self guided missile.
edit: drop would indicate it drops in negative y
Let me also add: i don’t know if you ever shot a rifle from long range, but you typically adjust your scope to account for the drop in distance.