Ich versuche, die Apple Sample GLCameraRipple Code mit Bild als Hintergrund zu schreiben. Eigentlich versuche ich, mit diesem Code einen Welleneffekt auf dem Wasserbild zu erzeugen, aber der Code funktioniert für die Kamera, stattdessen möchte ich einfach ein einfaches Wasserbild als Hintergrund anstelle der Kamera verwenden. Jede Richtung oder jeder Beispielcode wird eine große Hilfe sein. Danke im Voraus.Wie kann ich das GLCameraRipple-Sample mit Image als Hintergrund umschreiben?
Antwort
Die Art und Weise, wie der Kamera-Rippling-Effekt funktioniert, verformt Texturkoordinaten auf einem Raster aus Dreiecken - so ist die gute Nachricht, dass der gewünschte Effekt ganz von der Videotextur getrennt ist; Ihre Textur ist zufällig ein Video. Um zu erreichen, was Sie wollen, müssen Sie nur den Videocode der Kamera entfernen und Ihre eigene Textur binden.
So in viewDidLoad, würden Sie [self setupAVCapture]
Kommentar aus, und gehen Sie vor und kommentieren beide Textur Uniformen in SetupGL heraus, da Sie nur eine verwenden werden (die beiden Linien sind glUniform1i(uniforms[UNIFORM_Y], 0);
, glUniform1i(uniforms[UNIFORM_UV], 1);
) und dann & erstellen binden Ihre eigene Textur.
GLKit ist der schnellste Weg, um so etwas zu erreichen. GLKit blendet eine Menge der OpenGL-Funktionsaufrufe von Ihnen aus, ist aber sehr schnell & wirksam.
Jetzt haben Sie einige wichtige Einstellungen verloren, die in setupAVCapture enthalten waren. legt es so in nach dem obigen Code in 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];
}
Und zuletzt, werden Sie die Fragment-Shader ein wenig ändern.
Shader.fsh Aufmachen und die Hauptfunktion dieses ändern:
void main()
{
gl_FragColor = texture2D(SamplerY, texCoordVarying);
}
Wie dem auch sei, das sollte es tun. Es macht einfach Spaß, mit dem RippleModel & zu experimentieren, um zu sehen, was für verrückte Effekte man machen kann.
- 1. Wie kann ich Gif Image als Hintergrund für QListWidget .. hinzufügen?
- 2. Wie können Sie das als Linq umschreiben?
- 3. Manchmal Cassette umschreiben keinen Hintergrund-Bildregel
- 4. Wie kann ich Nginx umschreiben?
- 5. Wie kann ich eine bestimmte URL umschreiben?
- 6. Wie kann ich meine Regex-Schleife umschreiben?
- 7. UIViewController Hintergrund Image
- 8. CSS Hintergrund RGBA & BG Image
- 9. Get angebracht Bitmap Image mit Hintergrund
- 10. Wie kann ich alle URLs in "/" umschreiben?
- 11. PHP - Wie kann ich das Bild als transparentes PNG kopieren
- 12. Wie kann ich ein dynamisches Bild als CSS-Hintergrund haben?
- 13. platz image button über das bild hintergrund auf android
- 14. Wie kann ich diese URL mit Apache umschreiben?
- 15. wie kann ich benutzerdefinierte bullet image von li tag?
- 16. CVOpenGLESTextureCache fehlt in Monotouch Probe GLCameraRippleSample
- 17. Crop Image C# Ohne Hintergrund
- 18. Android - Wie platziere ich image/imagebutton unter einem transparenten Hintergrund?
- 19. .htaccess Abfragezeichenfolge als Pfad umschreiben
- 20. Image Hintergrund ändert sich nicht
- 21. HTML/CSS Hintergrund-Funktion Wie kann ich das tun
- 22. Wie kann ich IO :: Scalar mit Image :: Magick :: Read() verwenden?
- 23. Wie kann ich ein WPF-Image deaktivieren?
- 24. Querschnittsplotting mit Gelände als Hintergrund
- 25. Wie kann ich Convolution Image in CUDA
- 26. Wie stelle ich ein Bild als Hintergrund eines Graphen ein?
- 27. Wie mit einem Png als Hintergrund plotten?
- 28. Wie kann ich Abfrageparameter in Pfadparameter in Apache umschreiben?
- 29. Wie kann ich einen Hintergrund anklickbar machen?
- 30. Satz img als Hintergrund
Große Antwort jankins, das funktioniert wie ein Charme! Diese Antwort sollte als akzeptiert markiert werden. –
Danke Jankins, das sollte als akzeptiert markiert werden – Andrea
Sehr unvollständige Antwort – rraallvv