Ви хотіли математики, так ось що:
Вам потрібно знати коефіцієнт корисної дії вашої камери, датчики розміру Canon APS-C, це число - 0,018, для Nikon APS-C 0,019, для повнокадрових датчиків і 35-мм плівки - це число 0,029.
Формула призначена для повноти:
CoC (mm) = viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25
Інший спосіб зробити це формула Зейса :
c = d/1730
Де d - розмір діагоналі датчика, а c - максимально прийнятний CoC. Це дає дещо інші цифри.
Потрібно спочатку обчислити гіперфокальну відстань для об'єктива та камери (ця формула є неточною з відстанями, близькими до фокусної відстані, наприклад, крайнім макросом):
HyperFocal[mm] = (FocalLength * FocalLength) / (Aperture * CoC)
наприклад:
50mm lens @ f/1.4 on a full frame: 61576mm (201.7 feet)
50mm lens @ f/2.8 on a full frame: 30788mm (101 feet)
50mm lens @ f/1.4 on a Canon APS frame: 99206mm (325.4 feet)
50mm lens @ f/2.8 on a Canon APS frame: 49600mm (162.7 feet)
Далі потрібно обчислити найближчу точку, яка є найближчою відстані, яка буде зосереджена, враховуючи відстань між камерою та об’єктом:
NearPoint[mm] = (HyperFocal * distance) / (HyperFocal + (distance – focal))
наприклад:
50mm lens @ f/1.4 on a full frame with a subject at 1m distance: 0.984m (~16mm in front of target)
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 2.862m (~137mm in front of target)
50mm lens @ f/2.8 on a full frame with a subject at 1m distance: 0.970m (~30mm in front of target)
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 2.737m (~263mm in front of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance: 0.990m (~10mm in front of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 2.913m (~86mm in front of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance: 0.981m (~19mm in front of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 2.831m (~168mm in front of target)
Далі вам потрібно обчислити дальню точку, яка є найбільш віддаленою відстані, яка буде у фокусі, враховуючи відстань між камерою та об'єктом:
FarPoint[mm] = (HyperFocal * distance) / (HyperFocal – (distance – focal))
наприклад:
50mm lens @ f/1.4 on a full frame with a subject at 1m distance: 1.015m (~15mm behind of target)
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 3.150m (~150mm behind of target)
50mm lens @ f/2.8 on a full frame with a subject at 1m distance: 1.031m (~31mm behind of target)
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 3.317m (~317mm behind of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance: 1.009m (~9mm behind of target)
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 3.091m (~91mm behind of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance: 1.019m (~19mm behind of target)
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 3.189m (~189mm behind of target)
Тепер ви можете розрахувати загальну фокусну відстань:
TotalDoF = FarPoint - NearPoint
наприклад:
50mm lens @ f/1.4 on a full frame with a subject at 1m distance: 31mm
50mm lens @ f/1.4 on a full frame with a subject at 3m distance: 228mm
50mm lens @ f/2.8 on a full frame with a subject at 1m distance: 61mm
50mm lens @ f/2.8 on a full frame with a subject at 3m distance: 580mm
50mm lens @ f/1.4 on a Canon APS frame with a subject at 1m distance: 19mm
50mm lens @ f/1.4 on a Canon APS frame with a subject at 3m distance: 178mm
50mm lens @ f/2.8 on a Canon APS frame with a subject at 1m distance: 38mm
50mm lens @ f/2.8 on a Canon APS frame with a subject at 3m distance: 358mm
Тож повна формула w / CoC та HyperFocal перераховується:
TotalDoF[mm] = ((HyperFocal * distance) / (HyperFocal – (distance – focal))) -(HyperFocal * distance) / (HyperFocal + (distance – focal))
Або спрощено:
TotalDoF[mm] = (2 * HyperFocal * distance * (distance - focal)) / (( HyperFocal + distance - focal) * (HyperFocal + focal - distance))
За допомогою попереднього обчислення CoC: я зробив спробу спростити такі рівняння за допомогою таких підстановок: a = відстань перегляду (см) b = бажана роздільна здатність кінцевого зображення (lp / мм) для відстані перегляду 25 см c = збільшення d = Фокусна довжина e = Діафрагма f = відстань X = CoC
TotalDoF = ((((d * d) / (e * X)) * f) / (((d * d) / (e * X)) – (f – d))) - ((((d * d) / (e * X)) * f) / (((d * d) / (e * X)) + (f – d)))
Спрощено:
TotalDoF = (2*X*d^2*f*e(d-f))/((d^2 - X*d*e + X*f*e)*(d^2 + X*d*e - X*f*e))
Ще більше спрощено з WolframAlpha:
TotalDoF = (2 * d^2 * e * (d - f) * f * X)/(d^4 - e^2 * (d - f)^2 * X^2)
Або якщо нічого не визначено заздалегідь, ви отримуєте цього монстра, який є непридатним:
TotalDoF = ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) * distance) / ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) – (distance – focal)) - ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) * distance) / ((FocalLength * FocalLength) / (Aperture * (viewing distance (cm) / desired final-image resolution (lp/mm) for a 25 cm viewing distance / enlargement / 25)) + (distance – focal))
Спрощено:
(50*a*b*c*d^2*f*e*(d-f))/((25*b*c*d^2 - a*d*e + a*f*e)*(25*b*c*d^2 + a*d*e - a*f*e)
Тож в основному використовуйте перераховані CoC та HyperFocal :)