アスキーアートで絵や3Dモデルをより鮮明に表現する方法とは?

ASCIIは1960年代に英語での通信や当時のコンピュータに必要な文字や記号だけが含まれるように定めた文字コードで、昔のコンピュータでは画像をそのまま表示できなかったため、ASCII文字を使って絵を表現する「アスキーアート」が多用されていました。ソフトウェアエンジニアのアレックス・ハリー氏は画像からアスキーアートに変換するレンダリング技術を、より鮮明かつエッジをくっきりとさせるアプローチについて解説しています。
ASCII characters are not pixels: a deep dive into ASCII rendering
https://alexharri.com/blog/ascii-rendering

以下は、ハリー氏が示したレンダリングのデモ。右が元の画像で生成AIによる土星のイラストです。左がレンダリングによってアスキーアートに変換されたもので、イラストの輪郭に忠実なアスキーアートとなっていることがよく分かります。

さらに以下のデモでは、濃淡もアスキーアートで反映できることが分かります。

自動で画像をASCII文字に変換するASCIIレンダリングの場合、多くのツールでは「画像を小さなマス目に分け、その中の明るさを計算し、文字を割り当てる」というプロセスとなっています。しかし、この場合だと文字が単純な「濃淡」だけで選ばれるため、エッジ(境界)がぼやけたり、元の形が分かりにくくなったりすることがあります。
ハリー氏によると、ぼやけや不鮮明といったエラーは「ASCII文字がピクセルのように扱われ、形状が無視されている」ことで発生するそうです。ASCII文字の濃淡だけではなく形を重視するとより鮮明なアスキーアートが可能ですが、形を考慮しているASCIIレンダラーはほとんどないとのこと。
ハリー氏は以下のような白い円のイラストをASCIIレンダラーでアスキーアートにする場合を例に挙げています。レンダラーはイラストをグリッドに分け、各セルにどの文字を配置するかを決めていきます。この時、グリッドの中心にあるピクセルの明度をサンプリングして「明度値」を取得し、ASCII文字にマッピングします。濃淡でランク付けされたASCII文字から「この濃さのところはこの文字」というように選択されていくというわけです。

この方法で円をレンダリングすると、以下のように円としてはかなり滑らかさが失われた形になります。この例ではASCII文字をごく一部に制限した上でマッピングを単純化しているため本来のレンダリング結果とは異なりますが、明度値を取得してマッピングするだけでは、元のイラストの形が適切に表現できないことがわかります。

ギザギザしたエッジを解消する方法として「スーパーサンプリング」があります。スーパーサンプリングは最初のグリッド分割した際により多くのサンプルを収集するというもので、サンプル数を増やすほど品質が上昇します。以下は、白い円のイラストのグリッドから得られるサンプル数を変化させたデモで、左からサンプル数1、サンプル数5、サンプル数16です。サンプル数が多いほど、円が滑らかになっているように見えます。

サンプル数を増やすことでエッジはある程度滑らかになりましたが、これだけでは輪郭がぼやけているように見えます。これを解消する方法が「ASCII文字の形を重視する」アプローチです。以下は形状に基づいて文字を選択したASCIIレンダリングで、文字が円の輪郭によく沿うように配置されています。

ASCIIレンダリングで文字の形状を重視する方法として、「文字の重心」と「定量化」をハリー氏は挙げています。「T」は上の方が濃くなっており、「L」は左下が濃いというように、文字には「どこに線があるか」というベクトルがあります。このベクトルをサンプリングすることで、ASCII文字を形状ベースで区別することが可能となっています。ハリー氏は、ASCII文字そのものを小さな画像として扱い、同じ方法でサンプリングすることで、画像と文字の形状を直接比較できると説明しています。

形状ベースの区分により、輪郭をはっきりさせたりエッジをシャープにしたりする効果だけではなく、コントラストを高める効果もあります。コントラストが高まることで、ASCII文字による3D表現がより優れた見た目になります。

ハリー氏は「高次元ベクトルを使って形状を捉えるというアイデアは興味深く、他の多くの問題にも簡単に応用できると思います。そして、ASCIIレンダリングの問題に対する解決策はかなり広く、探求すべきアプローチとそれぞれの利点および欠点は実に多種多様です」と語っています。
・関連記事
AIチャットボットが生成できない回答を「アスキーアート」で答えさせることができるという報告 - GIGAZINE
QRコードを人力で読み取る方法 - GIGAZINE
アスキーアートに使われる「ASCII」の意外に知られていない起源とは? - GIGAZINE
アスキーアートをタイプライターで作る方法&作品をまとめた1939年の書籍が公開に - GIGAZINE
無料で手軽にアスキーアートが作れるエディター「REXPaint」を使ってみた - GIGAZINE
・関連コンテンツ
in 試食, Posted by log1e_dh
You can read the machine translated English article How can you make ASCII art more vivid by….







