000
09.03.2004, 10:37 Uhr
dad_an_der_fh
|
Hallo,
ich arbeite mit einem Chromakey-Verfahren um die Alpha-Werte eines Videostreams auf transparent zu setzen. An den transparenten Stellen kommt dann ein Bild zum Vorschein. Nun ist es aber so, das ich, wenn ich die Kamera bewege, die den Videostrom liefert, das Bild sich ja scheinbar mit bewegt. Ich habe aber eine Transformations-Matrix, in welcher die Bewegung der Kamera steht. Mit dieser Matrix will ich das Hintergrundbild so beeinflussen, das es scheinbar fest an einem Punkt stehen bleibt und beim Kameraschwenk nicht mehr mitbewegt wird.
Die Matrix ist ein
Kennt jemand eine Funktion in OpenGL mit der ich solche Positionsmanipulationen im Framebuffer durchführen kann?
Ich denke in diesen Codeabschnitt müßte ich eine solche Funktion einfügen. Code für ersetzen der Bildinfos:
C++: |
glDisable(GL_DEPTH_TEST);// Disable Depth Testing
glPixelZoom( zoom, -zoom ); glBlendFunc( GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA );
glColorMask( 1, 1, 1, 1 ); //enable colors rgba glDisable(GL_BLEND);// Disable Blending glRasterPos3i( sx, sy, 0 ); glDrawPixels( gImXsize, gImYsize, GL_BGRA, GL_UNSIGNED_BYTE, image ); glColorMask( 1, 1, 1, 1 ); //enable colors rgba glEnable(GL_BLEND);// Enable Blending glRasterPos3i( sx, sy, 0 ); glDrawPixels( gImXsize, gImYsize, GL_RGBA, GL_UNSIGNED_BYTE, pic );
glDisable(GL_BLEND);// Disable Blending glEnable(GL_DEPTH_TEST);// Enable Depth Testing
|
Dank und Gruß |