Align preview blur metric with plot
This commit is contained in:
+11
-4
@@ -83,13 +83,20 @@ export const calculateBlurCircle = ({ focalLengthMm, aperture, subjectDistanceM,
|
||||
const safeAperture = coercePositiveNumber(aperture, 1);
|
||||
const f = focalLengthMm;
|
||||
const u = metersToMillimeters(coercePositiveNumber(subjectDistanceM, 0.5));
|
||||
const s = metersToMillimeters(coercePositiveNumber(sceneDistanceM, 0.51));
|
||||
|
||||
if (Math.abs(s - u) < 1e-6) {
|
||||
if (Math.abs(u - f) < 1e-6) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (Math.abs(u - f) < 1e-6) {
|
||||
if (!Number.isFinite(sceneDistanceM)) {
|
||||
const denominator = safeAperture * (u - f);
|
||||
return Math.abs((f ** 2) / denominator);
|
||||
}
|
||||
|
||||
const sceneMeters = Math.max(sceneDistanceM, 0.2);
|
||||
const s = metersToMillimeters(sceneMeters);
|
||||
|
||||
if (Math.abs(s - u) < 1e-6) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -197,7 +204,7 @@ export const buildStatsAtCheckpoints = ({
|
||||
sceneDistanceM: Infinity,
|
||||
});
|
||||
} else {
|
||||
sceneDistance = safeSubjectDistance + separation;
|
||||
sceneDistance = Math.max(safeSubjectDistance + separation, 0.2);
|
||||
blurMm = calculateBlurCircle({
|
||||
focalLengthMm: lens.focalLength,
|
||||
aperture,
|
||||
|
||||
Reference in New Issue
Block a user