地形と水面

「地形と水面」の編集履歴(バックアップ)一覧はこちら

地形と水面」(2021/08/19 (木) 13:09:23) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*はじめに 地形は、あらゆるシーンを構成する最も基本的な要素の1つです。Terragenには、シーンのベースとなる地形を作成するための柔軟なシステムがいくつか用意されており、それぞれの仕組みを理解する事で、必要に応じてどちらが最適化を判断する事が出来ます。 Terragenでは、ハイトフィールドとプロシージャルという、関連性はあるが大きく異なる2つの地形タイプを扱います。一般的に、ハイトフィールドは、面積が限られており、表示できるディティールも限られていますが、非常に特殊な地形形状(実現世界の標高データなど)を表現する事ができ、編集も簡単で他のプログラムとの互換性も高いと考えられております。 一方、プロシージャルは、一般的に無限の面積を独自のディティールで表現する事ができ、非常に広範囲のスケールを高精細に表現する事が出来ますが、直感的で具体的な変更を加えるのが難しく、他のアプリケーションとの互換性も低いという特性があります。 *プロシージャルの世界へようこそ Terragenは、これまでのバージョンとは根本的に異なる方法で動作します。Terragen Classicでも一部の機能にプロシージャルを使用していましたし、Terragen 4でもハイトフィールドをしっかりとサポートしていますが、現在は空の雲から地形そのものの形状まですべてをプロシージャルを使って作成する事に重点を置いています。Terragenや他のランドスケープアプリケーションで使用されている有限の解像度を持つラスターハイトフィールドとは異なり、プロシージャルによる地形の作成は、サイズやディティールに制限がないという点で特に重要です。 プロシージャルとは、視覚的な出力を可能にする数学関数のことで、多くの実用的なコンピュータアプリケーションに応用する事が出来ます。フラクタルは、プロシージャルの一種であり、皆さんもよくご存じでしょう。プロシージャル関数は、数学的根拠に基づいて、非常に大きなスケールの範囲を表現する事が出来ます。関数の入力値を変更するだけで、山から小石まで、またその中間に位置するものまで全てを描き出す事を可能にします。また、プロシージャル関数を使ったシーンでは、無限に近いディティールを表現する事も出来ます。 一般的な「ハイトフィールド」や「ハイトマップ」は「ラスター(行と列の格子状に並んだピクセルで構成される。デジカメの写真データがこれに当たります。)」データの一種であり、つまり、有限の寸法を持つピクセルやサンプルの配列として定義されています。そのため、Terragenの".ter"ファイルやDEMなどのほとんどのハイトフィールドは、ピクセル単位の解像度で定義された有限のディティールレベルを持っています。プロシージャルは、必要に応じてほぼすべてのスケールで生成およびサンプリングできるため、このような制限はありません。技術的に言えば、Terragenは、プロシージャルを一定の間隔でサンプリングして高さの値を導き出すことで、ハイトフィールドとして使用していますが、ここではわかりやすくするために、プロシージャルを単にプロシージャルと呼び、いわゆる「ラスターハイトフィールド」を単にハイトフィールドと呼ぶことにします。 ---- *ディティールはどうなっているのか? [[初めてのシーン>初めてのシーン作成]]では、大規模なスケールを表現する際のプロシージャルの利点を紹介しました。プロシージャル機能を使うと、惑星全体を非常に簡単に作成出来る事を説明しました。まだ、この章をご覧になっていない方は、先に進む前に一読してください。それでは、プロシージャルの全容のもう一方の端であるミクロスケールを見てみましょう。 初めてのシーンで説明したように、デフォルトシーンのハイトフィールドをプロシージャルに置き換えます。(Terragen 2の時、デフォルトシーンは『Heightfield shader 01』が設定されていました。)新しいノードに"Mountains"という名前を付けて下さい。これがこの演習での地形の基礎を形成します。 #image(screen01.jpg,width=800,height=579) 必要に応じてカメラを調整して、近くの地面が見えるようにしま、カメラが地面の下に潜らないように出来るだけ近づけます。"Vheight"パラメータを表示させて([Alt]+3Dプレビュー枠をクリック)、地形からの高さを確認する事を忘れないで下さい。2〜3メートルが適当な高さです。可能な限り近づいたら、[Reset to current render camera]ボタンを押し、[Render]ビュー(ツールバーのF3または[Ctrl]+R)を開いて、シーンをレンダリングします。すでにそれなりの量のディティールが見えていると思いますが、あまりにも滑らか過ぎるので、もっと精細に、立体的にする事が出来るでしょう。 #image(screen01_01.jpg) ディティールを追加するために、別のプロシージャル地形レイヤーを作成しますが、今回はスケールをかなり小さくします。これにより、全体的に大規模な地形の形状を維持しつつ、小さなスケールでディティールを追加する事が出来ます。まず、ノードリストに移動し、[Add Terrain]ボタンを使い、地形レイアウトから『Power Fractal(Heightfield shader 01)』地形レイヤーを作成します。地形が大幅に変化するのがわかりますが心配はいりません。ここからずっと和らいでいきます。 追加した『Fractal terrain 01』をクリックして設定パネルを表示し、"Detail Layer"と名前を付けます。Terragenではほとんどの単位がメートルで指定されている事を覚えておいて、「Feature Scale」を約0.1に下げてみましょう。これは、平均的な形状サイズが1/10メートル(10cm)なることを意味します。「Lead-in scale」と「Smallest scale」を調整して、その両側にも適切な範囲を確保する必要があります。「Lead-in scale」を約2に設定し、「Smallest scale」を約0.02に設定します。これで、最小形状は1/50メートル、最大形状は2メートル程度になります。 #image(screen02.jpg,width=356,height=540) これでシーンの印象が大きく変わったと思いますが、最後にもう一つ、物事を正しく設定するための調整が必要です。『Detail Layer』の[Displacement]タブに移動し、「Displacement amplitude」を確認します。この設定は、このノードによって地形に適用されるディスプレースメントの実際の高さをコントロールするもので、デフォルトの2000メートルでは、地形の見え方が大きく変わってしまう理由がわかります。これを1に設定すると、シーンはより正常な状態に戻るはずですが、より小さなディテールが著しく増加しています。テストレンダリングを開始して、変更の結果を確認してみましょう。 #image(screen02_01.jpg) レンダリングが終了すると、ディティールが追加されているものの、やや粗く不自然な印象を受けるかもしれません。より変化に富んだリアルな外観にするために設定を少し調整してみましょう。『Detail Layer』の設定に戻り、[[Displacement]タブをもう一度確認します。現在の振幅は1メートルですが、「Feature Scale」が1/10メートルなので、これをほぼ同じに減らすのが理にかなっています。「Feature Scale」に合わせて0.1に設定しましょう。フラクタル形状の見た面も私たちが望んでいるものとは違っていたので、ノイズの「風味」を変更してみましょう。[Tweak Noise]タブに移動し、上部にある「Noise Flavour」のドロップダウンボックスをクリックすると、利用可能なオプションが表示されます。デフォルトでは"Perlin mix 1"が設定されています。これは標準の"Perlin"と"Perlin billows"のノイズタイプのミックスです。それでは、"Perlin mix 2"で見栄えが良くなるかどうか試してみましょう [Tweak Noise]タブを表示している時に、小さな形状にもう少しバリエーションを与えてみましょう。ノイズのバリエーションはすでに2で、中程度の設定ですが、3に増やすてもう少しバリエーションを増やしてみましょう。また、自然の風によって生まれた堆積物のように小さな形状が小さな塊を形成しているといいかもしれません。そこで、「Clumping of variation」を0.5に増やしましょう。さて、より自然な外観を実現するために設定を少し調整したところで、もう一度レンダリングしてその結果を見てみましょう。。 #image(screen03.jpg,width=329,height=560) レンダリングすると、地形からわずかな距離であっても、膨大な量のディティールが残っている事が分かります。これは、大小さまざまなものを描写する上で、プロシージャルは非常に大きな力を発揮する事がよくわかります。この2つのプロシージャル地形ノードを組み合わせるだけで、山から小さな岩のような地層まで、惑星全体の地形が出来上がります。さらに多くのプロシージャルを何層にも重ねる事で、地形全体のディティールを変更させたり、大小の形状をリアルに表現したりする事が出来ます。これにより、大陸レベルのディティールからビーチの砂まで、完全にリアルな仮想惑星を作成する事が出来ます。 #image(screen03_01.jpg) Terragenでは、この優れた柔軟性と拡張性を利用して、非常に精細で無限に変化するグローバルなランドスケープを作成するだけでなく、インポート、生成、編集したハイトフィールドにディティールを追加する事で、両方の長所を最大限に活用する事が出来ます。この機能を実現する方法については、以下の「ハイトフィールド」の章を参照して下さい。 [[この項で使用したTGDファイル>https://img.atwikiimg.com/www65.atwiki.jp/terragen/attach/260/2229/Welcome_World_Procedurals.tgd]] ---- *「大きいことは良いことだ」:プロシージャルを使った大規模な地形表現 完全にリアルな惑星を作るためのレシピのもう一つの過程は、大規模な形状です。Terragenのプロシージャルは、惑星全体の山のようなスケールのリアルなディテールを作成する事ができ、同じフラクタルディテールを使用して非常に小さなスケールのディテールを増やせる事を説明しました。ここでは、大陸や山脈などのより大きな地形を作成する方法を紹介します。惑星全体を覆うような大規模なディティールを作成するのは困難ですが、根気よく練習すれば、リアルな地形と事実上無限のバリエーションを持つ惑星全体を作成する事が出来ます。 通常は、「Feature scale」を適切な大きさに増やすて、他の地形形状とブレンドするだけで思ったほど簡単に出来ます。目指すものによっては、これがすべてです。ただし、ここでは、単に惑星全体に大きなディスプレースメントを加えるだけではなく、より大きなスケールで地形の形状変化を実現する、少し高度な方法についても見ていきます。 まずは前のセクションで作成したシーンに基づいて、簡単な方法から始めましょう。新しくシーンを作成する場合は、地形リストのノードをすべて削除してから『Power fractal』ノードを作成し、設定をデフォルトのままにします。新しいノードに「Mountains」と名前を付けます。この後、さらにいくつかの地形ノードを作成する事になるので、この名前つけておくと管理やしやすくなります。 より大きな機能を追加する前に、カメラをかなり高い高度に移動して、ビューが地形内にとどまらないようにする必要があります。高度1〜2kmで十分です。基準点が得られるように、新しいカメラの視点からテストレンダリングを実行する必要があります。 より大きな地形を追加する前に、地面の中に視界が入り込まないように、カメラをかなり高い位置に移動させます。高度1〜2kmあれば十分です。新しいカメラの視点でテストレンダリングを行い、基準点を確認しておきましょう。 #image(screen04_01.jpg) 次に、追加で新しく『Power fractal』ノードを作成します。これに"LargeFeatures"と名前を付けます。これから行う最も重要なことは、「Feature scale」と「Lead-in scale」を変更する事です。これにより、求めていた大きな形状が得られます。初期値として、「Feature Scale」を50,000、「Lead-in Scale」を250,000(デフォルトの10倍)に設定してみましょう。平均的な形状サイズが50kmなので、これで山脈や海岸線のようなスケールの地形を簡単に描写出来るようになりました。早速テストレンダリングをして、その違いを確認してみましょう。 #image(screen04_02.jpg) シーンの違いは、任意のカメラ位置によって、ここで挙げているサンプル画像とは大きく異なるかもしれませんが、新しい『Power fractal』ノードを追加して設定を調整する事で、変化が見られることを願っています。そうでない場合は、カメラを新しい場所に移動してみて下さい。新しいノードを一時的に無効にして、変更前後のビューを表示する事が出来ます。ノードの設定パネル左上にある「Enable」チェックボックスを外すだけです。大きな違いを示すビューが見つからなくても心配はいりません。これから軌道に乗り、大きな変化が確実に見られるはずです。 その前に、サンプルシーンでの変更について説明します。地形スケールは非常に大きいですが、影響を受けた地形の高さの変化は比較的小さく、設定した50kmの高さもありません。これは、「Displacement amplitude」が実際のディスプレースメントの"強さ"を個別に制御するためです。『LargeFeatures』ノードの[Displacement]タブに移動して、効果を少し増やしてみましょう。デフォルトの「Displacement amplitude」は1000メートル(現バージョン4.5.60では2000)で、平均的な山に適した設定になっています。大規模な地形は必ずしも特別に高さを持っているとは限りませんが、ここでは効果を上げるためにこの値を約1500に増やします。もう一度テストレンダリングしてみましょう。 #image(screen04_03.jpg) この効果は、よりドラマチックなものになり、軌道上から見える事を期待しています。それでは見てみましょう。前述のカメラコントロールを使って、カメラを惑星に向け、ズーム機能を使用して惑星から少しずつ距離を取っていきます。適切な高さに達したら、惑星の端を含めた全体が見えるように視野を調整します。視野いっぱいに惑星が見えるようにしてください。カメラビューの設定を確認してから、もう一度テストレンダリングを行います。 #image(screen04_04.jpg) 比較のために、『LargeFeatures』ノードを無効にして、同じ視点からどのように見えるかを見てみましょう。「Enable」チェックボックスを外して、ノードを無効にし、もう一度レンダリングを行います。 #image(screen04_05.jpg) 少し微妙な違いでしかありませんが、この高度からでも目に付くということは、かなり大きいのではないでしょうか。求めていた山脈や大陸規模の地形がとして幸先の良いスタートを切っています。しかし、世界の大部分が私たちの山の形で覆われていて、それがあまりにも均等に分布しているように見えることに気付くでしょう。次のステップは、より現実的な方法で山の範囲を限定し、山脈や峡谷、広々とした平原などの独特のある形状を表現してみましょう。 次のステップでは、ノードネットワークで直接操作する必要があります。プロシージャルの関数を作成して、山の分布範囲を定義し、それを『Mountains』ノードの"Mask shader"入力に接続して、その範囲を制限します。画面右下のノードネットワーク枠に切り替えて作業を行います。ノードネットワークの【Terrain】グループを拡大することから始めたいと思います。 【Terrain】グループ内の何もない場所を右クリックし、「Create Shader」-> "Displacement Shader" -> 'Power fractal shader v3'の順に選択します。この新しいノードに"MountainDistribution"と名前を付け、ノードの下部にある出力端子を左クリックし、『Mountains』ノード右側上部ある"Mask shader"の入力端子にドラッグして接続します。 #image(screen04.jpg) "Mask shader"の入力端子は、ほとんどのシェーダノードに存在します。この入力を有効にすると、その効果は他のアプリケーションの"マスク"と似ています。この関数では、入力の典型的なマスキング解釈を使用して、グレースケール画像とプロシージャル出力を使ってノードの分布を制御する事が出来ます。他のアプリケーションと同様に、白は"完全に覆う"、黒は"覆いなし"で、その中間のグレー値はパーセンテージによって覆う範囲が事なる事を表しています。 #image(screen05.jpg) 新しいマスクシェーダの効果を確認する前に、『Mountains』ノードでマスクを有効にする必要があります(通常は接続時にチェックが入ります)。ノードの設定パネルの下部に、マスク入力コントロールが表示されます。「Mask by shader」チェックボックスの横に、使用するマスクシェーダの名前が表示されます。ボックスをクリックして有効にすると、マスク機能が稼働します。微妙な変化ではありますが、プレビューウィンドウですぐに変更が確認できるはずです。テストレンダリングを行って、デフォルト設定でどのような結果が得られるかを確認して下さい。 #image(screen04_06.jpg) 多少の違いが見られるはずですが、何が変更されたのかすぐにはわからないかもしれません。基本的には、デフォルトの「Feature scale」である5000メートルの山の形を、同じスケールの別のノードでマスキングしています。これにより、山の分布が全体的に減少し、全体的な高さが減少するという、かなりランダムな印象を受けます。より見栄えの良い分布を得るには、スケールを調整する必要があります。 ノードネットワーク上では、ノードリストとは異なり、ノードをダブルクリックして設定ウィンドウを表示させる必要があります。設定ウィンドウは、実際にはフローティングウィンドウとして表示され、自由に移動したり、通常のウィンドウのように閉じたり、[Stay Open]ボタンで永続的に開いたままにする事が出来ます。詳細については、上記のノードネットワークの章を参照して下さい。『MountainDistribution』ノードの設定ウィンドウを開いたら、「Feature scale」と「Lead-in scale」を、前に作成した『LargeFeatures』ノードと同様に、適切な大きさに調整します。「Feature scale」を65,000、「Lead-in scale」を325,000に設定してみます。これにより、平均的な地形サイズは65kmとなり、これは通常の山脈では少し小さいですが、「Lead-in scale」がかなり大きいため、様々な大きさの地形スケールを得る事が出来るでしょう。 また、このノードはそれほど広い範囲で動作させる必要がないため、「Smallest scale」を大きくする必要があります。ノイズのオクターブ数が増えれば増えるほど、シェーダの計算時間が掛かる事に注意して下さい。「Smallest scale」を約50メートルに設定します。これにより計算時間を短縮しつつ、現実的に十分な小規模のディティールを得る事が出来ます。「Smallest scale」、「Lead-in scale」、「Feature scale」が類似しすぎると、ノイズのオクターブ数が非常に少なくなり、出力が非常に人工的な外観になってしまいます。 次に何を調整すべきかを決めるために、もう一度テストレンダリングを行ってみましょう。 #image(screen04_07.jpg) 山は今ではランダムに見えなくなりましたが、全体的に目立たなくなりました。マスクシェーダノードのコントラストを調整する事で、山のある部分とない部分の差を大きくしたいと思います。こうすることで、山の山頂が高くなり、より滑らかな平地の両方が得られるはずです。 『MountainDistribution』ノードの「Colour」タブに移動します。デフォルトの「Colour contrast」は0.5しかないので、1.0に増やしてみましょう。「Colour roughness」もデフォルトではかなり高いので、山の連なりのエッジが不明確になる傾向があります。「Colour roughness」を約2.0に下げると、より明確でランダムのない外観になります。 また、デフォルトのパーリンノイズ機能では、山脈に適した形状が実際には作成されない事に気付いたかもしれません。そこで、適切な代替手段がないか考えてみましょう。[Tweak Noise]タブに移動し、「Noise flavour」のドロップダウンのオプションを確認します。"Perlin ridges"の方がベースの構造としては優れているようなので、ここではそれを選択します。 #image(screen04_08.jpg) こうして探求を重ねる事で少しずつリアルな惑星を作成していきましょう。 [[この項で使用したTGDファイル>https://img.atwikiimg.com/www65.atwiki.jp/terragen/attach/260/2245/Bigger_Is_Better.tgd]] ---- *ハイトフィールド Terragenでは、プロシージャルとその明らかな利点に非常に重点を置いているため、ハイトフィールドの用途や利点は見落とされがちです。しかし、ハイトフィールドは、プロシージャルの世界でも依然として非常に有用であり、両方のタイプの地形を効果的に組み合わせる事で、最高のシーンを生み出す事が出来ます。プロシージャルは、非常に大きなスケールから非常に小さなスケールまで、様々なディティールをランダムに表現するのに適しています。一方、ハイトフィールドは非常に具体的な形状を表現するのに優れており、一般的には、より小さなスケールの範囲をより効果的に表現する事が出来ます。例えば、惑星全体の地形を作りたい場合は、プロシージャル機能が唯一の現実的なアプローチとなりますが、特定の外観を持つ、リアルに現侵食された形状の地形を作りたい場合は、ハイトフィールドが最善の方法となります(例えば外部アプリケーションの『gaea』や『World Machine』でエクスポートした地形データをTerragenにインポートして使用する場合など)。 幸い、Terragenでは選択の必要がありません。Terragenでは、1つのシーンでプロシージャルとハイトフィールドを簡単に混在させる事が出来るだけでなく、ハイトフィールドを非常に効果的に使用する事が出来ます。ハイトフィールドをベースにしてリアルな地形を作成し、その上にプロシージャルを重ねる事で、非常に高精細でリアルなシーンを作成する事も出来ます。実在する場所のDEMを簡単にインポートして、非常にリアルな基本地形を形成し、そこにプロシージャルなディティールを追加してリアルな前景を作り出す事が出来ます。また、自分の住んでいる地域の地形のハイトフィールドを使用し、プロシージャルで背景を埋める事で、"世界の終わり"や"平坦な惑星"症候群を回避する事が出来ます。また、解像度の異なる複数のハイトフィールドを使用して、地形の異なるエリアやスケールを定義する事も出来ます。その可能性は事実上無限大です! デフォルトでは、Terragenに読み込まれたハイトフィールドには、ある程度の"フラクタルディティール"が適用されます。これにより、ベースのハイトフィールドの最小形状スケール以下の目立たないディティールが追加され、リアルさが増し地形の形状を損なうことなくシャープなポリゴンエッジを避ける事が出来ます。『Heightfield shader』ノードの[Fractal Detail]タブ内にある「Add flactal detail」のチェックボックスを使用する事で、この機能を制御する事が出来ます。 このランダムで小さなスケールのフラクタルディテールは、ハイトフィールドをよりリアルにしたり、プロシージャルランドスケープにより簡単に適合させるのに最適ですが、コントロールは最小限で、追加されるディテールは特に面白くも重要でもありません。しかし、Terragenの強力なプロシージャルシェーダを使えば、ハイトフィールドの出力に影響を与え、オーバーハングなどのより具体的で面白い効果を生み出す事が出来ます。リファレンスページの[[Heightfield Shader]]では峡谷の簡単な作成方法を解説し、また、プロシージャルを使ったリアルな張り出した崖を作成する方法は[[Terragen 4 Basics: Create Cliffs>https://www.youtube.com/watch?v=GLW_virEpjg]]などの動画チュートリアルでも紹介されています。 複数のハイトフィールドを使用したり、ハイトフィールドのサイズを大きくしたりする事も出来ますが、これらのオプションについては、リファレンスの「Heightfield Operators」を参照して下さい。 ---- *水面 現在、水面を作るには2つの方法があります。ビルトインの『Lake』オブジェクトを使って、大きさを調整できる平らな円盤状の水面を作る方法と、『Water Shader』を地形に適用して、マスクシェーダなどのマスキングを使って配置をコントロールする方法があります。『Lake』オブジェクトでは、波の高さや色、波の特性が異なる複数の独自の水の要素を作成する事が出来ます。また、水面の形状をマスクして配置を細かくコントロールする事も出来るので、川や複雑な湖の形状など、重要な要素を作成する事が出来ます。 惑星規模のシーンを作成する時は、『Lake』オブジェクトは使用しないで下さい。名前の通り、惑星規模の海域を司るのではなく、限定された湖に限っての使用を目的としています。惑星規模の"海域"を作成する場合は、『Surface Layer』を使用して高度をビルトイン設定で制限し、色を濃い青や黒に設定します。そして子レイヤーとして『Water』または『Reflective Shader』を関連付けます。 では、実際に『Lake』オブジェクトの使い方をもう少し詳しく見てみましょう。 最初に【Water】レイアウトに移動して、『Lake』オブジェクトを配置できるようにします。[Add Water Object]メニューには、現在このオブジェクトしかありません。このオブジェクトを追加するとすぐに3Dプレビューウィンドウが水で覆われているのがわかります。その後、ノードリストでクリックすると、設定パネルが表示されます。設定パネルの詳細については、『[[Lake]]』を参照して下さい。 基本設定を確認した後、水がどのように見えるかを確認するために簡単なレンダリングを行ってみましょう。デフォルトのカメラ視点は地形から10メートルの高さになっているので、水面がよく見えるように少し下げてみましょう。水面にかなり近い位置(約2メートル)までカメラを降ろし、この新しいカメラ位置でレンダリングを行います。この高さでは、波の構造や波の変化がよくわかり、臨場感が増すはずです。水面は他のシーン要素よりもレンダリングに時間がかかることは間違いありません。反射のレンダリングには常にかなりの負荷がかかり、Terragenも例外ではありません。この点については将来的に多くの最適化が行われ、可能な限り改善される予定です。 #image(screen06_01.jpg) 水面自体のすべての側面は、『Water Shader』の設定でコントロールする事が出来ます。それでは、現在の機能でどのような事が出来るのかを見てみましょう。[Surface Shaders]タブで、「Surface Shader に、すでに『Water Shader』が設定されており、右側にあるボックスをクリックし、「Go to "Water Shader 01"」を選択すると、『Water Shader』設定ウィンドウが開きます。この設定ウィンドウで、水面のすべての側面をコントロールする事が出来ます。将来的には、"岸壁の波や泡"などの追加機能が、独自のタブとして追加されるでしょう。現在、[Wave]タブが表示されており、水面の外観を調整するための最も重要なコントロールがいくつか含まれています。
*はじめに 地形は、あらゆるシーンを構成する最も基本的な要素の1つです。Terragenには、シーンのベースとなる地形を作成するための柔軟なシステムがいくつか用意されており、それぞれの仕組みを理解する事で、必要に応じてどちらが最適化を判断する事が出来ます。 Terragenでは、ハイトフィールドとプロシージャルという、関連性はあるが大きく異なる2つの地形タイプを扱います。一般的に、ハイトフィールドは、面積が限られており、表示できるディティールも限られていますが、非常に特殊な地形形状(実現世界の標高データなど)を表現する事ができ、編集も簡単で他のプログラムとの互換性も高いと考えられております。 一方、プロシージャルは、一般的に無限の面積を独自のディティールで表現する事ができ、非常に広範囲のスケールを高精細に表現する事が出来ますが、直感的で具体的な変更を加えるのが難しく、他のアプリケーションとの互換性も低いという特性があります。 *プロシージャルの世界へようこそ Terragenは、これまでのバージョンとは根本的に異なる方法で動作します。Terragen Classicでも一部の機能にプロシージャルを使用していましたし、Terragen 4でもハイトフィールドをしっかりとサポートしていますが、現在は空の雲から地形そのものの形状まですべてをプロシージャルを使って作成する事に重点を置いています。Terragenや他のランドスケープアプリケーションで使用されている有限の解像度を持つラスターハイトフィールドとは異なり、プロシージャルによる地形の作成は、サイズやディティールに制限がないという点で特に重要です。 プロシージャルとは、視覚的な出力を可能にする数学関数のことで、多くの実用的なコンピュータアプリケーションに応用する事が出来ます。フラクタルは、プロシージャルの一種であり、皆さんもよくご存じでしょう。プロシージャル関数は、数学的根拠に基づいて、非常に大きなスケールの範囲を表現する事が出来ます。関数の入力値を変更するだけで、山から小石まで、またその中間に位置するものまで全てを描き出す事を可能にします。また、プロシージャル関数を使ったシーンでは、無限に近いディティールを表現する事も出来ます。 一般的な「ハイトフィールド」や「ハイトマップ」は「ラスター(行と列の格子状に並んだピクセルで構成される。デジカメの写真データがこれに当たります。)」データの一種であり、つまり、有限の寸法を持つピクセルやサンプルの配列として定義されています。そのため、Terragenの".ter"ファイルやDEMなどのほとんどのハイトフィールドは、ピクセル単位の解像度で定義された有限のディティールレベルを持っています。プロシージャルは、必要に応じてほぼすべてのスケールで生成およびサンプリングできるため、このような制限はありません。技術的に言えば、Terragenは、プロシージャルを一定の間隔でサンプリングして高さの値を導き出すことで、ハイトフィールドとして使用していますが、ここではわかりやすくするために、プロシージャルを単にプロシージャルと呼び、いわゆる「ラスターハイトフィールド」を単にハイトフィールドと呼ぶことにします。 ---- *ディティールはどうなっているのか? [[初めてのシーン>初めてのシーン作成]]では、大規模なスケールを表現する際のプロシージャルの利点を紹介しました。プロシージャル機能を使うと、惑星全体を非常に簡単に作成出来る事を説明しました。まだ、この章をご覧になっていない方は、先に進む前に一読してください。それでは、プロシージャルの全容のもう一方の端であるミクロスケールを見てみましょう。 初めてのシーンで説明したように、デフォルトシーンのハイトフィールドをプロシージャルに置き換えます。(Terragen 2の時、デフォルトシーンは『Heightfield shader 01』が設定されていました。)新しいノードに"Mountains"という名前を付けて下さい。これがこの演習での地形の基礎を形成します。 #image(screen01.jpg,width=800,height=579) 必要に応じてカメラを調整して、近くの地面が見えるようにしま、カメラが地面の下に潜らないように出来るだけ近づけます。"Vheight"パラメータを表示させて([Alt]+3Dプレビュー枠をクリック)、地形からの高さを確認する事を忘れないで下さい。2〜3メートルが適当な高さです。可能な限り近づいたら、[Reset to current render camera]ボタンを押し、[Render]ビュー(ツールバーのF3または[Ctrl]+R)を開いて、シーンをレンダリングします。すでにそれなりの量のディティールが見えていると思いますが、あまりにも滑らか過ぎるので、もっと精細に、立体的にする事が出来るでしょう。 #image(screen01_01.jpg) ディティールを追加するために、別のプロシージャル地形レイヤーを作成しますが、今回はスケールをかなり小さくします。これにより、全体的に大規模な地形の形状を維持しつつ、小さなスケールでディティールを追加する事が出来ます。まず、ノードリストに移動し、[Add Terrain]ボタンを使い、地形レイアウトから『Power Fractal(Heightfield shader 01)』地形レイヤーを作成します。地形が大幅に変化するのがわかりますが心配はいりません。ここからずっと和らいでいきます。 追加した『Fractal terrain 01』をクリックして設定パネルを表示し、"Detail Layer"と名前を付けます。Terragenではほとんどの単位がメートルで指定されている事を覚えておいて、「Feature Scale」を約0.1に下げてみましょう。これは、平均的な形状サイズが1/10メートル(10cm)なることを意味します。「Lead-in scale」と「Smallest scale」を調整して、その両側にも適切な範囲を確保する必要があります。「Lead-in scale」を約2に設定し、「Smallest scale」を約0.02に設定します。これで、最小形状は1/50メートル、最大形状は2メートル程度になります。 #image(screen02.jpg,width=356,height=540) これでシーンの印象が大きく変わったと思いますが、最後にもう一つ、物事を正しく設定するための調整が必要です。『Detail Layer』の[Displacement]タブに移動し、「Displacement amplitude」を確認します。この設定は、このノードによって地形に適用されるディスプレースメントの実際の高さをコントロールするもので、デフォルトの2000メートルでは、地形の見え方が大きく変わってしまう理由がわかります。これを1に設定すると、シーンはより正常な状態に戻るはずですが、より小さなディテールが著しく増加しています。テストレンダリングを開始して、変更の結果を確認してみましょう。 #image(screen02_01.jpg) レンダリングが終了すると、ディティールが追加されているものの、やや粗く不自然な印象を受けるかもしれません。より変化に富んだリアルな外観にするために設定を少し調整してみましょう。『Detail Layer』の設定に戻り、[[Displacement]タブをもう一度確認します。現在の振幅は1メートルですが、「Feature Scale」が1/10メートルなので、これをほぼ同じに減らすのが理にかなっています。「Feature Scale」に合わせて0.1に設定しましょう。フラクタル形状の見た面も私たちが望んでいるものとは違っていたので、ノイズの「風味」を変更してみましょう。[Tweak Noise]タブに移動し、上部にある「Noise Flavour」のドロップダウンボックスをクリックすると、利用可能なオプションが表示されます。デフォルトでは"Perlin mix 1"が設定されています。これは標準の"Perlin"と"Perlin billows"のノイズタイプのミックスです。それでは、"Perlin mix 2"で見栄えが良くなるかどうか試してみましょう [Tweak Noise]タブを表示している時に、小さな形状にもう少しバリエーションを与えてみましょう。ノイズのバリエーションはすでに2で、中程度の設定ですが、3に増やすてもう少しバリエーションを増やしてみましょう。また、自然の風によって生まれた堆積物のように小さな形状が小さな塊を形成しているといいかもしれません。そこで、「Clumping of variation」を0.5に増やしましょう。さて、より自然な外観を実現するために設定を少し調整したところで、もう一度レンダリングしてその結果を見てみましょう。。 #image(screen03.jpg,width=329,height=560) レンダリングすると、地形からわずかな距離であっても、膨大な量のディティールが残っている事が分かります。これは、大小さまざまなものを描写する上で、プロシージャルは非常に大きな力を発揮する事がよくわかります。この2つのプロシージャル地形ノードを組み合わせるだけで、山から小さな岩のような地層まで、惑星全体の地形が出来上がります。さらに多くのプロシージャルを何層にも重ねる事で、地形全体のディティールを変更させたり、大小の形状をリアルに表現したりする事が出来ます。これにより、大陸レベルのディティールからビーチの砂まで、完全にリアルな仮想惑星を作成する事が出来ます。 #image(screen03_01.jpg) Terragenでは、この優れた柔軟性と拡張性を利用して、非常に精細で無限に変化するグローバルなランドスケープを作成するだけでなく、インポート、生成、編集したハイトフィールドにディティールを追加する事で、両方の長所を最大限に活用する事が出来ます。この機能を実現する方法については、以下の「ハイトフィールド」の章を参照して下さい。 [[この項で使用したTGDファイル>https://img.atwikiimg.com/www65.atwiki.jp/terragen/attach/260/2229/Welcome_World_Procedurals.tgd]] ---- *「大きいことは良いことだ」:プロシージャルを使った大規模な地形表現 完全にリアルな惑星を作るためのレシピのもう一つの過程は、大規模な形状です。Terragenのプロシージャルは、惑星全体の山のようなスケールのリアルなディテールを作成する事ができ、同じフラクタルディテールを使用して非常に小さなスケールのディテールを増やせる事を説明しました。ここでは、大陸や山脈などのより大きな地形を作成する方法を紹介します。惑星全体を覆うような大規模なディティールを作成するのは困難ですが、根気よく練習すれば、リアルな地形と事実上無限のバリエーションを持つ惑星全体を作成する事が出来ます。 通常は、「Feature scale」を適切な大きさに増やすて、他の地形形状とブレンドするだけで思ったほど簡単に出来ます。目指すものによっては、これがすべてです。ただし、ここでは、単に惑星全体に大きなディスプレースメントを加えるだけではなく、より大きなスケールで地形の形状変化を実現する、少し高度な方法についても見ていきます。 まずは前のセクションで作成したシーンに基づいて、簡単な方法から始めましょう。新しくシーンを作成する場合は、地形リストのノードをすべて削除してから『Power fractal』ノードを作成し、設定をデフォルトのままにします。新しいノードに「Mountains」と名前を付けます。この後、さらにいくつかの地形ノードを作成する事になるので、この名前つけておくと管理やしやすくなります。 より大きな機能を追加する前に、カメラをかなり高い高度に移動して、ビューが地形内にとどまらないようにする必要があります。高度1〜2kmで十分です。基準点が得られるように、新しいカメラの視点からテストレンダリングを実行する必要があります。 より大きな地形を追加する前に、地面の中に視界が入り込まないように、カメラをかなり高い位置に移動させます。高度1〜2kmあれば十分です。新しいカメラの視点でテストレンダリングを行い、基準点を確認しておきましょう。 #image(screen04_01.jpg) 次に、追加で新しく『Power fractal』ノードを作成します。これに"LargeFeatures"と名前を付けます。これから行う最も重要なことは、「Feature scale」と「Lead-in scale」を変更する事です。これにより、求めていた大きな形状が得られます。初期値として、「Feature Scale」を50,000、「Lead-in Scale」を250,000(デフォルトの10倍)に設定してみましょう。平均的な形状サイズが50kmなので、これで山脈や海岸線のようなスケールの地形を簡単に描写出来るようになりました。早速テストレンダリングをして、その違いを確認してみましょう。 #image(screen04_02.jpg) シーンの違いは、任意のカメラ位置によって、ここで挙げているサンプル画像とは大きく異なるかもしれませんが、新しい『Power fractal』ノードを追加して設定を調整する事で、変化が見られることを願っています。そうでない場合は、カメラを新しい場所に移動してみて下さい。新しいノードを一時的に無効にして、変更前後のビューを表示する事が出来ます。ノードの設定パネル左上にある「Enable」チェックボックスを外すだけです。大きな違いを示すビューが見つからなくても心配はいりません。これから軌道に乗り、大きな変化が確実に見られるはずです。 その前に、サンプルシーンでの変更について説明します。地形スケールは非常に大きいですが、影響を受けた地形の高さの変化は比較的小さく、設定した50kmの高さもありません。これは、「Displacement amplitude」が実際のディスプレースメントの"強さ"を個別に制御するためです。『LargeFeatures』ノードの[Displacement]タブに移動して、効果を少し増やしてみましょう。デフォルトの「Displacement amplitude」は1000メートル(現バージョン4.5.60では2000)で、平均的な山に適した設定になっています。大規模な地形は必ずしも特別に高さを持っているとは限りませんが、ここでは効果を上げるためにこの値を約1500に増やします。もう一度テストレンダリングしてみましょう。 #image(screen04_03.jpg) この効果は、よりドラマチックなものになり、軌道上から見える事を期待しています。それでは見てみましょう。前述のカメラコントロールを使って、カメラを惑星に向け、ズーム機能を使用して惑星から少しずつ距離を取っていきます。適切な高さに達したら、惑星の端を含めた全体が見えるように視野を調整します。視野いっぱいに惑星が見えるようにしてください。カメラビューの設定を確認してから、もう一度テストレンダリングを行います。 #image(screen04_04.jpg) 比較のために、『LargeFeatures』ノードを無効にして、同じ視点からどのように見えるかを見てみましょう。「Enable」チェックボックスを外して、ノードを無効にし、もう一度レンダリングを行います。 #image(screen04_05.jpg) 少し微妙な違いでしかありませんが、この高度からでも目に付くということは、かなり大きいのではないでしょうか。求めていた山脈や大陸規模の地形がとして幸先の良いスタートを切っています。しかし、世界の大部分が私たちの山の形で覆われていて、それがあまりにも均等に分布しているように見えることに気付くでしょう。次のステップは、より現実的な方法で山の範囲を限定し、山脈や峡谷、広々とした平原などの独特のある形状を表現してみましょう。 次のステップでは、ノードネットワークで直接操作する必要があります。プロシージャルの関数を作成して、山の分布範囲を定義し、それを『Mountains』ノードの"Mask shader"入力に接続して、その範囲を制限します。画面右下のノードネットワーク枠に切り替えて作業を行います。ノードネットワークの【Terrain】グループを拡大することから始めたいと思います。 【Terrain】グループ内の何もない場所を右クリックし、「Create Shader」-> "Displacement Shader" -> 'Power fractal shader v3'の順に選択します。この新しいノードに"MountainDistribution"と名前を付け、ノードの下部にある出力端子を左クリックし、『Mountains』ノード右側上部ある"Mask shader"の入力端子にドラッグして接続します。 #image(screen04.jpg) "Mask shader"の入力端子は、ほとんどのシェーダノードに存在します。この入力を有効にすると、その効果は他のアプリケーションの"マスク"と似ています。この関数では、入力の典型的なマスキング解釈を使用して、グレースケール画像とプロシージャル出力を使ってノードの分布を制御する事が出来ます。他のアプリケーションと同様に、白は"完全に覆う"、黒は"覆いなし"で、その中間のグレー値はパーセンテージによって覆う範囲が事なる事を表しています。 #image(screen05.jpg) 新しいマスクシェーダの効果を確認する前に、『Mountains』ノードでマスクを有効にする必要があります(通常は接続時にチェックが入ります)。ノードの設定パネルの下部に、マスク入力コントロールが表示されます。「Mask by shader」チェックボックスの横に、使用するマスクシェーダの名前が表示されます。ボックスをクリックして有効にすると、マスク機能が稼働します。微妙な変化ではありますが、プレビューウィンドウですぐに変更が確認できるはずです。テストレンダリングを行って、デフォルト設定でどのような結果が得られるかを確認して下さい。 #image(screen04_06.jpg) 多少の違いが見られるはずですが、何が変更されたのかすぐにはわからないかもしれません。基本的には、デフォルトの「Feature scale」である5000メートルの山の形を、同じスケールの別のノードでマスキングしています。これにより、山の分布が全体的に減少し、全体的な高さが減少するという、かなりランダムな印象を受けます。より見栄えの良い分布を得るには、スケールを調整する必要があります。 ノードネットワーク上では、ノードリストとは異なり、ノードをダブルクリックして設定ウィンドウを表示させる必要があります。設定ウィンドウは、実際にはフローティングウィンドウとして表示され、自由に移動したり、通常のウィンドウのように閉じたり、[Stay Open]ボタンで永続的に開いたままにする事が出来ます。詳細については、上記のノードネットワークの章を参照して下さい。『MountainDistribution』ノードの設定ウィンドウを開いたら、「Feature scale」と「Lead-in scale」を、前に作成した『LargeFeatures』ノードと同様に、適切な大きさに調整します。「Feature scale」を65,000、「Lead-in scale」を325,000に設定してみます。これにより、平均的な地形サイズは65kmとなり、これは通常の山脈では少し小さいですが、「Lead-in scale」がかなり大きいため、様々な大きさの地形スケールを得る事が出来るでしょう。 また、このノードはそれほど広い範囲で動作させる必要がないため、「Smallest scale」を大きくする必要があります。ノイズのオクターブ数が増えれば増えるほど、シェーダの計算時間が掛かる事に注意して下さい。「Smallest scale」を約50メートルに設定します。これにより計算時間を短縮しつつ、現実的に十分な小規模のディティールを得る事が出来ます。「Smallest scale」、「Lead-in scale」、「Feature scale」が類似しすぎると、ノイズのオクターブ数が非常に少なくなり、出力が非常に人工的な外観になってしまいます。 次に何を調整すべきかを決めるために、もう一度テストレンダリングを行ってみましょう。 #image(screen04_07.jpg) 山は今ではランダムに見えなくなりましたが、全体的に目立たなくなりました。マスクシェーダノードのコントラストを調整する事で、山のある部分とない部分の差を大きくしたいと思います。こうすることで、山の山頂が高くなり、より滑らかな平地の両方が得られるはずです。 『MountainDistribution』ノードの「Colour」タブに移動します。デフォルトの「Colour contrast」は0.5しかないので、1.0に増やしてみましょう。「Colour roughness」もデフォルトではかなり高いので、山の連なりのエッジが不明確になる傾向があります。「Colour roughness」を約2.0に下げると、より明確でランダムのない外観になります。 また、デフォルトのパーリンノイズ機能では、山脈に適した形状が実際には作成されない事に気付いたかもしれません。そこで、適切な代替手段がないか考えてみましょう。[Tweak Noise]タブに移動し、「Noise flavour」のドロップダウンのオプションを確認します。"Perlin ridges"の方がベースの構造としては優れているようなので、ここではそれを選択します。 #image(screen04_08.jpg) こうして探求を重ねる事で少しずつリアルな惑星を作成していきましょう。 [[この項で使用したTGDファイル>https://img.atwikiimg.com/www65.atwiki.jp/terragen/attach/260/2245/Bigger_Is_Better.tgd]] ---- *ハイトフィールド Terragenでは、プロシージャルとその明らかな利点に非常に重点を置いているため、ハイトフィールドの用途や利点は見落とされがちです。しかし、ハイトフィールドは、プロシージャルの世界でも依然として非常に有用であり、両方のタイプの地形を効果的に組み合わせる事で、最高のシーンを生み出す事が出来ます。プロシージャルは、非常に大きなスケールから非常に小さなスケールまで、様々なディティールをランダムに表現するのに適しています。一方、ハイトフィールドは非常に具体的な形状を表現するのに優れており、一般的には、より小さなスケールの範囲をより効果的に表現する事が出来ます。例えば、惑星全体の地形を作りたい場合は、プロシージャル機能が唯一の現実的なアプローチとなりますが、特定の外観を持つ、リアルに現侵食された形状の地形を作りたい場合は、ハイトフィールドが最善の方法となります(例えば外部アプリケーションの『gaea』や『World Machine』でエクスポートした地形データをTerragenにインポートして使用する場合など)。 幸い、Terragenでは選択の必要がありません。Terragenでは、1つのシーンでプロシージャルとハイトフィールドを簡単に混在させる事が出来るだけでなく、ハイトフィールドを非常に効果的に使用する事が出来ます。ハイトフィールドをベースにしてリアルな地形を作成し、その上にプロシージャルを重ねる事で、非常に高精細でリアルなシーンを作成する事も出来ます。実在する場所のDEMを簡単にインポートして、非常にリアルな基本地形を形成し、そこにプロシージャルなディティールを追加してリアルな前景を作り出す事が出来ます。また、自分の住んでいる地域の地形のハイトフィールドを使用し、プロシージャルで背景を埋める事で、"世界の終わり"や"平坦な惑星"症候群を回避する事が出来ます。また、解像度の異なる複数のハイトフィールドを使用して、地形の異なるエリアやスケールを定義する事も出来ます。その可能性は事実上無限大です! デフォルトでは、Terragenに読み込まれたハイトフィールドには、ある程度の"フラクタルディティール"が適用されます。これにより、ベースのハイトフィールドの最小形状スケール以下の目立たないディティールが追加され、リアルさが増し地形の形状を損なうことなくシャープなポリゴンエッジを避ける事が出来ます。『Heightfield shader』ノードの[Fractal Detail]タブ内にある「Add flactal detail」のチェックボックスを使用する事で、この機能を制御する事が出来ます。 このランダムで小さなスケールのフラクタルディテールは、ハイトフィールドをよりリアルにしたり、プロシージャルランドスケープにより簡単に適合させるのに最適ですが、コントロールは最小限で、追加されるディテールは特に面白くも重要でもありません。しかし、Terragenの強力なプロシージャルシェーダを使えば、ハイトフィールドの出力に影響を与え、オーバーハングなどのより具体的で面白い効果を生み出す事が出来ます。リファレンスページの[[Heightfield Shader]]では峡谷の簡単な作成方法を解説し、また、プロシージャルを使ったリアルな張り出した崖を作成する方法は[[Terragen 4 Basics: Create Cliffs>https://www.youtube.com/watch?v=GLW_virEpjg]]などの動画チュートリアルでも紹介されています。 複数のハイトフィールドを使用したり、ハイトフィールドのサイズを大きくしたりする事も出来ますが、これらのオプションについては、リファレンスの「Heightfield Operators」を参照して下さい。 ---- *水面 現在、水面を作るには2つの方法があります。ビルトインの『Lake』オブジェクトを使って、大きさを調整できる平らな円盤状の水面を作る方法と、『Water Shader』を地形に適用して、マスクシェーダなどのマスキングを使って配置をコントロールする方法があります。『Lake』オブジェクトでは、波の高さや色、波の特性が異なる複数の独自の水の要素を作成する事が出来ます。また、水面の形状をマスクして配置を細かくコントロールする事も出来るので、川や複雑な湖の形状など、重要な要素を作成する事が出来ます。 惑星規模のシーンを作成する時は、『Lake』オブジェクトは使用しないで下さい。名前の通り、惑星規模の海域を司るのではなく、限定された湖に限っての使用を目的としています。惑星規模の"海域"を作成する場合は、『Surface Layer』を使用して高度をビルトイン設定で制限し、色を濃い青や黒に設定します。そして子レイヤーとして『Water』または『Reflective Shader』を関連付けます。 では、実際に『Lake』オブジェクトの使い方をもう少し詳しく見てみましょう。 最初に【Water】レイアウトに移動して、『Lake』オブジェクトを配置できるようにします。[Add Water Object]メニューには、現在このオブジェクトしかありません。このオブジェクトを追加するとすぐに3Dプレビューウィンドウが水で覆われているのがわかります。その後、ノードリストでクリックすると、設定パネルが表示されます。設定パネルの詳細については、『[[Lake]]』を参照して下さい。 基本設定を確認した後、水がどのように見えるかを確認するために簡単なレンダリングを行ってみましょう。デフォルトのカメラ視点は地形から10メートルの高さになっているので、水面がよく見えるように少し下げてみましょう。水面にかなり近い位置(約2メートル)までカメラを降ろし、この新しいカメラ位置でレンダリングを行います。この高さでは、波の構造や波の変化がよくわかり、臨場感が増すはずです。水面は他のシーン要素よりもレンダリングに時間がかかることは間違いありません。反射のレンダリングには常にかなりの負荷がかかり、Terragenも例外ではありません。この点については将来的に多くの最適化が行われ、可能な限り改善される予定です。 #image(screen06_01.jpg) 水面自体のすべての側面は、『Water Shader』の設定でコントロールする事が出来ます。それでは、現在の機能でどのような事が出来るのかを見てみましょう。[Surface Shaders]タブで、「Surface Shader」パラメータに、すでに『Water Shader』が設定されており、右側にあるボックスをクリックし、「Go to "Water Shader 01"」を選択すると、『Water Shader』設定ウィンドウが開きます。この設定ウィンドウで、水面のすべての側面をコントロールする事が出来ます。将来的には、"岸壁の波や泡"などの追加機能が、独自のタブとして追加されるでしょう。現在、[Wave]タブが表示されており、水面の外観を調整するための最も重要なコントロールがいくつか含まれています。 ここまでで、Terragenの名前の付け方には慣れてきたと思いますので、ほとんどの項目は説明がつくと思います。「Roughness」設定は、水面の一般的な粗さをコントロールし、「Wave scale」は平均の波のサイズで「Smallest scale」は細部のサイズを決定するため、このパラメータを組み合わせて水面の形状の大部分を決定します。波の形状があまりにも単純に見える場合はこれらの値を大きくし、遠くから水面を眺めるだけの場合は小さくします。値を小さくすると、『Water Shader』のノイズ関数のオクターブ数が増えるので、レンダリング時間が長くなります。 次の一連の「Wind Patch」コントロール設定は、Terragen Classicのユーザーにはおなじみのものです。自然界では、風を含むいくつかの要因により、大きな水域全体では波の構造や全体的な水面の滑らかさにばらつきがあります。「Wind Patch」を設定する事で、これらの効果をシミュレートし、よりリアルなレベルをもたらし、大きな水面の要素に多様性と面白さを与える事が出来ます。デフォルトでは、水面に微妙な変化を与え、大規模なノイズ関数で水面全体の粗さを調整します。「Wind patch effect」の設定は、この効果の強さ、つまり異なるエリア間の実際の変化の量をコントロールします。「Wind patch size」は、変化するエリアの平均的なスケールを調整します。最後に、「Wind patch sharpness」は、変化のあるエリア間の境界線がどれだけくっきり差を見せるかを設定します。つまり、異なる粗さのエリア間の遷移のスムーズさをコントロールします。 次に、[Reflections]タブに移動します。「Master Reflectivity」は、水面の全体的な反射率をコントロールするもので、一目瞭然です。「Index of Refraction」とは専門用語で、ある素材によって引き起こされる光の屈折の量を意味します。これは、水の標準屈折率が1.33であることからもわかります。この値が大きいほど、反射光はより拡散します。「Horizo​​n Shift」は、遠くの反射面の面粗度の増減による総合的な影響による反射の「ずれ」をシミュレートするために使用する特別な機能です。基本的には、遠方の反射の角度を地平線に向かって、または地平線から遠ざけることになります。この機能を理解する最も簡単な方法は、「Horizo​​n Shift」のスライダーを操作してプレビュー上でその効果を確認する事です。「Highlight Intensity」は、光源からの鏡面ハイライトの強さを調整し、「Min Highlight Spread」は、反射の"広がり"の量、つまり鏡面ハイライトの拡散度を調整します。 なお、『Water Shader』ノードの入力端子にシェーダを接続する事で、これらのビルトイン設定の多くを上書きしたり、追加する事が出来ます。例えば、『Power Fractal Shader』を入力して、ディスプレースメントのコントロールを使用すれば、波の形状をより細かくコントロールする事が出来ます。『Heightfield Shader』や『Image Map Shader』も同じように使う事ができ、特に水面の形状を明示的にコントロールするのに役立ちます。『Water Shader』の入力端子によって有効になるもう1つの重要な機能は、水の色のコントロールです。『Default Shader』を入力端子に接続して色を調整してみて下さい。これで水の色を自由に指定出来るようになりました。これはまた、次の実験のきっかけにもなります。水面をマスクしてその配置をコントロールする事も様々な探求によって実現可能なのです。

表示オプション

横に並べて表示:
変化行の前後のみ表示: