✖
ディスプレイのppiはどれぐらい必要か?
疑問:ディスプレイサイズが大きくなるほど鑑賞距離も長くなっていき、ppi もそれほど必要なくなるはずだが、実際のところどれぐらいの ppi が必要なのか?
前提
- 視力1.5の人
- ディスプレイの中央一点を見たときにいい感じにディスプレイが見えるように
- (ディスプレイの中央一点を見たときにシンボルの認識限界程度の画角をディスプレイが占有する場合)
「十分なppi」は隣同士のピクセルの見分けがつかない、すなわち人間の眼のほうの認識限界程度と考えています。なので視力が前提に入ります。
計算
https://github.com/cho45/libphoto/blob/master/lib/libphoto.js を読みこんだ上で以下のようなコードを書くと、上記前提で必要な ppi が求められる。
アスペクト比を16:9 に仮定して、ディスプレイの横幅だけを考慮してる。
var libphoto = require('../lib/libphoto');
function displaySize (diagonal, width, height) {
var r = Math.sqrt(Math.pow(diagonal, 2) / (Math.pow(width, 2) + Math.pow(height, 2)) );
return { width: width * r, height: height * r };
}
var inch = 15.4;
var size = displaySize(inch * 25.4, 16, 9);
console.log('%dmm x %dmm', ~~size.width, ~~size.height);
// シンボルの認識限界とされる画角 ( http://gc.sfc.keio.ac.jp/class/2005_22267/slides/04/11.html )
var angleOfView = 30 * Math.PI / 180;
// ディスプレイサイズの横幅が上記画角になるときの距離
var distance = libphoto.angleToFocalLength(size.width, angleOfView);
console.log(Math.round(distance), 'mm');
// 視力1.5 の人がぎりぎりピクセルを区別できる程度のディスプレイ解像度
var ppi = libphoto.dpiByDistanceAndVisualAcuity(distance, 1.5);
console.log(Math.round(ppi), 'ppi');
ディスプレイサイズ別必要 ppi
上記のような条件だと、以下のようになる。
- 10インチ = 317ppi (鑑賞距離=32cm)
- 13.3インチ = 238ppi (鑑賞距離=55cm)
- 15.4インチ = 206ppi (鑑賞距離=64cm)
- 24インチ = 132ppi (鑑賞距離=99cm)
- 27インチ = 117ppi (鑑賞距離=112cm)
- 32インチ = 99 ppi (鑑賞距離=1322cm)
これは眼に入る見掛け上の大きさがどれも変わらないという前提の元の ppi だけど、実際はディスプレイサイズが大きくなったら、それだけ視野を占有させようとすると思う (鑑賞距離がこれほど伸びない) ので、もっと ppi は必要になりそう。どの程度そういう感じになるかはよくわからない。ディスプレイを見るときの距離の統計とかがほしい。
デスクに座っている場合だいたい60cmぐらいだろうから、200ppi はいるだろうという気はする。
また、鑑賞距離はディスプレイサイズに関わらず一定以下にはならないので、小さいディスプレイだと鑑賞距離はもっと典型的なのを個別に設定しないとだめそう。
参考
- MacBook Retina 13.3in = 227ppi
- MacBook Retina 15.4in = 220ppi
- SHARP PN-K321 32in 4K2K = 138ppi