Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 16:52

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Feb 21, 2008 18:54 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
Guten Tag allerseits

Ich möch ein Live-Feed einer Videokamera in OpenGL rendern. Nun gibts dafür nicht gerade viele Möglichkeiten, soviel ich weiss. Benutzen tu ich dafür ein USB Input, der das Videosignal in meinen PC gibt (habe keinen Videoeingang am Laptop). Das Gerät heisst Dazzle DVC 90.
Das Gerät bereitet mir eigentlich keine Probleme, funktioniert einwandfrei. Benutzen tu ich dafür diese Komponente. Die funktioniert einwandfrei, wenn ich ein Bild auf die VCL rendern will. Nun soll das ganze über OpenGL auch funktionieren. Dafür gibts ne schöne Funktion, namens "onFrame". Dabei wird das aktuelle Frame kopiert um damit zu arbeiten.

Nun benutze ich diese Prozedur:

glTexImage2D(GL_TEXTURE_2D, 0, 3, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, pvidHdr.lpData);

Wobei pvidHdr.lpData ein Pointer ist auf die Daten.
Ich vermute der Typ GL_UNSIGNED_BYTE stimmt nicht. Habe aber schon einiges ausprobiert, die resultate waren immer unbefriedigend. Auf jeden Fall liegen Daten vor, aber sie werden falsch angezeigt. Ich kann auch teilweise ähnliche Strukturen erkennen, wie im Original-Videobild, aber immer extrem viele total falsche Pixel.

Hat jemand eine Ahnung woran es liegen könnte oder welcher Datentyp "Video for Windows" standartmässig verwendet?

So das ist das resultierende Bild:


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 21, 2008 19:30 
Offline
DGL Member

Registriert: Di Jun 06, 2006 09:59
Beiträge: 474
Probleme im zusammenhang mit dem alphachannel vllt? Also durch das 4byte vs 3byte verhältnis

_________________
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 21, 2008 19:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Hmm... Ich habe mich mal in der MSDN umgeschaut und da nichts gescheites gefunden.
Hast du mal so dinge GL_UNSIGNED_SHORT bzw INT oder FLOAT ausprobiert? Hast du auch schon ausprobiert, das Format auf GL_RGBA oder GL_BGRA zu setzen?

Aus dem Screenshot werde ich leider nicht ganz schlau... Irgendwie komme ich nicht drauf, was dieses Muster zu bedeuten hat.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 21, 2008 20:26 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Webcam. Bist du sicher, dass du als Format RGB24 Bit bekommst? Denn meistens liefern diese sogar auch YUV als Format. Das musst du dann natürlich erst noch konvertieren. Wenn das Format RGB32 ist dann musst du es auch als RGBA8 hochladen.

Du solltest zum Übertragen im übrigen auch glTexSubImage benutzen. Ein Mal die Textur mit glTexImage erstellen und ansonsten mit SubTexImage. Das ist schneller, da bei glTexImage die Textur immer neu erstellt wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 22, 2008 00:41 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

und stimmt die auflösung von 256x256? Wäre eigentlich sehr untypisch..
Ansonsten, evtl ist das was du da als daten hinschickst ein Bitmap inkl. Header etc? Da müßtest du dann erstmal die pixel raussortieren..

Aya


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]