パーリンノイズで模様作り最近の投稿Processing2.0の新機能。シェーダを使って高速に模様を描く。その2)Processing2.0の新機能。シェーダを使ってフィルタを作成する。2011(21日目)パーリンノイズで模様作り今回は、Processingのnoise()を利用していろいろな模様を作ります。乱数とパーリンノイズランダムProcessingで乱数を得る方法は、random()とnoise()の2種類があります。random()は、文字通りランダム値を返すものです。図は横方向を試行回数とし、高さをrandom()で決めたものです。random()には規則性が見られません。ELLIPSE_SIZE);}ノイズ続いてノイズです。これはパーリンノイズという技法で作られる乱数の一種です。noise()には、座標の様な形でパラメータを与えます。図のように、noise()にはある程度の連続性が見られます。これがノイズの特徴です。パラメータとして同じような数値を与えれば、同じような結果が返ってきます。ランダムだけども、連続性もある、そんな定数と乱数の中間の様なものを得ることができます。パラメータには小さな値を入れると連続性が高まります。このため、今回はDIVISION(=100)で割った値を利用しています。ELLIPSE_SIZE);}noise()を使ってみよう1次元のnoise()アプレットはこちらnoiseに引数を1つ与えた場合です。縦それぞれに対して、得た値の分だけ上から白い線を引いています。山脈のシルエットの様な模様が描かれました。counter++;}2次元のnoise()アプレットはこちらnoiseに引数を2つ与えた場合です。各ピクセルごとに、それぞれ得た値を白の濃さとして描いています。霧の様な模様が描かれました。counter++;}3次元のnoise()アプレットはこちらnoiseに引数を3つ与えた場合です。3次元空間に対して、得た値が高いところのボックスを明るく・大きくしています。流れる煙の様な模様が描かれました。回転させるために、軸を中央に移動。counter++;}不思議な動きアプレットはこちら今まではnoise()の値をそのまま使っていましたが、ここで、値を少し加工してみることにします。今回は、noise()の値を0~100にするとして、10、50、80前後のみ色をつけるようにしてみました。すると、何か奇妙な物体がうねうねしているようなものを作ることができました。0~99の各値に対して、変換する値を計算しておくもの。80の前後を白くする。noise()で得た値を、マップを使って変換する。0.4;}おまけアプレットはこちらnoise()のパラメータは必ずしも座標にマッチさせる必要はありません。色の赤・緑・青それぞれに割り当てるとこのようになります。