Aktuelle Zeit: 06.03.2021 04:19

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Flackern beim Draw in 3D WindowScreen
BeitragVerfasst: 05.02.2021 15:55 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
Hallo,

ich habe da eine Sache. die mir total suspekt erscheint. Ich habe diesen kurzen ausschnitt aus meine Code.

Code:
    ; Get Kabinen Position
    LockMutex(KabineMutex)
      KabinenPosition = KabinenPositionY
    UnlockMutex(KabineMutex)
   
    MoveNode(kabineAnkerAufzug1,0.0,KabinenPosition,0.0,#PB_Absolute)
    RotateNode(cameraAnkerAufzug1,0.0,CameraAnkerDrehung.f,0.0,#PB_Absolute)
    MoveCamera(camera_1,0.0,0.0,CameraEntfernung,#PB_Absolute)
   
    RenderTime = RenderWorld()
   
    ;LockMutex(AnzeigeMutex)
    ;If AnzeigeKabinenPosition <> 0
    StartDrawing(WindowOutput(#Fenster3D_1))
      DrawingFont(FontID(font))
        ;DrawAlphaImage(ImageID(AnzeigeKabinenPosition),0,0,215)
      DrawingMode(#PB_2DDrawing_Default)
      RoundBox(262,12,220,140,9,9,RGB(255,255,255))
      DrawText(262+5,12+4,Str(Abs(KabinenPosition*1000)),RGB(0,0,0),RGB(255,255,255))
      StopDrawing()       
    ;EndIf
    ;UnlockMutex(AnzeigeMutex)
   
    FlipBuffers()


Dieser abschnitt befindet sich in einem RenderThread. Der nur für die Darstellung der 3D Objekte zuständig ist.

Code:
OpenWindow(#Fenster3D_1,DesktopX(#DisplayDesktop),DesktopY(#DisplayDesktop),DesktopWidth(#DisplayDesktop),DesktopHeight(#DisplayDesktop),"3D_Arbeitsfenster",#PB_Window_BorderLess )
Define screen = OpenWindowedScreen(WindowID(#Fenster3D_1),0,0,DesktopWidth(#DisplayDesktop),DesktopHeight(#DisplayDesktop),0,0,0,#PB_Screen_SmartSynchronization )

ShowCursor_(#False)
ReleaseState = #False

cameraAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)
kabineAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)
schachtAnkerAufzug1 = CreateNode(#PB_Any,0,0,0)

camera_1 = CreateCamera(#PB_Any,0,0,100,100)
CameraBackColor(camera_1,RGB(0,0,40))
AmbientColor(RGB(255,255,255))
AttachNodeObject(cameraAnkerAufzug1,CameraID(camera_1))
AttachNodeObject(kabineAnkerAufzug1,NodeID(cameraAnkerAufzug1))
MoveCamera(camera_1,0,0,5,#PB_Parent)


Und so wurde das Fenster Initialisiert. Aus meiner Sicht sollte es kein Problem darstellen, DrawBox an der Stelle so auszuführen.
Allerdings verzeichne ich da erhebliche Störungen. Das Flackert nu so rumm, als wenn die das Draw auf einem Durchsichtigen Fenster
über dem Screen ausgeführt wird. Anstatt auf dem Screen selber. Den Screen zum zeichnen selber übergeben geht ja nich. Da dieser ja
in der Konstellation nicht existiert.

Jemand ne Idee ?????

Please help

Gruss TFT

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Flackern beim Draw in 3D WindowScreen
BeitragVerfasst: 05.02.2021 19:05 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
Hallo,

nach etlichem testen habe ich zu mindestens herausgefunden. Das ScreenOutput() nicht mit Engine3D zusammen funktioniert.
Was muss ich machen wenn ich auf den 3D Screen direkt etwas ausgeben will. Ich benutze PB 5.73

Gruss TFT

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Flackern beim Draw in 3D WindowScreen
BeitragVerfasst: 19.02.2021 22:41 
Offline

Registriert: 18.11.2019 20:12
Hugh.

Ist das jetzt noch aktuell, oder hast du den Fehler gefunden?

Wenn ich RenderWorld() nach StopDrawing() im Thread einsetze, dann flackert es nicht.

Das "ScreenOutput()" ( OpenScreen ) Jedöns liegt wohl daran, dass der Screen im Fenster geöffnet ist ( OpenWindowedScreen() )

Somit sollte deine WindowID richtig sein. ( WindowID(#Fenster3D_1)

Wenn man nicht auf "Tastatursteuerung" steht, sollte man "OpenScreen" sowieso nicht benutzen.
Grausam, dass nach 20 Jahren Pure-Ogre nur der "TaharezLook" dazu funktioniert.

" Dein Auto hat nur 3 Räder? Ja, das vierte muss ich mir selbst bauen.......funktionieren wird es trotzdem nicht. "

Jrüsskes
PDvB


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Flackern beim Draw in 3D WindowScreen
BeitragVerfasst: 20.02.2021 14:36 
Offline
Benutzeravatar

Registriert: 08.09.2004 20:18
Wohnort: Dachsen
Hallo,

danke für deinen Input. Das Problem konnte ich bis jetzt nicht lösen. Aber ich habe festgestellt , das Draw befehle auf einem WindowedScreen so nicht funktioniert.
Da sich die Refresh Rate vom Fenster irgendwie vom Screen Unterscheidet. Also habe ich in meinem MineCraftClon nachgeschaut wie ich das mal umgangen habe. Sprites ........ eine Sache die ich noch aus den AMIGA Zeiten kenne.
Und das man beim Programmieren die meiste Zeit damit befasst ist. Probleme zu umgehen .....

Auf jedenfall werde ich die Technische Simulation. Wenn ich sie dann soweit habe. Hier mal posten.

Gruss TFT

_________________
TFT

W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

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


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  
cron

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye