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

Aktuelle Zeit: Di Mär 19, 2024 05:00

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: glslEditor
BeitragVerfasst: So Dez 12, 2010 19:05 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich schreib zur Zeit an einem Editor für die OpenGl Shading Language. Und da ich mit der Arbeit schon relativ weit bin, und man den Editor schon mehr oder weniger gut benutzen kannt wollt ich euch den mal zeigen.

Was ist zur Zeit möglich?
1. Release
  • Erstellen von Vertex-, Fragment und Geometrie-Shadern
  • Syntaxhighlight für die Editoren mit selbstdefinierbaren Styles und Farben
  • Funktions-, Variablen- und Konstanten-Übersicht via DropDown-Menü bzw. AutoComplete für Build-Ins(STRG+SPACE)
  • Menü in dem man die Build-Ins von OpenGL anpassen kann (wenn sich mal wieder was ändert oder neue Funktionen dazu kommen)
2. Release v0.5.16.117
  • Bug-Fixes
  • Erklärung der Funktionen und Variablen im Drop-Down-Menü der automatischen Codevervollständigung
  • Einstellungs-Dialog zum anpassen des Fensterverhaltens (einzelln oder als TabControl) evtl. auch per Drag&Drop
3. Release v0.6.18.123
  • Bug-Fixes
  • Überarbeitung der Datenverwaltung
  • Multilanguage-Support, zur Zeit Englisch und Deutsch
  • Laden und Speichern von Projekten
4. Release v0.6.19.128
  • Bug-Fixes
  • Kompilieren und Speichern von Shadern
  • eine Unit zum verwalten von Shader-Programmen
  • Log-Fenster mit Fehlerausgabe beim Kompilieren
5. Release v0.7.21.134
  • Bug-Fixes
  • Menüleiste und Icons für die GUI
  • Parameter-/Overload-Übersicht für die Funktionen (Grundfunktionen)
6. Release v0.8.22.141
  • Bug-Fixes
  • eine einfache Shadervorschau wo man den Shader auf vorgegebene Primitiven oder geladene Models anwenden kann

Was soll noch dazu kommen?
  • Parameter-/Overload-Übersicht für die Funktionen (Erkennung der Parametertypen)
  • Funktions-, Variablen- und Konstanten-Übersicht via DropDown-Menü bzw. AutoComplete für selbstdefinierte Funktionen und Variablen

Ideen für die ferne Zukunft:
  • Versionstest der einzellnen Funktionen und dementsprechende Behandlung im Editor

eingesetzte Komponenten/Bibliotheken:

Known Bugs:
  • SyntaxHighlight spielt verrückt wenn man Kommentar-Blöcke (/*Comment*/) benutzt - fixed in v0.4.10.101
  • DropDown-Menü für Arrays mit einem Struct als Typ funktioniert nicht. Bsp.: gl_LightSource[0].ambient fixed in v0.4.12.105
  • Index-Zahl von Arrays werden beim eingeben verdoppelt fixed in v0.4.12.105
  • Die Editoren werden beim Wechseln der Editoransicht manchmal nicht richtig bzw. gar nicht angezeigt


gewonnene Awards:
Bild
Bestes Projekt Q4/2010
Bild
Nützlichstes Projekt 2010
Bild
Bestes Projekt Q3/2011
Bild
Bestes Projekt Q4/2011

Screenshots:
Bild Bild Bild Bild Bild Bild

So weit zum Projekt. Hier noch die Links:
DOWNLOAD rar v0.8.22.141 (1674,47 KiB)
DOWNLOAD Setup v0.8.22.141 (1.908,79 KiB)
Meinungs-Thread
Entwickler-Blog

MfG Bergmann.

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


Zuletzt geändert von Bergmann89 am Mi Jan 25, 2012 02:45, insgesamt 29-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: glslEditor
BeitragVerfasst: Sa Dez 18, 2010 20:38 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Release v0.5.16.117*

Hey,

ich hatte heut und gestern mal n bischen Zeit was zu machen. Ich hab auch einiges geschaft denke ich. Zuerst einmal hab ich mich um die besprochenen Bugs gekümmert. Ich konnte is jetzt keine davon reproduzieren, also sollten sie auch nicht wieder kommen^^ Wenn doch noch irgendwo was is, ihr wisst ja wie das geht.
Dann hab ich mich an die neuen Funktionen gemacht. Zum einen wird jetzt die Erklärung der Variablen und Funktion (sofern vorhanden) im Drop-Down-Menü angezeigt. Die Erklärungen muss ich nochmal überarbeiten, da dort auch eine Art Syntax-Highlight möglich ist. So kann man das ganze dann besser lesen. Außerdem gibt es noch Haufen wo die Erklärung nicht oder nur sporadisch vorhanden ist. Wer Lust dazu hat darf mir hier auch gern helfen und wird natürlich auch in den Credits erwähnt.
Weiterhin hab ich die Anordnung der Editor Fenster nochmal überarbeitet. Jetzt kann man die Editoren so benutzen we bisher (alle in einem eigenen Fenster), alle Editoren über ein PageControl in einem Fenster, oder alle Editoren über ein PageControl im Hauptfenster. Das ganze kann man im Menü unter Ansicht einstellen.
So das wars dann auch schon wieder. Download wie immer im 1. Post. Bei Fragen oder sonstigem lesen wir uns im Meinungs-Thread.

MfG Bergmann.

_________________
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: glslEditor
BeitragVerfasst: So Jan 16, 2011 00:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
Hey,

ich wollte mich hiermit für die beiden Awards und eure Stimmen bedanken. Freut mich, das es euch gefällt :)
Natürlich auch ein großes Danke ans Team, für das Erstellen der Umfragen und die Vergabe der Awards.

MfG Bergmann.

_________________
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: glslEditor
BeitragVerfasst: Di Apr 26, 2011 23:12 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Release v0.6.18.123*

Hey,

ich hatte in den letzten Tagen Zeit mich mal wieder um mein Projekt zu kümmern. Also gibts auch mal wieder n neues Release:
3. Release v0.6.18.123
  • Bug-Fixes
  • Überarbeitung der Datenverwaltung
  • Multilanguage-Support, zur Zeit Englisch und Deutsch
  • Laden und Speichern von Projekten

Die meiste Arbeit war dieses mal die Umstellung der Datenverwaltung, denn die ist von grundauf neu entstanden. Und dann wollten noch knapp 500 String in je 2 Sprachen übersetzt und eingetragen werden. Und ich war eherlich gesagt mehr als froh, als der Part erledigt war :) Da ich nicht so das Sprachgenie bin dürfen da auch gern Verbesserungsvorschläüge für Übersetzungen und solche Sachen gemacht werden.
Den Download gibts wie immer im 1. Post.

Ich würd mich über paar Commis freun :arrow: *KLICK MICH* :D

MfG Bergmann.

_________________
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: glslEditor
BeitragVerfasst: Do Mai 05, 2011 00:37 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Release v0.6.19.128*

Heyho,

ich hab mal wieder bisl was gecodet.

4. Release v0.6.19.128
  • Bug-Fixes
  • Kompilieren und Speichern von Shadern
  • eine Unit zum verwalten von Shader-Programmen
  • Log-Fenster mit Fehlerausgabe beim Kompilieren

Mit diesen Änderungen kann man den ShaderEditor schon wunderbar für seine Projekte nutzen. Die Fehlersuche sollte jetzt auch schneller gehen, weil man die Shader jetzt mit dem Editor kompilieren kann. Außerdem gibt es eine Unit, die man in seine Projekte einbinden kann. Mit dieser Unit kann man die Shader, die man mit dem glslEditor erstellt hat, verwalten (laden, speichern, ...). Im Grunde sind das die selben Funktionen, die OpenGl bietet, nur das sie hier mit dem Shader in ein Objekt gekapselt werden. Hier mal ein kleines Bsp wie das ganze ausehen kann:
Code:
  1. var
  2.   Log: TListBox;
  3.   Shader: TglShaderProgram;
  4.  
  5. procedure ShaderLogEvent(Sender: TObject; const Msg: String);
  6. begin
  7.   Log.Items.Add(TimeToStr(now)+': '+msg);
  8. end;
  9.  
  10. procedure CreateShader;
  11. var
  12.   Obj: TglShaderObject;
  13. begin
  14.   try
  15.     Shader := TglShaderProgram.Create(ShaderLogEvent);
  16.  
  17.     Obj := TglShaderObject.Create(GL_VERTEX_SHADER, ShaderLogEvent);
  18.     Obj.Code := VertexShaderCode;
  19.     Shader.Add(Obj);
  20.  
  21.     Obj := TglShaderObject.Create(GL_FRAGMENT_SHADER, ShaderLogEvent);
  22.     Obj.Code := FragmentShaderCode;
  23.     Shader.Add(Obj);
  24.  
  25.     Shader.Compile;
  26.   except
  27.     on e: Exception do
  28.       MessageDlg(e.Message, mtError, [mbOK], 0);
  29.   end;
  30. end;
  31.  
  32. procedure Render;
  33. begin
  34.   Shader.Activate;
  35.   Shader.Uniform4f('color', 1, 1, 1, 0);
  36.   {renden...}
  37.   Shader.Deactivate;
  38. end;
  39.  
  40. procedure FreeShader;
  41. begin
  42.   Shader.Clear;
  43.   Shader.Free;
  44. end;

Mit der Klasse kann Shader auch ganz einfach mit LoadFromFile oder LoadFromStream aus Datein oder Streams laden, so wie man es auch von anderen Klassen kennt. Beim Compilieren im Editor wird im Projektordner eine Shader.glsl Datei angelegt, die man dann mit der Klasse über LoadFromFile laden kann.
Soweit erstmal zu den neuen Features. Als nächstes werd ich mir denke ich die Parameteranzeige der Funktionen vor nehmen. Wenns was neues gibt erfahrt ihr es als erste ;)

MfG Bergmann

_________________
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: glslEditor
BeitragVerfasst: Mi Sep 14, 2011 01:26 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Release v0.7.21.134*

Heyho,

nach langem Warten dürft ihr euch jetzt wieder über ein neues Release freuen ^^

Diesmal hat sich hauptsächlich was am Design getan. Der leere Platz über dem Editor wurde jetzt mit einer Menüleiste gefüllt. Außerdem hat das Programm schicke Icons bekommen, die jetzt auch mit den Dateien verknüpft werden. Damit dass auch alles richtig installiert wird gibt es den Editor jetzt als Setup-Datei. Aber auch die normale rar-Variante bleibt bestehen.

Das einzige neue Feature in dieser Version ist die Parameteranzeige bei Funktionen. Diese zeigt zur Zeit alle Parameter an, mit der die Funktion gefüttert werden kann. Das wird später aber noch so abgeändert, dass die Überladungen, die vom Datentyp her nicht passen aussortiert werden. Einige kleine Bugs hab ich natürlich auch noch gefixt.

Download gibt‘s wie immer im 1. Post. Ich würd mich über paar Kommentare freuen ;)

MfG Bergmann.

_________________
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: glslEditor
BeitragVerfasst: Mo Okt 10, 2011 22:44 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Update*

Hey,

es passt zwar nicht 100%tig hier rein, aber trotzdem hat es was mit dem Editor zu tun.
Und zwar hab ich meinen Blog weitestgehend fertig gestellt. Unter Anderem gibt es jetzt ein User Account System, in dem ihr euch registrieren könnt. So erhaltet ihr immer eine Mail, wenn es etwas neues zum Editor zu lesen gibt.
Schaut mal vorbei: http://bergmann89.de/

MfG Bergmann.

_________________
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: glslEditor
BeitragVerfasst: Fr Nov 11, 2011 22:02 
Offline
DGL Member
Benutzeravatar

Registriert: Di Apr 29, 2008 18:56
Beiträge: 1213
Programmiersprache: Delphi/FPC
*Release v0.8.22.141*

Hey,
der gewonnene Award hat mir einen riesigen Motivationsschub gegeben (nochmal danke für eure Stimmen) und deshalb gibt es jetzt ein neues Release. Bei diesem Release habe ich die Vorschau für den Shader implementiert. Wie schon früher erwähnt kann man den Shader nun auf mehreren primitiven Objekten Testen und so eventuelle Fehler im Shadercode ausmachen. Da das Formular weitestgehend selbsterklärend ist werde ich hier nur mal kurz auf die Hilfslinien und die Bewegung im Raum eingehen:
Es werden je nachdem ob man ein Objekt ausgewählt hat 2 oder 3 Koordinatensysteme angezeigt. Das kleine ist der Mittelpunkt der Kamera, also der Punkt um den sich alles dreht. Das große Koordinatensystem ist der Ursprung des Systems, in dem die Objekte liegen. Und wenn man ein Objekt selektiert hat wird zusätzlich das System des Objektes angezeigt. Mit gedrückter linker Maustaste kann man die Kamera relativ zum Weltsystem verschieben. Die Kamera bewegt sich dabei nur in der XZ-Ebene. Erst bei gedrückter SHIFT-Taste bewegt sich die Kamera vertikal. Die Rotation der Kamera erfolgt mit gedrückter rechter Maustaste. Die Objekte kann man natürlich auch manipulieren. Dazu einfach ein Objekt auswählen, sodass das Koordinatensystem des Objekts angezeigt wird. Dann kann man mit der Maus eine Achse auswählen (wird gehighlightet) und entsprechend verändern. Mit der linken Maustaste wird das Objekt verschoben, mit der rechten Maustaste wird das Objekt gedreht und mit gedrückter STRG-Taste und der linken Maustaste wird das Objekt skalieren. Wenn man genau Werte benötigt kann man die Matrix des Objekts auch direkt in den Objekteigenschaften anpassen. Bei der Manipulation der Objekte mit der Maus wird nur die horizontale Bewegung der Maus ausgewertet. Das ist zwar am Anfang etwas gewöhnungsbedürftig, aber man hat den Bogen schnell raus. Vieleicht bau ich das Ganze auch nochmal um, wenn ich einen vernünftigen Weg finde, die Vektoren auf die Ebene zu projizieren. Hier die Befehle nochmal im Überblick:

  • LMT: Kamera bewegen (XZ-Ebene)
  • LMT + SHIFT: Kamera bewegen (Y-Achse)
  • RMT: Kamera drehen
bei selektierter Objekt-Achse:
  • LMT: Objekt auf Achse verschieben
  • RMT: Objekt um Achse drehen
  • LMT + STRG: Objekt auf Achse skalieren

Soweit zur Steuerung. Was könnt ihr nun mit den Objekten machen? Jedes Objekt hat ein Front- und Backmaterial, sowie eine Textur die ihr einstellen könnt. Weiterhin gibt es verschiedene Parameter mit denen ihr das Objekt anpassen könnt, um z.B. die Auflösung der Vertex oder die Form des Objekts zu ändern. Alle Werte der Objekte sind in einer extra Baumstruktur angeordnet, in der man die Werte per Doppelklick oder durch einen Druck auf Enter anpassen kann. Weiterhin kann man einstellen, dass die komplette Szene in ein FBO gezeichnet und dann als FullscreenQuad ausgegeben wird. So kann man auch Post-Processing-Shader ohne Probleme testen.
Am Editor selbst hat sich nicht viel geändert. Hier und da hab ich ein paar kleine Fehler korrigiert. Das einzige was für euch wichtig ist: Durch das hinzufügen der Vorschau könnt ihr eure alten Projekte nicht mehr laden, da ich das Format der Datei komplett umgebaut habe. In Zukunft passiert sowas aber nicht wieder, da ich vorsorglich eine Versionsprüfung in die Datei mit eingebaut habe. Es könnte sich hier und da noch der eine oder andere Fehler eingeschlichen haben. Also sobald irgendwas nicht so funktioniert wie es soll, einfach mal melden, wie das geht wisst ihr ja ;)
So dann mal viel Spaß beim Shader entwickeln. Download gibts wie immer im 1. Post.

Bild

MfG Bergmann.

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


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.026s | 17 Queries | GZIP : On ]