Görüntüyü arka plan olarak içeren Apple Sample GLCameraRipple kodunu yeniden yazmaya çalışıyorum. Aslında ben bu kodu kullanarak su resmi üzerinde dalgalanma etkisi yaratmaya çalışıyorum, ancak Kamera için kod çalışıyor, bunun yerine sadece fotoğraf yerine arka plan olarak basit bir su görüntüsü kullanmak istiyorum. Herhangi bir yön veya herhangi bir örnek kod harika bir yardımcı olacaktır. Şimdiden teşekkürler.GLCameraRipple örneğini Image olarak arka plan olarak nasıl yazabilirim?
cevap
Fotoğraf makinesi dalgalanma efektinin çalışma şekli, üçgenler ızgarasındaki doku koordinatlarını deforme etmesidir - bu nedenle iyi haber, istediğiniz efektin video dokusundan tamamen farklı olmasıdır; dokuları sadece bir video olur. İstediğinizi gerçekleştirmek için tek yapmanız gereken tüm kamera video kodunu kaldırmak ve kendi dokunuzu bağlamak.
Yani viewDidLoad, sen[self setupAVCapture]
açıklama ediyorum ve devam edin ve yalnızca birini (iki satır,
glUniform1i(uniforms[UNIFORM_UV], 1);
glUniform1i(uniforms[UNIFORM_Y], 0);
vardır) kullanacağız çünkü SetupGL hem doku üniformaları açıklama ve bağlama sonra & tane oluştur kendi dokusunu.
GLKit bu gibi bir şey elde etmenin en hızlı yoludur. GLKit bir çok OpenGL işlevini sizden saklar, ancak çok hızlı bir şekilde & etkilidir.
//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);
Şimdi kurulumAVCapture'da bulunan bazı önemli ayarları kaybettiniz.
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];
}
Ve son sen Fragman Shader biraz değiştirmek gerekecek: Yani viewDidLoad yukarıdaki kodundan sonra onu koymak.
Shader.fsh açın ve bu ana işlevi değiştirin:
void main()
{
gl_FragColor = texture2D(SamplerY, texCoordVarying);
}
Neyse, bu bunu yapmak gerektiğini. RippleModel & ile deneme yapmak süper eğlenceli olabilir ne tür bir haylaz efektler yapabilirsiniz.
- 1. PartiküllerJS ayarlanamaz arka plan olarak
- 2. CSS - Sprites arka plan resmi olarak
- 3. Dikey olarak arka plan resmi uzatma
- 4. SVG'yi arka plan resmi olarak kullanma
- 5. Arka plan resmi dikey olarak% 100 kaplamıyor
- 6. ardışık olarak arka plan işlemleri yürütüyor unix
- 7. wpf tuval arka plan resmi dinamik olarak
- 8. Bir videoyu arka plan olarak ayarla
- 9. Dinamik olarak arka plan resmi-url ayarlandı
- 10. Küresel olarak imleci gizleme (arka plan uygulamasından)
- 11. Ses Tanıma Bir arka plan hizmeti olarak
- 12. barchart arka plan rengini dinamik olarak highcart olarak değiştirin
- 13. Arka plan resmini blok olarak tekrar etme
- 14. sayfanın arka plan rengini css olarak ayarlama
- 15. Change ActionBar Arka Plan Rengi Dinamik olarak
- 16. Bir arka plan resmini css kullanarak yatay olarak döndürme
- 17. Bir Image nesnesini bir javascript kullanarak bir div arka plan resmi olarak ayarlama
- 18. Görüntünün Arka Planı olarak ayarlanması
- 19. Bir png ile arka plan olarak nasıl çizilir?
- 20. Görünümü yüzey için arka plan olarak nasıl eklenir?
- 21. Bitmap'in siyah arka plan rengini şeffaf olarak nasıl değiştirebilirim?
- 22. Düğmenin arka plan rengini varsayılan olarak nasıl sıfırlanır?
- 23. Arka plan rengini farklı renklerdeki tam metinli olarak nasıl değiştiririm?
- 24. Linux'ta arka plan işlemi olarak çalıştırmak için nohup'u nasıl kullanabilirim?
- 25. Arka plan resmi, animasyonda ara vermeden yatay olarak sürekli olarak nasıl kaydırılır?
- 26. ClientBundle görüntüsünü background-image olarak kullanma
- 27. Bir satırın satır içi arka plan görüntüsü olarak SVG çalışmıyor
- 28. Arka plan resmi ayarlama
- 29. Arka plan iş parçacıklarının arka plan iş parçacıklarını nohular olarak çağırma
- 30. android olarak görüntü görünümünden arka plan resmi program görüntüyü kaldırmak
Harika cevap jankins, bu bir çekicilik gibi çalışır! Bu cevap kabul edildi olarak işaretlenmelidir. –
Teşekkürler jankins, kabul edilmiş olarak işaretlenmiş olmalı – Andrea
Çok eksik cevap – rraallvv