habe im Moment ein kleines Projekt in OpenGL in 2D am laufen. Es ist ein kleines Zeichenprogramm ähnlich wie paint. Ich kann mit der Maus zeichnen. Allerdings gibt es ein kleines Problem. Meine Linie besteht im Grunde aus kleinen Rechtecken. Diese Zeichne ich mit glRectf. Es entsteht allerdings ein hässlicher Aliasing-effect und wenn ich die maus zu schnell bewege, wird die linie gepunktelt. Habt ihr eine idee wie man eine schöne glatte durchgehende Linie mit der Maus in OpenGL zeichnen kann?
Ich hab irgendwie keine Idee mehr...Es geht auch nicht mit dem Modus gl_line_strip. Das hatte ich auch schon probiert, aber Pustekuchen...
Ich wäre für eure Hilfe echt dankbar, weil jetzt sieht es einfach nur s*****e aus.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Was ist denn dein Problem mit GL_LINE bzw GL_LINE_STRIP? Die sind eigentlich genau für sowas.
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my 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
Danke erstmal für eure Antworten, aber mein Problem ist Folgendes:
Ich möchte ja bei gedrückter Maustaste zeichnen und nicht immer einmal klicken mich ein Stück auf dem Bildschirm bewegen und dann nochmal klicken, so dass sich die Punkte verbinden. So etwas habe ich schon. Es geht mir um schönes Freihandzeichnen bei gedrückter Maustaste. Wie man das halt eben aus Photoshop und co kennt.
Mit glRectf und GL_LINE_STRIP hab ich halt eben den hässligen aliasing-effect und bei zu schneller Bewegung Lücken in der Linie.
Hättet ihr vielleicht andere Ideen wie man das umsetzen könnte?
Wenn sich die Maus bewegt solltest du in irgendeiner Form ein MouseMoveEvent bekommen. Ich denke mal das benutzt du aktuell schon. Dieses Event gibt dir immer die aktuelle Mausposition und aktuell renderst du wohl an die entsprechende Stelle immer einen Pixel. Das funktioniert aber nicht, weil sich die Maus bei schneller Bewegung mehr als einen Pixel bewegt. Wie bluesky schon sagte.....statt einfach nur jeweils einen Pixel zu rendern solltest du eine Linie von der letzten Position zur aktuellen zeichnen. Ob da nun jetzt ein Button gedrückt ist oder nicht ist erstmal egal.
Mitglieder in diesem Forum: 0 Mitglieder und 5 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.