Ich habe mit dem Buch angefangen, das Buch ist eine echte Katastrophe. Da wird total um den Kuchen geschrieben und das wesentliche fehlt. Ich wollte das Beispiel mit den glNamedBufferStorage auf Seite 165 probieren. Aber wie man den Buffer mit den Attributs im Shader verbindet steht nichts.
Leider ist das der Fall, da Vulkan das Speichermanagement, Pipeline und deren Stages dem Entwickler überlässt und sich auf eine Minimale Hardware API konzentriert. Daher funktioniert das so ziemlich überall mit einer Codebase aber man muss ne Menge Code selber mit bringen. Sascha hatte damals, als es sich etabliert hat, ein Framework gebaut und das pflegt er und wird auch auf andere Sprachen portiert und hat sich als Standard in der Vulkan Szene etabliert. Wenn man OpenGL 4.5 genutzt hat, dann kennt man das schon zu Teil, weil man dort auch die einzelnen Schritte der Pipeline selber bauen muss, basis Lineare Algebra benötigt und Objekte gibt, die man sinnvoll verwaltet muss aber es gab kein Memory management.
Mir ist gerade aufgefallen, wen man die dglopengl.pas verwendet, muss man am Anfang folgendes aufrufen :
Code:
ifnot InitOpenGL thenbegin
WriteLn('OpenGL-Fehler');
Halt(1);
end;
ReadExtensions;
ReadImplementationProperties;
Dort passiert auch einiges. Kann man dies ein wenig mit dem vergleichen, was man bei Vulkan auch initialisieren muss ? Oder werden da nur die Verbindung zu der OpenGL.Lib initialisiert. Auch dies sieht recht speziell aus, andere libs, ZB. x oder GTKx wird viel einfacher eingebunden. Wieso ist dies bei OpenGL so kompliziert ?
Auch bei der GL.pp welche standardmässig bei Lazarus dabei ist, wird dies so kompliziert gemacht.
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Das die DGLOpenGL.pas hat zwar ein aufwendiges Init, aber an sich macht es nicht viel. Es holt sich die Funktionspointer vom OpenGL-Treiber. Mit Init ist eher das Setzen der Matrix, das Füllen der Speicher, das Laden der Shader etc gemeint.
Mitglieder in diesem Forum: 0 Mitglieder und 26 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.