WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Probleme mit Renderer zbuffer/painters bzw. OpenGL

 

JaWi
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 10.08.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 21.01.2014, 16:39     Titel: Probleme mit Renderer zbuffer/painters bzw. OpenGL
  Antworten mit Zitat      
Hallo,

ich habe ein GUI entwickelt, das zur Verfolgung der testfahrt eines Pkw dient. Als Hintergrund wird eine Google-Karte geladen, das Fahrzeug wird durch ein .png dargestellt.

Mein Problem ist: setze ich den Renderer auf OpenGL ist die Ansicht im GUI zwar super - alles bewegt sich und ist richtig dargestellt- aber im Video wird nichts aus den Achsen gezeigt. Lediglich die sich ändernden Werte in den edit texts des GUI sind dargestellt. (Datei gui_video_1_OpenGL)

Stelle ich den Renderer auf zbuffer oder painters, wird zwar alles im Video dargestellt, aber das transparent setzen der AlphaData funktioniert dann nicht mehr, so dass das sich drehende Fahrzeug von einem unschönen schwarzen Quadrat umgeben ist. (Datei gui_video_1_painters)


Kennt jemand eine Lösung?




Das Video wird wie folgt erzeugt:

Code:
% Callback Video-Start-Knopf

vidObj1=VideoWriter('gui_video_1','MPEG-4');
GloVar.video_start_flag = true;
% as long as stop_video_button os not pressed, take shots for the video
while GloVar.video_start_flag == true
    getGUIshots(frame);
    pause(0.5);
end

function getGUIshots(frame)
global GloVar;

% open file for writing
open(GloVar.video);

%if whole GUI sholud be recorded set figure1 as current frame
if frame==GloVar.GH.figure1  
   
     currFrame=getframe(GloVar.GH.figure1);
    % else set current axes as frame
else
   
     currFrame=getframe(GloVar.GH.myAxes);
end


if GloVar.video_start_flag == true
    writeVideo(GloVar.video,currFrame); % save the frame to the video
end


Der Video-Start-Knopf setzt dann die Video_start_flag auf true usw.

Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2014, 06:38     Titel:
  Antworten mit Zitat      
Hallo,

was genau bedeutet
Zitat:
aber im Video wird nichts aus den Achsen gezeigt.


Ich würde mit
Code:

arbeiten, um eine Aktualisierung der Graphiken sicherzustellen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JaWi
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 10.08.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 22.01.2014, 10:04     Titel:
  Antworten mit Zitat      
Guten Morgen,

Zitat:
aber im Video wird nichts aus den Achsen gezeigt.


bedeutet, dass zwar mein GUI in dem Video gezeigt wird, aber das Axes-Element ist im Fall von Open GL einfach weiß, die in der Realität angezeigten elemente wie gezeichnete Markerpunkte, das sich bewegende PNG usw. werden nicht angezeigt. Veränderungen in Textfeldern neben dem Achsenelement sind aber zu sehen, es ist also kein statisches Bild. Das ist auch im Video zu erkennen, in beiden Videos wurde eine reproduzierbare Messung aufgezeichnet, die müssten also dasselbe zeigen.
Mit zbuffer klappt das ja soweit, aber es ist eben das schwarze Quadrat um das PNG des Fahrzeugs zu sehen, dessen AphaData eiegtnlich transparent gesetzt wurden.

An welche Stelle könnte ich drawnow setzen? In der Funktion des Videos wird nichts gezeichnet, das sind davon völlig unabhängige Funktionen, die angestoßen werden,sobald im darunterliegenden Simulink-Modell neue Werte ankommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.01.2014, 15:53     Titel:
  Antworten mit Zitat      
Hallo,

im zweiten Video kann ich keine Bewegung erkennen, außer bei den Zahlen und bei Start/Stop.

Zitat:
An welche Stelle könnte ich drawnow setzen? In der Funktion des Videos wird nichts gezeichnet, das sind davon völlig unabhängige Funktionen

Dann in diesen vollkommen unabhängigen Funktionen.

Mit so einer Problemstellung kann/sollte man sich auch an den technischen Support von MathWorks wenden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JaWi
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 56
Anmeldedatum: 10.08.13
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 24.01.2014, 10:18     Titel:
  Antworten mit Zitat      
Hallo Harald, ja genau, dass auf dem Video nichts zu sehen ist, ist ja das Problem. Dass es bei der anderen Renderer-Einstellung klappt zeigt meines Erachtens aber, dass es nicht an der Aktualisierung liegt ( im Hinblick auf drawnow), sondern am Renderer, oder?
Ok gut danke, dann schreibe ich Mathworks direkt an.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.