iPhone でアニメーション化されたパーリン ノイズを作成したいので、最終的には次のようなことができます: http://dl.dropbox.com/u/1977230/example.png
私は見てみましたが、似たようなものや実際にパーリンノイズを表示する方法を見つけることができません。
OpenGL ES を調べるように言われましたが、パーリン ノイズや溶岩/プラズマ効果の例を検索しても何も見つかりません。
これについて何か助けていただければ幸いです。
ありがとう、アンドレ
iPhone でアニメーション化されたパーリン ノイズを作成したいので、最終的には次のようなことができます: http://dl.dropbox.com/u/1977230/example.png
私は見てみましたが、似たようなものや実際にパーリンノイズを表示する方法を見つけることができません。
OpenGL ES を調べるように言われましたが、パーリン ノイズや溶岩/プラズマ効果の例を検索しても何も見つかりません。
これについて何か助けていただければ幸いです。
ありがとう、アンドレ
さて、最初にパーリンノイズアルゴリズム自体を研究してください。http://en.wikipedia.org/wiki/Perlin_noiseは、離陸するのに最適な場所に見えます。
この効果のRGBAデータを取得すると、厄介なことが始まります。
基本的に2つのオプションがあります。
UIViewサブクラスを作成し、draw:(CGRect)メソッドをオーバーライドします。Objective-C ++ CocoaでRGBデータをビットマップに変換するを賢く使用して、データからCGImageを作成し、その画像を描画中の現在のコンテキストに描画します。
CGContextDrawImage(UIGraphicsGetCurrentContext(), <#CGRect rect#>, <#CGImageRef image#>);
これが静止画であれば大丈夫です。アニメートしている場合、これは最善の解決策ではない可能性があります。
iPhoneのOpenGLESに慣れてください。iPhoneSDKのOpenGLESの例は、優れた出発点です。テクスチャマッピングを研究します。glTexImage2Dに慣れたら、それを使用して画像をロードします。
この例は、次のように簡単に拡張できます。
これらの定義があります:
GLuint spriteTexture;
GLubyte *spriteData; // the perlin noise will be here
size_t width, height;
次に、ESRendererのinitメソッドで、テクスチャ用のスペースを作成します。
- (id) init { ....
width = 512; // make sure the texture size is the power of 2
height = 512;
glGenTextures(1, &spriteTexture);
glBindTexture(GL_TEXTURE_2D, spriteTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, spriteData);
//free(spriteData); // free this if not used any more
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
ノイズが定期的に更新される場合は、renderメソッドでテクスチャを更新してください
- (void) render { .....
glBindTexture(GL_TEXTURE_2D, spriteTexture);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, spriteData);
ああ、古き良きビデオが$A000日にあるのが恋しいです:)
パーリン ノイズの生成に使用できるオープン ソース プロジェクトを Github で開始しました。完全な 4 次元 (x、y、z、t) Perlin 生成をサポートしています。また、テクスチャのアイデアを試すためのサンドボックス アプリを含むプロジェクトも含まれています。 http://czgarrett.com/code/2011/05/18/perlin-noise-generator-for-ios.html
現在、ルックアップ テクスチャを必要としない GLSL シェーダ用の別の Perlin ノイズ関数があります: https://github.com/ashima/webgl-noise/tree/master/src。これは iPhone で動作するはずです。