JPCT AE & QCar - > Grafik Fehler

Started by firstdeathmaker, October 10, 2011, 01:42:26 PM

Previous topic - Next topic

firstdeathmaker

Hallo,

ich habe ein Problem: Ich versuche das Qualcomm QCAR Beispiel "ImageTargets" mittels JPCT zu bereichern, hänge aber gerade an einem fiesen Grafikbug. Im Endeffekt möchte ich mit QCAR das aktuelle Kamerabild in den Hintergrund rendern und dann mit JPCT 3D-Objekte darüber in den Vordergrund. QCAR wird dabei zur Bildanalyse benutzt.

Da QCAR selbst auch auf OpenGL zugreifen muss damit die Kamera in den Hintergrund gerendert wird und JPCT so schlicht und kompakt ist, bin ich vom QCAR-Sample "ImageTargets" ausgegangen und habe dort JPCT importiert. "ImageTargets" benutzt eine Rendererklasse, welche in onDrawFrame eine native-C Funktion aufruft die mittels OpenGL das Kamerabild einzeichnet. Diesen Aufruf umgebe ich mit den JPCT-Funktionen

framebuffer.clear()
<< nativer Funktionsaufruf mit C OpenGL-Befehlen drin >>
world.renderScene(framebuffer)
world.draw(framebuffer)
framebuffer.display()

Wenn ich die Anwendung starte, wird eine ganz kurze Zeitspanne das richtige Modell angezeigt. Danach wird es von einem gleichfarbigen Oval das sich über den ganzen Bildschirm erstreckt verdeckt. Die Größe des Ovals ist unabhängig von der Position des Modells oder der Kamera. Das Oval wird auch bei anderen 3D-Objekten angezeigt, ist also unabhängig vom Modell.

Wenn ich die native-Funktion auskommentiere, wird das Modell richtig, ohne Grafikfehler angezeigt.
Ebenso taucht der Fehler nicht auf wenn ich das Objekt nicht zur world hinzufüge. In dem Fall wird dann nur das Kamerabild angezeigt, aber eben auch kein Objekt.

Ich kann leider nicht den ganzen Code posten, aber ich wäre dankbar für Ideen woran es eventuell liegen könnte.
Ich hatte es früher auch schon einmal genau so hinbekommen, es ist also durchaus möglich. Nur leider ist mir der Sourcecode von damals abhanden gekommen.



Link zum QCAR SDK von Qualcomm

Vielen Dank schonmal für alle Antworten!

EgonOlsen

Welche Version von jPCT-AE verwendest du? Generell zeichnen beide Bibliotheken in denselben GL-Kontext, was für jPCT-AE dann ein Problem ist, wenn die Qualcomm-Lib irgendwas anders einstellt, als jPCT-AE das von seiner Seite aus erwartet. Aber wenn es schonmal funktioniert ist, ist das eher unwahrscheinlich. Hast du schonmal versucht, vor dem renderScene() nochmals den Z-Buffer (FrameBuffer.clearZBufferOnly()) zu löschen?

firstdeathmaker

Ha, du hast mir sehr geholfen: Lag zwar nicht am Z-Buffer, aber mit der neuen JPCT-AE Alpha Version ist der Fehler weg.

Wir hatten die JPCT-Version vom 13. September 2011 benutzt, hash: a6615d9e839f4920e3ca8eb8ceeaea18.

Die aktuellste geht aber einwandfrei! Danke für die schnelle Antwort!

EgonOlsen

Hmmm...ja, gut...trotzdem komisch. Bin mir nicht bewusst, was ich da geändert haben soll, dass es nun geht. Naja, egal...