デバイスピクセル比率 (DPI)
デバイスピクセル比率(Device Pixel Ratio)は、ハードウェアスクリーン上の物理的なピクセルと、論理的なピクセル(スクリーンの物理的なサイズに関連した、CSSによる)の比率です。
Enabling Device Pixel Ratio on the Project settings will render the application at the native resolution of the screen which will make it look very crisp. However, that comes at a performance cost as now there are more pixels to fill and render each frame.
Below is an example of the Model Viewer Starter Kit with device pixel ratio enabled and disabled. Click on the thumbnail to see the full size.
理想的には、高性能のデバイスのユーザーは最高品質でレンダリングし、低性能デバイスであってもプレイ可能なフレームレートを維持するために比率を減らせる、両方の利点を兼ね備えた状態にしたいものです。
理想的には、高性能デバイスのユーザーは最高品質でレンダリングし、低性能デバイスのユーザーはフレームレートを維持するために比率を下げるという、両方の良い点を得ることができます。
デバイスピクセル比は、プロパティpc.GraphicsDevice#maxPixelRatio
を使ってランタイムで変更することができます。
const device = pc.Application.getApplication().graphicsDevice;
if (highTierDevice) {
// Use the default device pixel ratio of the device
device.maxPixelRatio = window.devicePixelRatio;
} else {
// Use the CSS resolution device pixel ratio
device.maxPixelRatio = 1;
}
難しいのは、デバイスの性能能力を見極めることで、これは以下のいずれかの方法で行うことができます:
- アプリケーションの開始時に何らかのベンチマークを使用し、フレームレートを観察する
- WebGLレンダラーのデータを照会してGPUの名前を取得し、既知のパフォーマンス層のリストと照らし合わせる
GPUについての情報を得るためには、プロパティ pc.GraphicsDevice#unmaskedRenderer
を使用します。これは情報を含む文字列を含むか、ブラウザがプロパティをサポートしていない場合は空の文字列になります。
文字列には次のようなものが含まれます。
ANGLE (NVIDIA GeForce GTX 1050 Direct3D11 vs_5_0 ps_5_0)