シンプレックス ノイズを使用して「大陸」を生成するアルゴリズムがあるため、高さマップが生成され、ピクセル/タイルが特定のレベルを超えると陸地として認識され、それ以外の場合は水域として認識されます。
私が抱えている問題は、土地が海面下のセクションを取り囲む場合があることです。海ではなく、陸か湖なので、それらの領域を特定できるようにしたいと思います。
したがって、次の 0 は水を表し、1 は土地を表します。
000000000
001110100
011111110
011001110
001101100
001111000
000000000
真ん中の 3 つの 0 は非海として識別されます。
フラッド フィル アルゴリズムに精通しています。だから私ができる1つの方法は、ランダムなポイントを繰り返し、水が見つかったら洪水の塗りつぶしを使用し、それが特定のサイズを超えている場合は海になることです. 次に、海が認識されたら、海以外の水域を調べて識別できます。
ロードされたものよりも広い領域で作業する必要があるため、これは効率が悪いように思えます。
より良い方法はありますか?