モザイクヴァンによる無限の非反復テクスチャ





テクスチャには常にいくつかの問題があります! 写真を撮ってモデルに固執することはできません。 次に、テクスチャの接合部に、スムージングによって苦しめられる継ぎ目があります。 すべてがすでに消し去られているように見えますが、いたずらのような目は、繰り返しパターンに気づき、幻想を破壊します。



テクスチャを大きくすることで、繰り返しのピースが遠く離れて目立たなくなるようにすることができます。 数十万ピクセルの非常に巨大なものにすることもでき、縫い目や繰り返しなしでシーン全体をカバーできます。 同様の手法は、メガテクスチャと呼ばれます。 しかし、それらに近いメガテクスチャと仮想テクスチャはメモリの処理を複雑にし、それらを処理するには特別なツールが必要であり、一般にこれはまだ若い技術です。



どうする? 1つのトリックがあります-非周期的モザイク。 再現性の問題がなく、実装が非常に簡単です。 これらのモザイクの1つは、1961年に中国の数学者ワンハオによって発明されました。 このモザイクの要素は、カラフルな顔の長方形として表すことができます。 しかし、その動作の原理を理解するためには、最初に正方形をテクスチャで埋める古典的な方法を理解する必要があります。





そして、古典的な方法はこれです:私たちは好きな写真を撮り、それを使ってテストのために小さな領域をトレースし、すぐにすべての悪い境界の場所を見ます。 その後、右側が左側と一致し、上部が下部と一致するように画像を再作成します。 完了、テクスチャを使用できます。







つまり、隣接するテクスチャの水平および垂直のエッジが互いにスムーズに流れるようにする必要があります。 それは写真のための一種のコンテナであり、他のコンテナの隣にうまく収まります。







さらに考えを発展させます。 コンテナの充填は何でも可能です。 同じテクスチャに対して多くの異なるオプションを作成し、セットからのランダムなタイルで領域を埋めることができます。 しかし、このアプローチでも、言うことは何でも、タイル面の繰り返しグリッドが残ります。 したがって、顔をミックスする方法を考え出す必要があります。







実際、同じタイルの右側と左側を互いに結合する必要はありません。主なことは、隣接するタイルと結合されることです。 異なるエッジを持つ複数のテクスチャオプションを作成し、それらをアトラスにパックできます。 次に、テクスチャを配置しながら、隣接するタイルに一致するエッジを持つランダムタイルを取得します。



残念ながら、タイルの完全なセットのアトラスのサイズは、ファセットバリエーションの数とともに非常に急速に大きくなります。 計算は次の式に従って実行されます: N 2 * M 2 、ここでNは水平面の数、 Mは垂直面の数です。 たとえば、2つのオプションの場合、16の異なるタイルが水平および垂直に移動します。 モザイクを続行する保証された機会が必要な場合、式はより単純になります: 2 * N * M







アトラスタイルは、任意の大きなスペースを埋めることができます。 ランダムなタイルが1つ取得され、側面には適切な面を持つ2番目のタイルが適用され、3番目のタイルは2番目のタイルに適用され、行の最後まで続きます。 2番目の行のタイルを選択するとき、最初の行の隣接者も追加で考慮されます。 上の画像は、左側にアトラス、右側にモザイクを示しています。







タイルのアトラスを作成する方法は? 1枚の大きな写真を撮り、その上に色付きの顔のグリッドを置くことができます。 次に、各色に適した継ぎ目を選択し、グリッドに沿って伝播します。 または、反対から行きます。最初にグリッドを作成し、次に空のスペースを埋めます。 以下は、より詳細な手順へのリンクです。







左上の図には、作成されたアトラスの単純な繰り返しがあり、右には、そこから組み立てられたヴァンモザイクがあります。 結果のモザイクには目立った繰り返しはなく、ランダムで滑らかに見えます。



もちろん、ヴァンのモザイクは完璧ではなく、タイルの角に問題があります。 Mosaicは等高線と垂直線の問題を解決しますが、4つのタイルの接合部にアーチファクトが発生する可能性があるため、まだ対角線があります。 しかし、このモザイクはシンプルであり、テクスチャリングだけでなく、フロアプランやダンジョンの手順生成にも使用できます。







Unity3dがWangのモザイクで動作するための簡単なC#コードをスケッチしました。以下のリンクを使用してそれを見ることができます。



Unity Web Player | Windows | Linux | Mac | GitHubソース



スペース-新しいランダムテクスチャ、1、2、3-アトラス選択、Esc-終了。

Linuxユーザーの場合:「chmod + x WangTiles」を使用してWangTilesファイルを実行可能にし、実行します。



トピックに関する役立つリンク:

アトラスの作成手順

手続き型ダンジョン世代

さまざまなサイズのアトラスの作成の詳細

半自動アトラスジェネレーター



労働者の要請で、アトラスの作成に関する小さな追加:



私たちは好きな大きな写真を撮り、Photoshopまたは他の場所で便利にグリッドをオーバーレイします。







グリッドの色ごとに、画像のセグメントを選択して新しいグリッドを作成する必要があります。 各セグメントを乗算し、列と列にコピーを配置するだけです。







メッシュは最初は非常に湾曲しており、い縫い目がたくさんあります。 Photoshopの利用可能なすべての魔法を適用し、継ぎ目を見えなくします。 以下の例では、グリッドに小さな消しゴムを塗っただけです。 それは、アトラスであることが判明しました。これは、互いに組み合わされる断片に切り分けられる新しい写真です。







基本的なプログラミングなしではできません。すべてを手作業で組み立てることができますが、時間がかかります。 コードで作成されたアトラスを使用し、そこからピースを選択してモザイクを作成します。 小学校。 作るのが一番難しいのは美しいサテンですが、テクスチャーではいつもそうです。



実際、私はここから指示書き直しただけです 。 読んで、すべてがそこによく描かれています。










All Articles