===== Retinaディスプレイと Rhino for Mac ===== 2012年6月、Appleは(過去のMacノートより非常に解像度の高い)Retinaディスプレイを搭載した MacBook Pro を発表し、ソフトウェア開発者は新しいディスプレイ技術に合わせる追加的な作業が求められました。 Appleのディスプレイは1インチの[[https://ja.wikipedia.org/wiki/Ppi | ピクセル密度]]がずっと100ppi程度でした。ダイアログをデザインする際、ソフトウェア開発者は今まで、テキストフィールドやボタンの高さと幅、画面上の位置をピクセルで指定してレイアウトしてきましたが、新しいRetinaディスプレイは220ppiになり、今までのやり方では通用しなくなってしまいました。 Apple自体はシームレスな切り替えのために多大な労力を費やしました。Appleは OS X 内部で画面サイズの計測にピクセルよりもポイントという概念を使い始め、Retinaではない古いディスプレイではピクセルとポイントを同じサイズと決めたため、以前の画面レイアウトでも全て動作しました。ただ新しいRetinaディスプレイでは、Appleの説明によると1ポイントは2ピクセルに相当することから、縦横それぞれの方向にポイントの2倍のピクセルがあります。このためダイアログボタンを18 x 90(ポイント)で作るとRetina以外ではそのまま 18 x 90 ピクセルですが、Retinaでは 36 x 180 ピクセルで描画されます。Retinaではピクセル密度が2倍で、Retinaディスプレイでもそうでなくてもボタンの物理的サイズは同じでも、わずかに幅が1インチ未満となっています。 Appleはコントロールとテキストの描画を全てアップデートしてRetinaディスプレイでのボタンやテキストは倍のピクセルを使い、どのアプリケーションでも今までと同じようにそのまま動作するようにしています。それでもRhinoのようなグラフィックプログラムは新しいRetinaディスプレイを利用できるよう変更する必要がありました。 OS X はほとんどの場合、描画にポイントを使うようになりましたが、Rhinoがビューでモデルを描画する際はポイントではなく、ピクセルでビューのサイズを知る必要があります。このためRhinoは OS X にこの情報を問い合わせ、描画する際は適切なピクセル値を使用します。(2012年モデルの MacBook Air など、)Retinaではないディスプレイで見るよりRetinaバージョンの方が、同じRhinoモデルがずっとクリアで鮮明に見えるでしょう。Retinaディスプレイで描画する場合、Rhinoは4倍ものピクセルで描画しています。 === 画面の解像度を最適に設定する(Retina)=== 2012年モデルの15インチ Retina MacBook Pro は幅2880ピクセル、高さ1800ピクセルです。システム環境設定 > ディスプレイで解像度を調整するオプションがありますが、この変更は Rhino for Mac にとって良くない場合がほとんどです。例えば変更で下の設定を使わないでください。「解像度を変更するとパフォーマンスに影響する場合があります。」というコメントが表示されますが、これは Rhino for Mac にとても当てはまります。 {{:rhino:mac:display_resolution_preference.png |}} このパネルはディスプレイのサイズをピクセルではなく、//ポイント// で変更するもので、物理的なピクセル数を変更することはできません。画面の解像度がピクセルだと思うとこのコントロールパネルの表示は分かりにくいかもしれませんが、システム環境設定での解像度は、実際にはポイントで表示されています。 これらの設定がどの程度違うのか評価するため、Rhinoに実際のビューポートサイズを報告させてみました。Rhinoを起動し、描画ウィンドウをフルスクリーンに、ビューポートを1つにしてシステム環境設定にある後半3つを使った場合、Rhinoの報告は以下の通りでした: ^ 解像度 ^ 印象 ^ ポイントでのビューポート ^ ピクセルでのビューポート ^ ピクセル数 ^ |最適(Retina) | 1440 X 900 | 1438 X 801 | 2876 X 1602 | 4,607,352 | | | 1680 x 1050 | 1678 X 951 | 3356 X 1902 | 6,383,112 | |スペースを拡大 | 1920 x 1200 | 1918 x 1101 | 3836 x 2202 | 8,446,872 | Retinaディスプレイの物理的なピクセル数は変えられないことを思い出しましょう。最適(Retina)設定でのビューポートのピクセル数はディスプレイの物理的なピクセル数と正確に一致しているため、ビューポートの内容が直接ディスプレイに描画されます。他の2つでは OS X が物理的なディスプレイより大きいGPUのメモリーでオフスクリーンのビットマップを作成し、Rhinoがビットマップに描画してから、OS X が物理的ディスプレイのサイズに合わせてそのビットマップの内容をサイズ変更して縮小版をディスプレイに描画します。スペースを拡大(1920 × 1200)オプションではRhinoが最適(Retina)オプションの倍のピクセルで描画する必要があり、しかもその後にOS X が画面に合わせてRhinoの出力を縮小するのでRhinoの余分な手間が無駄になってしまいます。 Rhinoは既にお使いのディスプレイの物理的サイズに注意を払っていますから、ディスプレイの解像度は常に**ディスプレイに最適**か、**変更**を選ぶ場合は**最適(Retina)**に設定しておくことが理にかなっていると言えるでしょう。