Terragenのポピュレータには、3D
オブジェクトインスタンスを非常にリアルな方法で分散させる豊富な機能セットがあります。しかし、配置、
スケール、回転のバリエーションがあっても、各ポピュレータは1つのジオメトリと、それを使用して作成されたテクスチャやマテリアルに限定されているため、目に見える繰り返しが発生し、最終的な結果の現実性が制限されてしまいます。必要なのは、各オブジェクトを少しずつ異なるものにしたい場合、ポピュレータの着色ツールを使用するのが1つの解決策です。
基本的な岩石ポピュレーション設定
何もないシーンで岩石のポピュレーションを作って調べてみましょう。
- メインメニューの下にある【Objects』をクリックします。
- 《Add Object》ボタンをクリックし、ドロップダウンメニューから"Population"を選択し、ポピュレーションの中から"Rock"を選択します。
2つの新しい
ノードがオブジェクトリストに表示されます。1つ目のノードはポピュレーションノードで、2つ目のノードはポピュレータによってインスタンス化されるジオメトリノードです。
着色効果を最もはっきりと確認するために、等間隔で整然と並んだ岩石オブジェクトの配列を作成してみましょう。これを行うには、オブジェクトの回転、間隔、スケールの変動をすべて取り除きます。ポピュレーションエリア全体を埋めるのに必要な岩石の数を最小限に抑えるには、岩石のスケールを少し大きくして、ポピュレーションエリア全体の面積を減らします。
- オブジェクトリストから『Pop Rock 01』ノードを選択し、[Distribution]タブで、"Area length a"と"Area length b"の値を100に縮小します。
- "Object spacing in a,b"の値を5に、"Spacing variation in a,b"の値を0に設定します。
- [Rotation]タブで、"Maximum Y rotation"の値を0に設定します。
- [Scale]タブで、"Minimum scale"と"Maximum scale"の値を4に設定します。
- 《Populate Now》ボタンをクリックして、岩石を生成します。
岩石のポピュレーションが作成されたので、すべての岩石がよく見えるようになるまで
カメラを引き戻します。カメラの位置とシーンの移動の詳細については、
3Dプレビューを参照して下さい。
《RTP》ボタンをクリックして、3Dプレビュー枠のレイトレースプレビューモードを有効にします。これにより、レンダラーを使用してフレームを
レンダリングしなくても、シーンの最適なビューが提供されます。
岩石オブジェクトの"Surface shader"には『Default shader 01』が割り当てられており、岩石の各インスタンスに"diffuse colour"の値0.5が設定されています。これは、オブジェクトリストで『Pop Rock 01 / Rock 01』を選択し、"Surface shader"フィールドの右側にある緑色の[+]ボタンをクリックして、"Go to
Default Shader 01"を選択する事で確認する事が出来ます。
ポピュレーションの着色
カラーバリエーションは、『Power fractal shader』や『Image shader』のなどの
シェーダを、ポピュレーションの[Colour]タブにある"Tint diffuse color"フィールドに割り当てる事で、ポピュレーションに適用されます。このチュートリアルでは、『Power fractal shader』を使用して、岩石のポピュレーション全体に自然に見えるノイズテクスチャを提供します。『Power fractal shader』の詳細については、
Power Fractal Shader v3をクリックして下さい。
- オブジェクトリストから『Pop Rock 01』を選択します。
- [Colour]タブで、"Tint diffuse color"フィールドの右側にある緑色の[+]ボタンをクリックします。
- "Create new shader"->"Colour shader"->『Power fractal shader』を選択します。
『Power fractal shader』が"Tint diffuse color"に割り当てられたので、ノイズパターンのスケールを岩石やポピュレーションエリアの大きさに合わせて調整して、着色処理の効果を見やすくなるようにします。ノードの名前をより説明的なものに変更してノードリストで見つけやすいようしておきます。
- "Tint diffuse color"フィールドの右側にある緑色の[+]ボタンをクリックし、”Go to Power fractal shader v3 01"を選択します。
- 『Power fractal shader』ノードの名前を"Rock tints"に変更します。
- "Name"フィールドの右側にある"Open shader in new preview"ボタンをクリックすると、独立したパワーフラクタルパターンのフローティングウィンドウが表示されます。
- [Scale]タブで、"Lead-in scale"の値を100に減らします。
フラクタルノイズパターンのコントラストを上げて色の変化をより見やすくしたいと思います。これを行うには、[Colour]タブにある"Colour contrast"、"Colour offset"、"Colour roughness"パラメーターを使用します。これらのパラメータの詳細については、
Power Fractal Shader v3の[Colour]タブを参照して下さい。
- "Colour contrast"の値を1に設定します。
- "Colour offset"の値を-0.4程度に設定します。
- "Colour roughness"の値を0に設定します。
このレンダリングされたフレームで分かるように、岩石はさまざまなグレー値で陰影が付けられています。内部的には、Terragenは、rocks拡散カラー値に着色機能によって提供された値を乗算しました。 すぐに計算に入りますが、一般的に言って、これは各岩を暗くする効果があります。
この手順をもう一度繰り返しますが、今回はフラクタルノイズパターンに白黒以外の色を使用します。
- "Apply high colour"の色見本をクリックして、RGB値が"255,0,0"、またはリニア値が"1.0,0.0,0.0"の赤色を選択します。
- "Apply low colour"のチェックボックスをクリックして有効にし、RGB値が"0,255,0"、またはリニア値が"0.0,1.0,0.0"の緑色を選択します。
下のレンダリングでは、着色処理によよって岩石に赤、緑、黄色の新しい色合いが与えられた事が分かります。
ポピュレーションの着色の背後にある計算
これまでの進捗状況を確認して、Terragenの内部で行われている計算を理解してみましょう。
- オブジェクト上の特定のスポットの拡散カラー値は、3つのカラーコンポーネント値で構成されています。赤、緑、青の各コンポーネントに1つの値。岩石オブジェクトの拡散カラー値は、それぞれのカラーコンポーネント値が0.5です。
- ポピュレーションの"Tint diffuse colour"に割り当てられた『Power fractal shader』は、各インスタンス化されたオブジェクトのティントカラーを生成します。生成される色は、"Apply high colour"と"Apply low colour"の値の間のどこかになりますが、ハイカラーとローカラーのどちらかが無効になっている場合、0.0、または黒の値がその色に使用されます。各インスタンス化されたオブジェクトは、フラクタルノイズパターンとの関係で、3D空間でのインスタンス化されたオブジェクトの位置に基づいて、異なるティントカラーを取得します。Terragenは、オブジェクトの拡散色のRGB値に、生成されたティントカラーのRGB値を乗算します。
- 最後の画像を例にすると、岩石オブジェクトの拡散色の赤コンポーネント値は0.5で、これにハイカラーの赤コンポーネント値1.0とローカラーの赤コンポーネント値の間の値が乗算されています。つまり、赤のコンポーネント値の最大値が0.5であり、それ以下になる可能性が高いことを意味します。これを他の色コンポーネントについても繰り返し、最終的な色の値を決定します。
- 最終的な色の値を決定する際にもう1つの考慮すべき点があります。それは、[Colour]タブにある"Diffuse colour multiplier"の値です。このフィールドの値は、全体の色の値を調整する方法を提供するために、拡散色で乗算されます。例えば、岩石オブジェクトの拡散カラー値0.5の場合、拡散カラー乗数(デフォルトは1.0)で乗算されるため変化はありませんが、拡散カラー乗数値が2.0の場合、岩石オブジェクトの拡散カラー値は1.0になり、以前の拡散値の2倍になります。
結論から言うと、最終的な着色値の背後にある計算は次のようになります。
オブジェクトの"Diffuse colour"コンポーネント値 × "Diffuse colour multiplier" × "Tint diffuse colour"コンポーネント値 = 結果の"Diffuse colour"コンポーネント値 |
より現実的な例
これまでの例では、着色されたオブジェクトには最初から単一の拡散カラー値を持っていましたが、ほとんどの場合、多くの拡散カラー値を含むテクスチャマップを使用してオブジェクトを配置する事になります。これを再現するには、新しい『Power fractal shader』を直接岩石オブジェクトのテクスチャに割り当て、ノイズパターンを約1メートルの岩石のサイズに合わせてに適切にスケーリングします。
- オブジェクトリストで『Pop Rock 01 / Rock 01』を選択します。
- [Surface Shader]タブで、"Surface shader"フィールドの右側にある緑色の[+]ボタンをクリックし、"Go to Default shader 01"を選択します。
- "Colour function"フィールドの右側にある緑色の[+]ボタンをクリックし、"Create new shader"->"Colour shader"->『Power fractal shader』を選択します。
- もう一度、緑色の[+]ボタンをクリックし、"Go to Power fractal shader v3"を選択します。
- ダイアログの枠が開いたら、『Power fractal shader』ノードの名前を『Rock Object Colours』に変更します。
- "Open shader preview in new window"ボタンをクリックし、3Dシェーダプレビュースケールが約4メートルになるまで[Zoom in]ボタンをクリックします。
- [Scale]タブで、"Feature scale"を0.11に、"Lead-in scale"を1に変更します。
- [Colour]タブで、"Apply low colour"チェックボックスをオンにして、黒ではなく濃い色を選択します。"0.39、0.34、0.21"のリニア値、または"99、86、54"のRGB値を使用しました。
- 3Dシェーダのプレビューウィンドウで、"Apply high colour"と"Apply low colour"の値の間に適切なコントラストが見られるようになるまで、"Colour offset"スライダーを調整します。
岩石に新しいテクスチャが追加されたので、一時的にポピュレーションの着色機能を無効にして、新しいテクスチャがどのように見えるかを確認してみましょう。
- オブジェクトリストで、『Pop Rock 01』ノードを選択します。
- [Colour]タブで、"Tint diffuse colour"のチェックボックスを外します。
下のレンダリング画像では、すべての岩石が最初からテクスチャのバリエーションを持つようになった事が分かります。
これは同じレンダリングフレームですが、"Tint diffuse colour"チェックボックスを有効にしています。これで、着色機能は各岩石のテクスチャのバリエーションを考慮したものになりました。
一般的に、ティントカラーを適用すると、インスタンス化されたオブジェクトの最終的な色が暗くなる事に注意して下さい。オブジェクトが暗くなり過ぎた場合は、"Diffuse color multiplier"を使用して、1.0より大きい値を適用する事で、オブジェクトを明るくする事が出来ます。 下のレンダリング画像では、"Diffuse color multiplier"の値を2に設定しているので、着色を適用した岩石の新しいテクスチャを、2倍の拡散値で見る事が出来ます。
最後に、"Diffuse color multiplier"は、1.0未満の値を入力する事で、インスタンスオブジェクトを全体的に暗くする事が出来ます。下のレンダリング画像では、"Diffuse color mulitplier"の値が0.5に設定されており、着色が適用されているのに、拡散値が半分しかない岩の新しいテクスチャを確認する事が出来ます。
ポピュレーションを彩色するためのソースとしては、どのようなタイプのシェーダでも使用する事が出来ます。ここでは、『Image map shader』をポピュレーションの色合いを調整するソースとして使用した例を紹介します。岩石オブジェクトの拡散値を1.0に設定する事で、インスタンスオブジェクトは画像テクスチャマップのカラー値を引き継ぎます。
結論として、着色処理が舞台裏でどのように機能するかを知ることで、インスタンスの最終的な色を調整するための多くのコントロールが可能になります。
最終更新:2020年06月25日 16:07