を出すにはどうしたらいいんですPerlinノイズiPhone
-
24-09-2019 - |
質問
を実現したいアニメperlinノイズのiPhoneだったので、最終的に何かのようになります: http://dl.dropbox.com/u/1977230/example.png
ったと見ることができていないも同じようなものは見つけられた方法を実際に表示さPerlinノイズです。
って言われたことを眺めるOpenGL ESでも検索の一例Perlinノイズや溶岩/プラズマ効果な結果であります。
いい感謝の思いもありがとうございます。
おかげあり アンドレ
解決
もに、研究のPerlinノイズのアルゴリズムそのものです。 http://en.wikipedia.org/wiki/Perlin_noise 見え検索に合わせてカスタマイズというわけではありません。
一度、RGBAデータの効果のだろう悪かろうが始まります。
あるオプションを基本とさせていただきます。
をUIViewのサブクラスは、オーバーライドに引:(CGRect。使用 変換のRGBデータをビットマップObjective-C++のココア 賢明をCGImageからデータを描画する画像の現在のコンテキストです。
CGContextDrawImage(UIGraphicsGetCurrentContext(), <#CGRect rect#>, <#CGImageRef image#>);
これが静止画像です。の場合は使用してアニメーション化は、このような最善の選択です。
知OpenGL ES。IPhone SDKのOpenGL ESの例では優れた。研究のテクスチャマッピングを行ま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);
場合のノイズが定期的に更新、更新の質感を描画する方法
- (void) render { ..... glBindTexture(GL_TEXTURE_2D, spriteTexture); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, spriteData);
Ahまでのビデオは$A000日:)
他のヒント
私はあなたがパーリンノイズを生成するために使用できることのGithub上のオープンソースプロジェクトを開始しました。これは、完全な4次元(X、Y、Z、T)パーリンの生成をサポートします。また、テクスチャのアイデアと遊ぶのがサンドボックスアプリでプロジェクトを含んでいます。 http://czgarrett.com/code/2011 /05/18/perlin-noise-generator-for-ios.htmlする
今すぐテクスチャを参照する必要はありませんGLSLシェーダのための別のパーリンノイズ関数があります:<のhref =「https://github.com/ashima/webgl-noise/tree/master/src」のrel = "nofollowを「> https://github.com/ashima/webgl-noise/tree/master/src を。これは、iPhoneで動作するはずです。