AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL für CAD Anwendung

Ein Thema von BigAl · begonnen am 1. Jun 2014 · letzter Beitrag vom 3. Jun 2014
Antwort Antwort
Seite 1 von 2  1 2      
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#1

OpenGL für CAD Anwendung

  Alt 1. Jun 2014, 20:16
Hallo zusammen,

ich entwickle derzeit eine Anwendung die mit Vektorgrafiken arbeitet. Bisher erfolgt die Ein- und Ausgabe der Grafik mit VCL-Bordmitteln über TBitmap-Puffer und den standard Canvas-Funktionen. Bei der Ausgabe handelt es sich um Vektor-Informationen wie Punkte (X/Y/Z), Linien (Referenzen auf die Punkte) sowie Volumenkörper (Hexaeder, ebenfalls mit Referenzinformation auf die Punkte). Im Anhang mal ein (sehr einfaches und altes) Beispiel wie sowas aussieht.

Nun habe ich das Problem, dass die Ausgabe einige Aspekte nicht abdeckt, die allerdings immer wichtiger werden:

1. Ausblenden / Abblenden verdeckter Kanten
2. Färben der Flächen
3. ...

Die Ausgabe soll später in die Richtung wie z.B. bei Sketchup erfolgen. Dabei ist halt wichtig, dass mir alle Informationen zum Modell vorliegen. Damit meine ich, dass ich auch das "Innenleben" der Bauteile habe. Ich habe diesbezüglich mal etwas geforscht und mir scheint die optimale Lösung OpenGL zu sein (wie das Sketchup beispielsweise auch nutzt). Leider sind im Internet alle Informationen die ich gefunden habe immer für Spieleentwickler konzipiert. Da geht es halt um Oberflächenmodellierung, Echzeitanimation usw.. Ist für mich aber alles kein Thema.

Ach ja: VCL soll auf jeden Fall bleiben. FMX ist für mich keine Option. Bleibt eh alles nativ auf Windows.

Nun zu meiner Frage: Weiß irgendjemand wo man entsprechend Literatur her bekommt? Die DelphiGL-Seite war ja erstmal net schlecht, beschäftigt sich aber auch "nur" mit der Spieleentwicklung. Die meisten OpenGL-Hilfen sind leider sehr spezifisch auf C oder JAVA gemünzt. Wäre prinzipiell nicht das Problem, aber es gibt doch gerade in Hinsicht auf die VCL doch einige Hürden... Schön wäre so eine allgemeine Leitlinie mit:

- Wie arbeitet OpenGL (Zustandsautomat und was muss da wo und in welcher Reihenfolge eingestellt werden etc.)
- Welche Darstellungsarten gibt es (Ortho etc.)
- Was kann im Normalfall auf der Ebene der Grafikkarte und was muss auf Rechnerseite erledigt werden
- OpenGL-Referenz mit Beispielen (leider sind fast alle Referenzen die ich bisher gefunden habe nur mit rudimentären Erklärungen und nicht mit entsprechenden Beispielen versehen. Auch DelphiGL bildet da keine Ausnahme).

Ich weiß, dass ist sehr viel Info die ich da suche. Ich bin aber im Moment halt in der Vorbereitungsphase und versuche möglichst viel Infos zu sammeln. Evtl. liege ich ja mit OpenGL auch ganz falsch? Keine Ahnung. Am Liebsten wären mir gedruckte Bücher zum Theme...

Vielen Dank schon mal fürs Lesen und evtl auch fürs Antworten

Alex
Miniaturansicht angehängter Grafiken
sim01p12.jpg  
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: OpenGL für CAD Anwendung

  Alt 1. Jun 2014, 20:45
Eine komplette, gut lesbare OpenGL-Referenz habe ich bisher auch noch nicht gesehen.
  • Delphi-spezifische technische Details kann man auf DGL nachschlagen.
  • Generelle Vorgehensweise kann man auch aus "Fremdsprachen" ablesen.
  • Das Spiele-spezifische kann man überlesen.
Das Material für OpenGL für CAD-Anwendungen mit Delphi ist vermutlich ziemlich begrenzt

Wichtig zu wissen:
Nur modernes OpenGL ist schnell. Wer jeden Vector einzeln auf auf die Grafikkarte schiebt oder schlecht unterstützte Funktionen nutzt, wird langsam.
Auf open.gl hat ein Tutorial, was eine Einführung ohne altes Zeug bietet. Allerdings in C++.
  Mit Zitat antworten Zitat
BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
495 Beiträge
 
Delphi 12 Athens
 
#3

AW: OpenGL für CAD Anwendung

  Alt 1. Jun 2014, 21:25
Eine komplette, gut lesbare OpenGL-Referenz habe ich bisher auch noch nicht gesehen.
Wichtig zu wissen:
Nur modernes OpenGL ist schnell. Wer jeden Vector einzeln auf auf die Grafikkarte schiebt oder schlecht unterstützte Funktionen nutzt, wird langsam.
Auf open.gl hat ein Tutorial, was eine Einführung ohne altes Zeug bietet. Allerdings in C++.
Das ist schon mal super. Die Seite schein echt gut zu sein. Die Sache mit den Matrizen, dem Umrechnen der Koordinaten, habe ich bisher halt alles manuell gemacht, was auch super funktioniert... Das Grundverständnis ist also da. Mir fehlt halt im Moment noch der Entscheidende "Kick" .

Danke
Alex
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#4

AW: OpenGL für CAD Anwendung

  Alt 1. Jun 2014, 21:30
Muß es denn unbedingt nativ sein?

Eventuell kannst du auch eine GameEngine dafür benutzen.

Die Unreal-Engine solll sowas von einfach sein ... damit hat letzens Einer in nur 3 Wochen das das Flappy Bird nachprogrammiert.
http://www.heise.de/mac-and-i/meldun...e-2196422.html
http://www.pcgames.de/Tappy-Chicken-...ine-4-1122062/

OK, das Beispiel war jetzt nicht ganz ernst gemeint, aber im Prinzip gibt es einige Engines, welche sich in Delphi leicht benutzen lassen und dir Einiges an Arbeit abnehmen.
z.B.
1. Ausblenden / Abblenden verdeckter Kanten
2. Färben der Flächen
3. ...

Zitat:
Die meisten OpenGL-Hilfen sind leider sehr spezifisch auf C oder JAVA gemünzt
Wie BUG es schon sagte, ist die Sprache erstmal egal.
OK, bei Java ist es eventuell etwas anders, aber in C greifst du ja am Ende auf die selben APIs zu, womit es da grundsätzlich keine Unterschiede gibt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 1. Jun 2014 um 21:35 Uhr)
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
670 Beiträge
 
#5

AW: OpenGL für CAD Anwendung

  Alt 1. Jun 2014, 23:05
Also ich habe so ein Cad-Ähnliches-Ding mit Delphi + OpenGL umgesetzt bzw es ist immer noch in der Entwicklung. Für Cad-Sachen kannst Du nicht auf diese Spiele-Frameworks und überhaupt nicht auf FMX setzen . -das ist meine Meinung-
Ich habe es von unten hochprogrammiert und mir die meisten Infos aus DelphiGL geholt.
Das ganze ist aber so nicht in 5 Minuten zu verstehen. 3D-Programmierung kostet viel Einarbeitungszeit auch in entsprechende Mathematik.

Zitat:
- Wie arbeitet OpenGL (Zustandsautomat und was muss da wo und in welcher Reihenfolge eingestellt werden etc.)
- Welche Darstellungsarten gibt es (Ortho etc.)
- Was kann im Normalfall auf der Ebene der Grafikkarte und was muss auf Rechnerseite erledigt werden
- OpenGL-Referenz mit Beispielen (leider sind fast alle Referenzen die ich bisher gefunden habe nur mit rudimentären Erklärungen und nicht mit entsprechenden Beispielen versehen. Auch DelphiGL bildet da keine Ausnahme).
1.)Ja,Zustandsautomat. ZB Farbe einstellen, dann wird die Farbe so lange genutzt bis eine andere eingestellt wird. Es gibt aber auch "neuerdings" die Möglichkeit mit einer Art von Objekten zu arbeiten, da könnte es etwas anders sein. Bin aber gerade nicht so firm darin.
2.) Es gibt einen Ortho- und einen Perspektiv-Modus. Ansonsten kannst Du das über eine ensprechende Matrix auch selbst einstellen.
3.) ...
3.) DelphiGL hat schon einige Beispiele. Da muß man vielleicht auch mal tiefer tauchen, aber da sind sie schon. Es gibt auch eine ganze Tutorial-Serie, die zwar alt aber anfangs sehr nützlich ist. Ansonsten kostet das ganze sehr intensive Einarbeitungszeit.

Gruss Jens
Achtung: Bin kein Informatiker sondern komme vom Bau.

Geändert von Jens01 ( 1. Jun 2014 um 23:26 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: OpenGL für CAD Anwendung

  Alt 2. Jun 2014, 13:17
Ich bin seit mehr als einem Jahr an einem ebenen CAD Programm dran. Setze den ganzen Kram ohne Hilfsmittel auf (war ein Fehler). Ist quasi ein Marathonlauf. Der geneigte User möchte neben dxf Import auch branchenspezifische Grafikobjekte und AddOns (in meinem Falle ein Bewehrungsmodul für Stahlbeton). Letzteres dauert nochmal mind. 3 Monate. Ohne diese AddOns ist ein CAD Programm schlicht unverkäuflich ("Da kann ich auch DraftSight verwenden"). Es ist auch ein Unterschied wieviele Objekte du darstellen möchtest. Bei mehr als ca. 1000 muß man m.E. interne Berechnungen z.B. Schnittpunkte von Threads erledigen lassen sonst wird das Programm mit zunehmender Zahl der Objekte viel zu langsam. Und das Ganze jetzt noch im Raum? Das Bild bei jedem MouseMove oder Zoom neu zu berechnen kann man sowieso vergessen. Festzustellen ob eine Line sichtbar ist oder nicht dürfte sehr zeitaufwendig werden? Da sind ja dann für die Projektion ggf. neue Sichtkanten einzuführen. OpenGL ist ganz nett aber nix Besonderes. Es gibt professionelle Engines, aber so um die € 2000,- (zzgl. X € je AppUser).
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
670 Beiträge
 
#7

AW: OpenGL für CAD Anwendung

  Alt 2. Jun 2014, 13:36
Zitat:
OpenGL ist ganz nett aber nix Besonderes.
Bei OpenGl renderst Du mit der Grafikkarte, was eigentlich bei Cad-ANwendungen mit relativ wenigen Objekten (bzw Triangles) schnell geht. Für das andere von Dir angesprochene hat OpenGL meist eine grundsätzliche Lösung.
Aber Cad ist eine aufwendige Sache, die mit OpenGL stark vereinfacht wird.
Das Entwerfen und Positionieren von Objekten muß man natürlich selbst machen. OpenGL übernimmt "nur" die Darstellung.
Wenn Du ein richtiges Cad erstellen willst, eignet sich auch sowas wie Spatial. Die brauchen gar kein OpenGL, weil die sowas selbst programmieren. Die Grundversion kostet da aber auch irgendwas im 5-stelligen Bereich zzgl Einzellizenzen für jeden Kunden.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Raible

Registriert seit: 12. Mär 2012
30 Beiträge
 
#8

AW: OpenGL für CAD Anwendung

  Alt 2. Jun 2014, 16:32
für CAD gibt es OpenCascade (OpenSource).

Das scheint sehr leistungsfähig zu sein,
ist aber in C++ programmiert. Mit Delphi
hat man keinen direkten Zugriff.

Es gibt jedoch eine ActiveX Schnittstelle
von "East Wind Software" (www.eastwindsoft.com).
Das ist zwar nicht kostenlos aber die
Lizenz ist wenigstens "royalty free".
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
670 Beiträge
 
#9

AW: OpenGL für CAD Anwendung

  Alt 2. Jun 2014, 16:47
OpenCascade scheint gut zu sein. Es gibt aber nur so einen veralteten Delphi-Wrapper.
Das ist aber auch ein kommerzielles Projekt, wo ich nocht nicht weiss, wie die ihr Geld verdienen.

"East Wind Software" - Bin mir nicht so sicher, ob das sein Geld wert ist.

Das könnte auch etwas sein, wenn man dies "net" eingebunden bekommt.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#10

AW: OpenGL für CAD Anwendung

  Alt 2. Jun 2014, 16:50
Zitat:
wenn man dies "net" eingebunden bekommt.
Irgendwo im CC gibt es eine .Net-Bridge.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz