Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
ja hallo erst mal....
ich bin hier n ganz neuer und lerne Delphi an der schule.
für die Facharbeit brauche ich dgl und lerne das nun.
ich hab n programm geschrieben das sich um alle Achsen drehen und wenden lässt. aber das ganze flackert ...
ich hab n guten rechner und das flackern dürfte doch garnicht sein oder?
wie krieg ich das weg???
helft mir bitte!
Flackern hat nichts mit der Leistung eines Rechners zu tun.
Im Gegenteil.
Wenn dein Bildschirm z.b. 75 mal die Sekunde erneuert wird, du aber 300 Bilder die Sekunde erzeugst, kann es zu flackern kommen, wenn "gerade beim zeichnen" der Inhalt des GraKa-Rams geleert wird.
Abhilfe schafft hierbei Wait Retrace.
Ich weiß leider nurnicht, wie das unter Windows/OpenGL/SDL heißt und wie man ex nun genau realisiert.
Was nutzt du?
WinAPI, Glut, SDL?
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Cyberputer: Dieses Phänomen welches du meinst tritt normal aber nur bei Single Buffer Kontexten auf. Aus genau einem solchen Grund wurde Doublebuffering erfunden. Da wird in den nicht sichtbaren Buffer gezeichnet und wenn dieser fertig ist werden sie getauscht und der dann auf dem Monitor dargestellt. Das kann auch genau zu einem Zeitpunkt passieren an dem der Monitor sein Bild neu aufbaut. Das führt dann dazu, dass du schon einen Teil des "neuen" Bildes siehst wärend der Rest noch zu dem "alten" Bild gehört. Das sieht man unter umständen auch ist aber normal nicht so gravierend.
Den Begriff den du suchst ist Vertikal Sync oder kurz V-Sync.
Axalus: Ich denke mal, dass bei dir das Problem existiert, dass du ohne Doublebuffering arbeitest. Genau sagen könnten wir das aber nur mit ein bisschen Code von dir. Aber tu dir keinen Zwang an und schau schon mal selber ob du nicht das Problem findest.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Je nachdem was du machst könnte es auch noch Z-Fighting sein. Aber dazu müsste man deinen Code sehn. Wenn du eine schlechte Tiefenpufferauflösung hast wäre das möglich...
PS: Ein Programm in alle Möglichen Richtungen zu rotieren...wie hast du das geschafft? 3D-Speicher?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
Warnung ist mein erster code
hab da mal alles zusammen gewürfelt was ich finden konnte
und hab das mal ausprobiert
also wird da ziemlicher Blödsinn stehen
ich denke ich hab irgendwo was vom doublebuffer stehen...
achja
ich wollte da n objekt namens tatom machen aber da wird wieder n zugriffsfehler angezeigt.
*verzweifel*
wie geht das wieder weg?
und hier das chaos:
Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
ach ja
ein oder mehrere Tutorial für völlig hirnlose , denen man alles zehnmal erklären muss, würde solche codes verhindern.
vielen dank für eure hilfe und aufmerksamkeit.
ps:
viel spass beim rätseln
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
Axalus hat geschrieben:
ach ja ein oder mehrere Tutorial für völlig hirnlose , denen man alles zehnmal erklären muss, würde solche codes verhindern. vielen dank für eure hilfe und aufmerksamkeit. ps: viel spass beim rätseln
Mach ruhig Vorschläge für solche Tuts und gib uns Feedback
Ändere mal deinen obigen Code von [ Code] zu [ Pascal]
Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
Vorschläge für tuts
Vorschlag1:
wie wäre es mit einem Tut für die Grundelemente der 3D Programmierung
ähnlich meinem programm.
man könne das Programm ja schritt für Schritt erweitern...
z.b. erstmal nur das koordinatenkreuz einzeichnen.
dann die ersten Objekte wie kugeln... und dann das ganze drehen und rotieren.
und der gesammte Quelltext sollte dann für jeden Schritt abrufbar sein und die Värenderungen erklärt werden und besonsers gekennzeichnet.
_________________ tja Mein Motto:
Faulheit ist eine Tugend!
Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
lieber ionos
du bist mathestudent?! dann könntest du mir doch bestimmt einige Anregungen zur Themenfindung für meine Facharbeit in Mathe angeben *ausnutz*
wäre echt nett!
_________________ tja Mein Motto:
Faulheit ist eine Tugend!
Mein Tipp: Editier deine Beiträge anstatt 2 direkt hintereinander zu schreiben!
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Also wegen den Tutorials...
Wenn du unsere Tutorialsektion durcharbeitest passiert sowas net. Ein einfaches Wintemplate wo man nicht so hässlichen Initialisierungscode brauch baust du in diesem Tutorial: http://wiki.delphigl.com/index.php/Tutorial_quickstart
Was mir außerdem bisl Angst macht, ist die Tatsache, dass du da auch recht seltsamen VCL-Code mit stehen hast (die ganzen Button-Reaktionen).
Beschreib mal bitte wie du dir dein zukünftiges Programm vorstellst. Eventuell geht da schon grundlegend was schief. (Zeichnest du eigentlich auf ein Panel? Wenn man VCL Compos mit OpenGL kombinieren will, sollte man die beiden Teile auch schön trennen...)
Mach mal nen Screenshot vom momentanen Programm und häng den mal als jpg an.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Mo Nov 21, 2005 17:11 Beiträge: 10 Wohnort: Siegburg
bitte nicht lachen
aber wie macht man einen Screenshot
ach und wenn man das schreibt:
dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER;
klappt nix mehr. d.h. es wird nur die form1 mit den buttons angezeigt aber nix von opengl
Die Darstellung erfolgt auf der TForm1
mit den ganzen schaltern hab ich zuerst mal die Steuerung über buttons programmiert.
dazu habe ich mehrere Möglichkeiten ausprobiert.
dann kam mir die Ideeüber Tasten die Steuerung zu programmieren.
es ist ein echtes chaos...
aber ich hab euch gewarnt.
_________________ tja Mein Motto:
Faulheit ist eine Tugend!
Mitglieder in diesem Forum: 0 Mitglieder und 4 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.