Плясать надо от брейкпойнтов + делать поправку на экраны повышенной плотности. В среднем используется 3 брейкпонта, следовательно при классово верном подходе необходимо нарезать минимум по 2 пикчи для каждого брекпойнта и экрана повышенной плотности = 6 картинок.
В принципе можно и оптимизировать, если удасться словить двукратное увеличение между брейкпойнтами. Т.е. брать не 2x от разрешения картинку, а от следующего брейкпонта, но это из области фантастики и больших бюджетов.