これがジャギーの源泉です。ジャギー感は緩やかになります。四角い画素の出力を比べてみると良いでしょう(こんなサイトがありました)。言っても、2Dのゲームではあまりジャギーは出ません。アルファブレンドを使って不透明と透明の境界線を曖昧にしながら塗っていくからです。3DCGではこの手が取りにくい事情があります。「現状のGPUは三角形を描く機械」であり、その三角形の境界は曖昧にできないからです。GPUが三角形を描く時の図です。その上に赤い線で示される三角形を描くとします。入っていれば塗り(=フラグメントシェーダを実行)、入っていなければ塗りません。塗るか塗らないかの二択です。ジャギーが出るわけです。この仕組み自体はそうそう変えられません。解像度を上げて画素を小さくすればいいということになります。やれることは「滲ませる」ことだけです。スマホの解像度は本当に高くて、高解像度の機種では私にはジャギーが見えません。5インチで1920x1080もあれば、何もする必要はないと私は思います。解像度を落とすのも一つの選択のはずです。それによる画質の劣化を補うために「滲ませる」を意図的にやることも考えて良いと思います。物理的に「滲ませる」ことはできません。できることは、それぞれの画素の色をいじることだけです。そこで、隣の画素の色を混ぜて変化を緩やかにしてしまいましょう。白と黒の境界線あたりでは、白と黒を混ぜて灰色にしてしまいました。変化がなだらかになるので、階段が目立ちにくくなります。こんなに大きいとよくわかりませんが、ある程度縮小して見ると「階段」というよりは「斜めの線」に見えてきます。このボカしをやる方法は2つあります。一つは、そもそも大きな解像度で絵を描いてから縮小することです。縦2倍、横2倍で描いて、2x2の画素ごとに色の平均を作ります。斜めに白と黒を分け、その後2x2の画素ごとに平均を取ります。これが平均すると灰色になるわけです。できた絵を見て「いい具合に」ボカすことです。みたいな感じのことをやります。FXAAは二つ目の「なんとなくジャギっぽい所をボカす」手法となります。Anti-Aliasing)と言います。1024x1024で描画した後、512x512に縮小すればまさにそれです。フラグメントシェーダは1024x1024全部で計算されます。簡単ですが、計算負荷が大きいので普通はやりません。そこで、先程紹介した三角形の輪郭に特化してやる手法が開発されました。Anti-Aliasing)です。フラグメントシェーダの実行回数は元のままに据え置きます。4画素とも同じ色で塗ってしまいます。輪郭付近では2x2の中に違う三角形由来の色が混ざります。これを平均すると色が混ざってボケるわけです。MSAAのx2は縦か横のどちらかだけ2倍、x4は縦と横がそれぞれ2倍、と考えれば良いでしょう(そうとは限りませんが)。x2で苦手な角度があったのは、縦横どっちかしか解像度が上がらないからです(これもそうとは限りませんが)。x4ならこういう弱点はなくなります。ハードウェアによっては素敵な工夫(タイル処理)でその負荷が著しく小さくなることもあります。S3でx2の負荷がほとんど見えなかったのは、たぶんそれでしょう。iPhoneの類でも同じようなことが起こるのではないかと思います。MSAAは三角形の輪郭でしか効きません。いうものには無力です。SSAAならそれもケアできます。後からどうにかする手法MSAAは「元々デカく描く」という単純な方法なので、いろいろ無駄です。いう手法が発達しました。FXAAが代表格でしょうか。いう話にもなっていますが、ゲームで60fpsでやれる状況にはなっていません。前準備がいらず、普通に描画する時に余計な負荷もかからない、というのが魅力です。三角形の輪郭かどうかにおかまいなく、ジャギって見える所は全部やってくれます。それが困ることもあります。左は元画像で、右がFXAAさせたものです。字までボケてしまっています。それが都合が良いか悪いかは時と場合によるわけです。「クセがある」と書いたのは、そういうことです。変わるかを見るものです。画面下のスライダーでその回数を指定できるようにしておきました。測定値の表に「塗り16画面」「塗り32画面」とあるのはこれです。MSAAを有効化することで、この時間がより大きくなります。エフェクト等で何度も何度も半透明を重ねるならMSAAは不利になるでしょう。シェーダが重ければ、問題にならないこともあります。ほとんど変わらないかもしれません。MSAAで性能が落ちやすいテストであると言えます。いった情報は、あまり役には立ちません。スイッチ一つで済むので、理屈を考えるよりも、とりあえずスイッチをOn/Offして様子を見るのが良いでしょう。結論MSAAとFXAAの長所短所をまとめましょう。加えて、RenderTextureへ描画するカメラだと正常に動かない以上から考えて、スマホ向けの製品であれば、MSAAのx2が無難かなという印象です。逆に、MSAAが多少でもかかっていれば解像度が低くてもあまり気になりません。いう昔「解像度詐欺」と言われた技法が今でも有効かと思います。3D部分だけ解像度を下げるならば、それほど気になりません。いうのが結構いい感じになる気がしています。iPhoneXであれば、2436x1125ですから、長い方を半分にして1218x1125なんてのはどうでしょうか(試していませんけど)。(1)月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。