アップルサンプルGLCameraRippleコードを、画像をバックグラウンドとして書き直そうとしています。実際には私はこのコードを使用して水の画像に波及効果を作成しようとしていますが、コードはカメラのために働いています、代わりに私はちょうどカメラの代わりに背景として単純な水の画像を使用したい。方向やサンプルコードは大きな助けになります。前もって感謝します。GLCrameRippleサンプルを背景としてImageを書き換えるにはどうすればよいですか?
7
A
答えて
9
効果を波打つカメラが動作する方法は、テクスチャが三角形のグリッド上の座標変形である - ので、良いニュースは、あなたが望む効果は映像の質感とは全く別であるということです。彼らのテクスチャはちょうどビデオになります。あなたが望むことを達成するためには、すべてのカメラビデオコードを削除し、独自のテクスチャをバインドするだけです。
だから、のviewDidLoadに、あなたは[self setupAVCapture]
をコメントアウトしたい、とあなただけ(2行glUniform1i(uniforms[UNIFORM_Y], 0);
、glUniform1i(uniforms[UNIFORM_UV], 1);
ある)いずれかを使用して、作成しますから、先に行くとSetupGLの両方のテクスチャの制服をコメントアウトあなたをバインド&独自のテクスチャ。
GLKitはこのような何かを成し遂げるための最速の方法です。 GLKitはあなたからのOpenGL関数呼び出しをたくさん隠しますが、非常に高速です&効果的です。
//create the GLKTextureInfo object
NSError *error;
NSDictionary *options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:GLKTextureLoaderOriginBottomLeft];
GLKTextureInfo *texture = [GLKTextureLoader textureWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image" ofType:@"png"] options:options error:&error];
if (error) NSLog(@"Ripple FRONT TEXTURE ERROR: %@", error);
//bind the texture to texture unit 0
glActiveTexture(GL_TEXTURE0);
glBindTexture(texture.target, texture.name);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
setupAVCaptureに含まれていた非常に重要な設定が失われました。だから、のviewDidLoadで上記のコードの後にそれを置く:
if (_ripple == nil ||
texture.width != _textureWidth ||
texture.height != _textureHeight)
{
_textureWidth = texture.width;
_textureHeight = texture.height;
_ripple = [[RippleModel alloc] initWithScreenWidth:_screenWidth
screenHeight:_screenHeight
meshFactor:_meshFactor
touchRadius:5
textureWidth:_textureWidth
textureHeight:_textureHeight];
[self setupBuffers];
}
そして最後に、あなたは、フラグメントシェーダを少し変更する必要があります。
はShader.fshを開き、これに主な機能を変更します。
void main()
{
gl_FragColor = texture2D(SamplerY, texCoordVarying);
}
をとにかく、それはそれを行うべきです。 RippleModel &を試してみるのはとても楽しいです。
関連する問題
- 1. ピボットアプリケーションの背景をコードビハインドから置き換えるにはどうすればいいですか?
- 2. CSSで背景上書きを停止するにはどうすればよいですか?
- 3. URL書き換えを行うにはどうすればいいですか?
- 4. URL書き換えを使用してIISで.phpファイルと.htmlファイルの両方を書き換えるにはどうすればよいですか?
- 5. slice()を使用して.length()プロパティを書き換えるにはどうすればよいですか?
- 6. CFSCRIPTを使用してこのコードブロックを書き換えるにはどうすればよいですか?
- 7. 背景イメージを変更するにはどうすればよいですか?
- 8. 背景色を変更するにはどうすればよいですか?
- 9. フローティングアクションバーの背景をカスタマイズするにはどうすればよいですか?
- 10. セルが選択されているときにUIViewの背景色が消えないようにするにはどうすればよいですか?
- 11. htaccessに書き換えルールを書き込むにはどうすればよいですか?
- 12. freeswitchでswitch_r_sdpを使ってSDPを書き換えるにはどうすればよいですか?
- 13. 背景画像をぼかすにはどうすればよいですか?
- 14. SpriteKitでCamera Viewを背景画像として作成するにはどうすればよいですか?
- 15. アプリのメインの背景を変更しているときに、ActionBarアイテムの背景を同じにするにはどうすればいいですか?
- 16. JPanelの背景を更新しないようにするにはどうすればよいですか?
- 17. テキストビューの背景としてグラデーションを設定するにはどうすればよいですか?
- 18. フォントアイコンを背景イメージとして使用するにはどうすればよいですか?
- 19. マテリアルデザインアイコンをCSSの背景イメージ値として使用するにはどうすればよいですか?
- 20. マップをd3のインタラクティブな背景として配置するにはどうすればよいですか?
- 21. OpenXML TableCellの前景色と背景色を変更するにはどうすればよいですか?
- 22. PHP:mod_rewriteで書き換えられたURLを取得するにはどうすればよいですか?
- 23. JSPで書き換えられたURLを取得するにはどうすればよいですか?
- 24. タッチでCocos2dを使用して背景を縦にスクロールするにはどうすればよいですか?
- 25. mod_rewriteを使用して特定のURLを書き換えるにはどうすればいいですか?
- 26. サブクエリなしでSQLクエリを書き換えるにはどうすればよいですか?
- 27. SHA1(ASP.NET ID)で作成したパスワードハッシュを書き換えるにはどうすればよいですか?
- 28. ボタンの背景イメージを左揃えに設定するにはどうすればよいですか?
- 29. この式をより簡潔に書き換えるにはどうすればよいですか?
- 30. クリックしたときにボタンの背景イメージを変更するにはどうすればいいですか?
偉大な答えjankins、これは魅力のように動作します!この回答には受け入れ済みとマークする必要があります。 –
ありがとうjankinsが、これは(すべてのクレジットがjankinsに行くとApple)、あなたはここでそれを見つけることができます私は@jankinsの変更を行い、新しいプロジェクトにカメラコードを削除ここ – Andrea
非常に不完全な答え – rraallvv