Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Apr 16, 2024 16:09

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 13:37 
Offline
DGL Member

Registriert: Sa Jan 03, 2015 23:22
Beiträge: 5
Programmiersprache: Delphi
Wie zeichnet Ihr dicke Linien mit abgerundeten Enden? Die Qualität des Ergebnisses muss hoch sein. Die Linien müssen außen herum komplett Antialiasing haben. Also entlang der Linie und an den Abrundungen.

Danke für jeden Tipp!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 14:00 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich nehme dafür Cairo (und kein OpenGL). Die Anforderung klingt nach Benutzeroberflächen.

grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 14:24 
Offline
DGL Member

Registriert: Sa Jan 03, 2015 23:22
Beiträge: 5
Programmiersprache: Delphi
Ich habe mit cairo experimentiert und festgestellt, dass es schön aber leider nicht hardwarebeschleunigt ist. Ebenfalls habe ich mit Andorra2D experimentiert, aber es kann nur ganzzahlige Koordinaten verarbeiten und macht kein Antialising bei Polygonen.

Ich habe keine GUI-Probleme, sondern ich muss sehr schnell sehr viele ansehnliche Linienzüge und Polygone mit Transparenz in einem Canvas anzeigen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 14:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Wie viel sind denn „viele“ und wie schnell ist „schnell“? Wenn „schnell“ schnell genug ist, sieht man das Antialiasing sowieso nicht. Wenn „viele“ nicht so viele ist oder „schnell“ nicht so schnell, kann man trotzdem Cairo verwenden.

Ansonsten wirst du nicht um eine eigene Lösung herumkommen. Es gab hier im Forum schon ein paar mal Hinweise auf Shader, mit denen man Beziérs und andere Kurven rendern konnte, aber ich weiß gerade nicht wo. Die Suchfunktion könnte da weiter helfen.

viele Grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 16:16 
Offline
DGL Member

Registriert: Sa Jan 03, 2015 23:22
Beiträge: 5
Programmiersprache: Delphi
Hi Horazont,

danke für die Mühe, die Du Dir machst! Einige Zehntausend Linien und Dreiecke und ja, es muss trotzdem gut aussehen, weil der User das Bild ja stehen lassen kann zum genauen Betrachten (kein Game etc.). Aber Zoomen, Pannen und Änderungen aller Art müssen blitzschnell gehen.

Ich habe das hier bereits im wilden Internet gefunden:

Drawing Antialiased Lines with OpenGL
Texture AntiAliasing

Beide OpenGL-Links hängen wohl mit Shadern zusammen, ich habe nur auf den ersten Blick nicht verstanden, wie das zu bewerkstelligen ist.

Ich werde hier mal nach Shadern suchen!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 16:32 
Offline
DGL Member

Registriert: Sa Jan 03, 2015 23:22
Beiträge: 5
Programmiersprache: Delphi
Ich habe hier nach Shader und Kurve oder Bezier gesucht, aber nix recht gefunden.

Du hattest ja bereits erahnt, dass es im Endeffekt 2D sein soll. Aber OpenGL ist im Endeffekt das einzige, das Cross-Platform hardwarebeschleunigt arbeitet.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mo Jan 12, 2015 19:22 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Ein einfacher Trick: Zeiche dir einen weißen Kreis in eine Textur, und dann zeichnest die deine Linie aus 3 Quads. So wie das in einem deiner Links schon beschrieben wurde
Bild
Das ist meiner Meinung nach die schnellste und einfachste Lösung, und das Ergebnis sollte genau das sein was du willst, oder?

_________________
Aktuelle Projekte: BumpMapGenerator, Massive Universe Online
Auf meiner Homepage gibt auch noch paar Projekte und Infos von mir.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Di Jan 13, 2015 09:56 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

eine weitere Möglichkeit wäre das Zeichnen von GL_POINTS an den Linienenden in Kombination mit glPointSize und glHint(GL_POINT_SMOOTH_HINT, GL_NICEST).

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Di Jan 13, 2015 12:36 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Notiz: Zumindest als ich das letzte mal Points verwendet habe, wurden die quadratisch. Man braucht also wieder eine Textur.

viele Grüße,
Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Di Jan 13, 2015 13:07 
Offline
DGL Member

Registriert: Do Dez 29, 2011 19:40
Beiträge: 421
Wohnort: Deutschland, Bayern
Programmiersprache: C++, C, D, C# VB.Net
Points sind nur rund, wenn diese Funktion mit "GL_POINT_SMOOTH" angeschaltet ist.
Zu beachten ist, dass diese Funktionalität, soweit ich weiß, veraltet ist und im OpenGL Core nicht mehr zur Verfügung steht.

Ich würde die Funktionalität im Fragment Shader implementieren. Im Geometry Shader kann man sogar die Linie automatisch zu Quads extrudieren.


Zuletzt geändert von OpenglerF am Mi Jan 14, 2015 15:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: Mi Jan 14, 2015 15:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Jepp, runde Punkte macht man seit OpenGL 3 mit Shadern. Hier ist ein Beispiel.

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: So Jan 18, 2015 09:45 
Offline
DGL Member

Registriert: Sa Jan 03, 2015 23:22
Beiträge: 5
Programmiersprache: Delphi
Hallo Leute,

die Idee mit den Shadern gefällt mir am besten. Hat jemand von Euch einfache Beispiele für die Verwendung von Shadern in Delphi? Wenn man nach "Shader" sucht, sieht man vor lauter Bäumen den Wald nicht. :?

Hallo glAwesome,

Die gezeigten runden Punkte sind leider ohne Anti-Aliasing?!?

Danke für Eure Hilfe! :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linien mit abgerundeten Enden
BeitragVerfasst: So Jan 18, 2015 16:47 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Hat jemand von Euch einfache Beispiele für die Verwendung von Shadern in Delphi?

Dieser Thread sollte da weiter helfen, sind zwar Lazarus Beispiele, sollten aber unter Delphi auch gehen.

viewtopic.php?f=10&t=11311

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 13 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 41 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.083s | 17 Queries | GZIP : On ]